Monitor Deeplink

The BPC supports the use of deep links in the Monitor module to restore a specific monitor state. The configured state of the Monitor module can be represented by a JSON object and appended directly to the URL.

This page simply explains how the state JSON object is structured and how it can be appended.
How the deep link is structured is described on the Routing/Deep Links page.

Generating the State Object

There are two ways to generate a state object so you don’t have to configure it manually:

  • Enable the “Navigation via States” setting in the Monitor (gui_stateBrowsing). This allows the state object to be copied directly from the URL, modified if necessary, and Base64-encoded before the deep link is redirected.

  • Share Plugin: This provides a deep link that reflects the current monitor state.

URL Structure

The status object is appended to the end of the URL, after the monitor ID and after //.

Example:
https://COMPANY.COM/?#&/module/monitor/my-monitor//{"state": {}}

The status object should be Base64-encoded to avoid encoding and web browser issues.
https://COMPANY.COM/?#&/module/monitor/my-monitor//e3N0YXRlOiB7fX0=

Structure of the state object

The state object contains the root attribute state.
The state attribute contains all information about the desired monitor state. The following attributes are available under state:

  • searchQuery
    The value for the full-text search.

  • activeView
    Initial view to be displayed.
    If activeView is configured, this view must also have a configuration at views.

  • views
    Contains the states of the monitor views.
    The state of a monitor view includes the column configuration as well as the state of the store (i.e., sorters and filters).

Below is an example of what the entire state object might look like in the URL:

{
  "state": {
    "searchQuery": "foo",
    "activeView": "my-monitor_mainGrid",
    "views": {
      "my-monitor_mainGrid": {
        "columns": [
          { "id": "firstColumn", "hidden": false, "width": 200 },
          { "id": "secondColumn", "hidden": true, "width": 200 },
          { "id": "timestamp", "hidden": false, "width": 200 }
        ],
        "storeState": {
          "sorters": [
            {
              "root": null,
              "property": "timestamp",
              "direction": "DESC",
              "id": "timestamp"
            }
          ],
          "filters": [
            {
              "value": "foo",
              "property": "firstColumn",
              "columnId": "firstColumn",
              "source": "raw",
              "operator": "=*",
              "invert": false
            }
          ]
        }
      }
    }
  }
}

A minimal configuration of the state object is the ` storeState`, which can also be set on its own and thereby sets the filters and sorters for the current view.

{
  "storeState": {
    "sorters": [
      {
        "root": null,
        "property": "timestamp",
        "direction": "DESC",
        "id": "timestamp"
      }
    ],
    "filters": [
      {
        "value": "foo",
        "property": "firstColumn",
        "columnId": "firstColumn",
        "source": "raw",
        "operator": "=*",
        "invert": false
      }
    ]
  }
}