Skip to content

Configuring View Route Paths

Each AppJar registers its views as Vaadin routes at application startup. All view paths have built-in defaults but can be overridden by the host application through Spring application properties.

Mechanism

Each AppJar's RouteConfigurer declares its view paths as Spring @Value placeholders with built-in defaults, using the ${key:default} syntax. When the application starts, Spring resolves each placeholder: if the property key is defined in application.properties, application.yml, or any other property source, its value is used as the route path; otherwise the default is used. Vaadin then registers the resolved value as the view's URL.

Overriding a path

Add the property to application.properties:

com.appjars.usermanager.url.users=admin/people

Or equivalently in application.yml:

com:
  appjars:
    usermanager:
      url:
        users: admin/people

Omitting a property keeps the documented default. The application must restart for path changes to take effect.

If application code navigates to an AppJar view using the Vaadin API, update those calls to reflect any overridden path:

UI.getCurrent().navigate("admin/people");

Property reference by AppJar

Activity Log

View Property key Default path
Activity Log com.appjars.activitylog.url.activitylogview al/activitylog
Extractors com.appjars.activitylog.url.extractorsview al/extractors
Extractors — create com.appjars.activitylog.url.extractorsview-create al/extractors/create
Extractors — edit com.appjars.activitylog.url.extractorsview-edit al/extractors/edit
Removers com.appjars.activitylog.url.removersview al/removers
Removers — create com.appjars.activitylog.url.removersview-create al/removers/create
Removers — edit com.appjars.activitylog.url.removersview-edit al/removers/edit
Log Viewer list com.appjars.activitylog.url.logviewer al/logviewer
Log Viewer — create com.appjars.activitylog.url.logviewer-create al/logviewer/create
Log Viewer — edit com.appjars.activitylog.url.logviewer-edit al/logviewer/edit

AI Support

View Property key Default path
Documents com.appjars.aisupport.url.views.documentsview as/documents
Assistants com.appjars.aisupport.url.views.assistants as/assistants
Chat com.appjars.aisupport.url.views.chat as/chat
Prompts com.appjars.aisupport.url.views.prompts as/prompts
LLMs com.appjars.aisupport.url.views.llms as/llms
LLM Inspector com.appjars.aisupport.url.views.inspector as/inspector
Categories com.appjars.aisupport.url.views.categories as/categories
Channels com.appjars.aisupport.url.views.channels as/channels

The webhook endpoints (api/webhooks/whatsapp, api/webhooks/facebook, api/webhooks/instagram) are hardcoded and cannot be overridden through application properties.

Configuration Manager

View Property key Default path
System Configurations com.appjars.configurationmanager.url.views.systemconfigurationsview cfg/system
User Configurations com.appjars.configurationmanager.url.views.usersconfigurationsview cfg/user/list
My Configurations com.appjars.configurationmanager.url.views.myconfigurationsview cfg/user/my-configs

Data Query

View Property key Default path
Query Definitions com.appjars.dataquery.url.admin.queries data-query/admin/queries
Query Definition — create com.appjars.dataquery.url.admin.queries-create data-query/admin/queries/create
Query Definition — edit com.appjars.dataquery.url.admin.queries-edit data-query/admin/queries/edit
Query Categories com.appjars.dataquery.url.admin.categories data-query/admin/categories
Dashboards com.appjars.dataquery.url.admin.dashboards data-query/admin/dashboards
Dashboard — create com.appjars.dataquery.url.admin.dashboards-create data-query/admin/dashboards/create
Dashboard — edit com.appjars.dataquery.url.admin.dashboards-edit data-query/admin/dashboards/edit
Report view com.appjars.dataquery.url.report data-query/report
Report Designer com.appjars.dataquery.url.report-designer data-query/report-designer
Dashboard runtime view com.appjars.dataquery.url.dashboard data-query/dashboards

Note

The last three properties are base paths: the report view and the report designer append the query key as a route parameter, and the dashboard runtime view appends the dashboard slug. A dashboard's address therefore follows its slug, and no route is ever registered at runtime.

Dynamic Menu

Note

Dynamic Menu uses a different property prefix than most other AppJars: com.appjars.configurations.dynamicmenu.*.

View Property key Default path
Menu Items com.appjars.configurations.dynamicmenu.items-view-route dm/list

Email Manager

View Property key Default path
Email list com.appjars.emailmanager.url.views.emailcrudview em/list

I18N Manager

Note

I18N Manager uses a different property prefix than most other AppJars: com.appjars.configurations.i18nmanager.*.

View Property key Default path
Languages com.appjars.configurations.i18nmanager.languages-route i18n/languages
Translation Items com.appjars.configurations.i18nmanager.translation-items-route i18n/items
Translation Items (with language parameter) com.appjars.configurations.i18nmanager.translation-items-parameter-route i18n/items/:lang

Issue Tracker

Issue Tracker uses a segment-based route configuration rather than one property per complete path. Each property in the com.appjars.issuetracker.url.views.* namespace controls one URL segment; full paths are formed by composing parent and child segments at startup.

The root segment (default it) is a prefix shared by every Issue Tracker route. Overriding it changes the base prefix for all routes simultaneously.

The table below lists the configurable segment properties, their default segment values, and the full default path each one produces:

Segment property Default segment Default full path
com.appjars.issuetracker.url.views.issues-list issues it/issues
com.appjars.issuetracker.url.views.trackers-list trackers it/trackers
com.appjars.issuetracker.url.views.issuestatus-list issuestatuses it/issuestatuses
com.appjars.issuetracker.url.views.enumerations-list enumerations it/enumerations
com.appjars.issuetracker.url.views.roles-list roles it/roles
com.appjars.issuetracker.url.views.users-list users it/users
com.appjars.issuetracker.url.views.workflows-edit workflows it/workflows
com.appjars.issuetracker.url.views.custom-fields custom_fields it/custom_fields
com.appjars.issuetracker.url.views.groups-list groups it/groups
com.appjars.issuetracker.url.views.group-view groups/:id it/groups/:id
com.appjars.issuetracker.url.views.groups-edit groups/:id/edit it/groups/:id/edit
com.appjars.issuetracker.url.views.projects-list projects it/projects
com.appjars.issuetracker.url.views.time-entries time_entries it/time_entries
com.appjars.issuetracker.url.views.my-page my/page it/my/page
com.appjars.issuetracker.url.views.my-account my/account it/my/account
com.appjars.issuetracker.url.views.settings settings it/settings
com.appjars.issuetracker.url.views.activity activity it/activity
com.appjars.issuetracker.url.views.search search it/search
com.appjars.issuetracker.url.views.searchproject projects/:identifier?/search it/projects/:identifier?/search
com.appjars.issuetracker.url.views.version versions/:id it/versions/:id
com.appjars.issuetracker.url.views.versions-create projects/:identifier/versions/new it/projects/:identifier/versions/new
com.appjars.issuetracker.url.views.versions-edit versions/:id/edit it/versions/:id/edit
com.appjars.issuetracker.url.views.gantt issues/gantt it/issues/gantt
com.appjars.issuetracker.url.views.time-entries-create-by-issue issues/:issueId/time_entries/new it/issues/:issueId/time_entries/new

Routes derived from a parent segment — such as issue detail (it/issues/:id), project overview (it/projects/:identifier), or per-project time entries (it/projects/:identifier/time_entries) — are built by appending internal suffix segments to their parent. Overriding a parent segment automatically shifts all routes that descend from it.

Note

The root segment property has an empty key suffix, making the full property key com.appjars.issuetracker.url.views. (with a trailing dot). In a .properties file this is written as:

com.appjars.issuetracker.url.views.=myprefix

Representing an empty key in YAML requires syntax that is not supported by all YAML parsers. Use .properties format for this specific override.

Process Manager

View Property key Default path
Processes com.appjars.processmanager.url.process pm/process

User Manager

View Property key Default path
Users com.appjars.usermanager.url.users um/users
User — edit com.appjars.usermanager.url.users-edit um/users/edit
User — create com.appjars.usermanager.url.users-create um/users/create
Groups com.appjars.usermanager.url.groups um/groups
Group — edit com.appjars.usermanager.url.groups-edit um/groups/edit
Group — create com.appjars.usermanager.url.groups-create um/groups/create
Roles com.appjars.usermanager.url.roles um/roles
Profile com.appjars.usermanager.url.profile um/profile
Access Rules com.appjars.usermanager.url.access-rules um/access-rules
Views com.appjars.usermanager.url.views um/views
Password reset link com.appjars.usermanager.url.password-change-link um/users/password-reset
User registration link com.appjars.usermanager.url.user-registration-link um/users/register

User Profile

View Property key Default path
My Profile com.appjars.userprofile.url.profile up/profile
Profiles list com.appjars.userprofile.url.profile-list up/profile-list