You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

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.

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 Installation includes 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

Export name

It is possible to rename you exported project zip file, this does not effect the loading of the project itself. However dashboard exports are only discovered when the file ends with the following suffix: .dashboard.zip 

The Dashboard Service can be configured to load Dashboard project exports from disk. This is currently the only supported data source in production.
blueriq-dcm-dashboard-service.yml
# 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/

Recursive 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.

blueriq-dcm-dashboard-service.yml
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: 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

blueriq-dcm-dashboard-service.yml
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.

blueriq-dcm-dashboard-service.yml
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. 

blueriq-dcm-dashboard-service.yml
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.

blueriq-dcm-dashboard-service.yml
# 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.

blueriq-dcm-dashboard-service.yml
# 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:
            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

API documentation

Since DCM Dashboard Service 2.2.2 its API documentation can be accessed by a GET request to http://server:port/dcm-dashboard/api/v2/ and following the returned docsIndex link.

  • No labels