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

Shortcuts can be used for starting a project with specific settings with a user friendly URL. A shortcut refers to a project that is available in the Runtime. The following chapter describes how to create a shortcut. 

For security reasons we advise you to only use shortcuts in a production environment. This can be enabled via the blueriq.production.shortcuts-only in application.properties.

Create a shortcut

There are multiple ways to configure a shortcut.

Development dashboard

You can configure a shortcut, and its test paths, via the settings menu of the dashboard

  • Select Settings
  • Select the general tab
  • Select shortcuts
  • Press the add or edit button
  • A pop up window will appear



  • Select the project, branch, flow, language, UI and theme
  • Enter a shortcut name
  • Click 'Save'
  • You can now test your shortcut with the following URL: http://HOSTNAME:PORT/Runtime/server/start/SHORTCUTNAME

    Test paths

  • In the screenshot above the available test paths are also listed for the shortcut
  • When you click on the 'Add test path' button or edit button you get the following screen, where you can enter a test path name, and select the branch for the test path.

         

Properties

You can configure a shortcut via the application.properties file. This file is located in your 

spring.config.additional-location
 directory. The properties contain the name of the shortcut

application.properties
### Shortcuts - Shortcuts can be started via the URL: http://YOURSERVER:PORT/ROOT/server/start/SHOTCUTNAME ###
blueriq.production.shortcuts-only = false
blueriq.shortcut.ChildSupport.flow = Start
blueriq.shortcut.ChildSupport.languageCode = en-GB
blueriq.shortcut.ChildSupport.project = export-Kinderbijslag
blueriq.shortcut.ChildSupport.theme = forms
blueriq.shortcut.ChildSupport.ui = mvc
blueriq.shortcut.ChildSupport.version = 0.0-Wetwijziging
blueriq.shortcut.ChildSupport.dynamicVersion = true
blueriq.shortcut.ChildSupport.privateAccess = false
blueriq.shortcut.ChildSupport.securityEnabled = true

Dynamic shortcuts

When the dynamicVersion property is set to true, the version property is ignored, and the version of the project to be used is looked up by comparing the version of the Container type: AQ_Dashboard_ProjectWidget or Service call type: AQ_StartProject to the version of the project of the current session. If so, that version will be used, otherwise the version set with the version property will be used.

Test Paths

In Blueriq 12.8, we added the concept of Test Paths in order to be able to test multi-repository applications. These are applications that span multiple projects, by using Container type: AQ_Dashboard_ProjectWidget or Service call type: AQ_StartProject to start flows from different projects. One can imagine that when testing a feature branch of a project, you wouldn't want to have that same feature branch present in all other projects, especially when nothing has changed in those projects.

In Blueriq 12.9, we added support for test paths for Container type: AQ_ExternalFlowService call type: AQ_RestServiceClient and Service call type: AQ_SoapServiceClient.


When using this feature, keep the following in mind:

  • Test Paths only work when the Runtime is in development mode
  • Test Paths only work when using shortcuts to indicate the entry point of the project to start
  • Test Paths only work for Studio projects, not for project exports or publisher exports.

When editing shortcuts, you can define Test Paths for that shortcut:

application.properties
blueriq.shortcut.ChildSupport.testPaths.feature1 = 0.0-FeatureBranch1
blueriq.shortcut.ChildSupport.testPaths.feature2 = 0.0-FeatureBranch2

This indicates that when the application is started with Test Path feature1, the project should use 0.0-FeatureBranch1 instead of the version indicated by blueriq.shortcut.ChildSupport.version.

If any Test Paths are configured, the development dashboard will display a selector for the Test Paths:

Selecting a Test Path will result in the following behavior:

  • When the selected Test Path is defined for the shortcut, the corresponding version of the project is started instead of the default version.
  • When the selected Test Path is not defined for the shortcut, the default version of the project is started.
  • When the selected Test Path is defined, but the corresponding version doesn't exist in the project, an error is returned.

The selected Test Path will be propagated through the entire application, with the exception of AQ_SoapServiceClient/AQ_WebServiceClient and AQ_ExternalFlow.

The Test Path names, e.g. feature1 in the previous example, are identifiers that can be chosen freely (but limited to alphanumeric characters and underscores). You are encouraged to use Test Path names that describe the feature you are testing.

When a feature is done and the corresponding branch is merged, the Test Path is not automatically deleted. As a maintainer of the shortcuts, you should remove Test Paths for these versions manually.
This way, the list of Test Paths to choose from will remain restricted to features that are still under development.

When working with shortcuts for the AQ_StartProject service, you need to think of security. On a production server you set the runtime to blueriq.production.shortcuts-only=true so that end users can not start any flows directly themselves. As you need to create a shortcut for the application to be started, you do not want that end users could guess the shortcut name and start the flow themselves. For this reason, you should set the property blueriq.shortcut.[name].privateAccess=true for the shortcuts that are only used for the AQ_StartProject service, and which are not directly started by end users.

It is possible to leave the version of the application out of the URL or shortcut, in which case the latest version of the application is started.

The latest version is determined as follows:

  • first the major version is compared

  • then the minor version

  • then the branch name

Example: 0.0-Wetwijziging

  • Major version: 0
  • Minor version: 0
  • Branch name: Wetwijziging

Since for all studio exports the major and minor version always are equal to 0, only the branch name is the discriminating factor. It is sorted in ascending order, meaning that a branch name starting with 'z' is considered later as a branch name starting with 'a'. In order to make effective use of this mechanism, we advice to use branch names which start with numbers, e.g. 001_4_FeatureBranch.

It is possible to leave the name of the application out of the URL or shortcut, in which case the default application is started.

The default application is determined by the Runtime, as being the shortcut that has the name 'default'.

Only one default application should be created as multiple defaults could lead to unexpected behavior or errors.