Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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. Dashboard definitions can be modelled in Encore.

Table of Contents
maxLevel2

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

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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
# Configuration for dashboard definition location since DCM Dashboard Service 2.2
blueriq:
  dcm:
    dashboard:
      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
titleRecursive scanning of export folder and SymLinks

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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
blueriq:
  dcm:
    dashboard:
      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 url: http://localhost:170/Studio/Server/Services/ManagementService
    	username: ....
    	password: ....

Shortcuts

Since 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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
# 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:
  dcm:
    dashboard:
  	  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
languageyml
titleblueriq-dcm-dashboard-service.yml
linenumberstrue
collapsetrue
# 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:
  dcm:
    dashboard:
      execution:
	        environment:
		  global: 
			baseUrl: "/runtime2"
          override:
          	
		override: 
			example:
				  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