Page History
Introduction
The DCM Dashboard Service is a service which serves definitions to display a dashboard application. Dashboard definitions contains the skeleton structure and knowledge on how to structure your dashboard pages and how to transition between them.
Info | ||
---|---|---|
| ||
Currently dashboard definitions needs to be created by hand and cannot be modelled using Encore or the Studio Client. This will change in the future. |
Table of Contents | ||
---|---|---|
|
Installation
The DCM Dashboard Service is a standalone service. The corresponding WAR file can be found in the release zip or in Artifactory: https://artifactory.blueriq.com/artifactory/libs-release/com/blueriq/blueriq-dcm-dashboard-service-application/. The WAR file needs to be deployed to a supported application server, see Installing Runtime. The application requires a config location to specify the configuration outlined below. Note that the Blueriq DCM Development Installationincludes the DCM Dashboard Service including configuration.
System requirements
Minimal
2 CPU cores
256 MB Heap
Recommended
2 CPU cores
512 MB Heap
Configuration
In order to configure the DCM Dashboard Service, a blueriq-dcm-dashboard-service.yml
file needs to be present spring.config.additional-location
. Here, you can specify the location of your definitions, configure some additional settings.
Dashboard project data sources
Exports
The Dashboard Service can be configured to load Dashboard project exports from disk. This is currently the only supported data source in production.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# Configuration for dashboard definition location since DCM Dashboard Service 2.2 blueriq: exports: enabled: true location: ${spring.config.additional-location}dashboard-definitions/ # Configuration for dashboard definition location before DCM Dashboard Service 2.2 #blueriq: # dcm: # dashboard: # definitions: # location: ${spring.config.additional-location}dashboard-definitions/ |
Warning | ||
---|---|---|
| ||
The Dashboard project exports are read recursively from the configured folder. This means that the export root folder will be scanned for exports but also sub folders, and their sub folders, etc. Usage of SymLinks are therefore at your own risk. When a SymLink targets a parent folder, this is considered an configuration error which can cause an infinite loop and will make the DCM Dashboard Service crash. |
Encore
The DCM Dashboard Service is able to retrieve Dashboard project exports from Encore by enabling the development-tools
profile and configuring a connection to the management service.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
blueriq: studio: # The enabled property has been introduced in DCM Dashboard Service 2.2. Before version 2.2, the studio data source would always be enabled when the development-tools profile was active. enabled: true url: http://localhost:170/Studio/Server/Services/ManagementService username: .... password: .... |
Shortcuts
Since version DCM Dashboard Service 2.2, it is possible to define shortcuts in the blueriq-dcm-dashboard-service.yml
or by enabling the shortcuts
profile you can use a separate blueriq-dcm-dashboard-service-shortcuts.yml
file.
Shortcuts are used to shorten the URL but also to prevent exposing the ProjectIdentifier, Version, DashboardName and entrypage.
You can define multiple shortcuts under blueriq > dcm > dashboard > shortcuts
In the following example there are 2 shortcuts defined with shortcutnames foundation
and itdashboard.
The shortcut can be used with the url http://server:port/dcm-dashboard/api/v2/dashboardShortcuts/{shortcutName}/entryPage
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
blueriq: dcm: dashboard: shortcuts: foundation: project: export-foundation version: Trunk dashboardName: foundation entryPage: main itdashboard: project: export-itdashboard version: Trunk dashboardName: itdashboard entryPage: start |
If you want to only exposed dashboards via shortcuts you can set the shortcuts-only property to true. Default is false.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
blueriq: dcm: dashboard: shortcuts-only: true |
Authentication
The DCM Dashboard Service only support authentication using OAuth2 OpenID Connect tokens. Without configuring authentication the Dashboard Service is unable to provide dashboard definitions as it returns a filtered definition based on what the user is authorization to see. When configuring the jwk-set-uri
property make sure it is configured to the host of the Gateway Service. This is essential for the token validation.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
spring: security: oauth2: resourceserver: jwt: jwk-set-uri: http://{host}:{port}/realms/{realm}/protocol/openid-connect/certs |
JWT claims path
You can optionally configure the path in which the username (principal) and roles are located in the JWT claims. They can be configured as JsonPath expression. By default, the username will be obtained from the sub
claim, and the roles will be obtained from the roles
subclaim in the realm_access
claim.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# in this example, the username should be obtained from the 'subject' claim, # and the roles should be obtained from the 'rollen' subclaim in the 'realm_access' claim blueriq: jwt: roles-path: $.realm_access.rollen username-path: $.subject |
Environment override
In order to run dashboard widgets on different environments you can optionally configure the baseUrl path which is specified as the environment override in the model per widget. It is possible to configure both the global
and add multiple override
options. By default, the baseUrl path for widgets will use global
which is set to /runtime
but can be changed. The override
name is case insensitive and we cannot guarantee which environment override is used when a duplicate name is assigned, therefore we recommend to use each override
name once.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# in this example, the global configuration is changed to /runtime2 # and there is an extra override configuration named "example" which is set to /runtime3 blueriq: execution: environment: global: baseUrl: "/runtime2" override: example: baseUrl: "/runtime3" |
Dashboard Definition Structure
The main purpose of the Dashboard Service is to provide dashboard definitions. Currently is it not possible to create these definitions in one of Blueriq's modelling applications, therefor we have created a guide how to create these definitions including a small example.How to create a dashboard definition
Since 17.0 it is possible to create your own DCM Dashboard via Encore. For more information: DCM Dashboard overview and 2 - Dashboard project - Foundation