Workspace Object Identification

  • Id is a logical name of an object instance limited to 255 characters of a a-Z0-9._-. Id can be prefixed by workspace if referenced from another (inherited) workspace - workspace:id

Objects referencing

For logical and physical layer all relations are solid part of an appropriate object structure, for analytics objects free-form content is supported, with an exception for metrics. To establish relationship between analytics object and other object following structure must be used.

{ 
  "identifier" :
  {
    "id" : STRING,
    "type" : "metric"|"analyticalDashboard"|...,
   }
}

For the MAQL a serialised form is used {<type>/<id>} and {<type>/<workspace>:<id>} eventually.

MAQL examples:

SELECT SUM({fact/size}) WHERE {label/name} IN ("Special","Small")
SELECT SUM({fact/parent-ws:size})

Object accessing from API

Object url is received as part of response in the most cases. Consumer of object should not create links on his own.

Object is located in workspace every time. If there is need to access object from different workspace, prefix must be used.

Client should not manipulate prefixes of the object identifier on its own, but use them as provided by the platform.

Simple identifier references direct to current workspace:
/api/v1/entities/workspaces/<workspace-id>/<type>/<obj-id>

For example
/api/v1/entities/workspaces/current-ws/attributes/attr-id references attr-id in current-ws

On other hand composed identifier can reference object from other than current workspace: /api/v1/entities/workspaces/<workspace-id>/<type>/<space-id>:<obj-id>

For example
/api/v1/entities/workspaces/current-ws/attributes/parent-ws:attr-id references attr-id from parent-ws

Simple identifier can be written in composed notation as
/api/v1/entities/workspaces/<workspace-id>/<type>/<workspace-id>:<obj-id> Current workspace and workspace reference are same workspace-id in this case.

For example
/api/v1/entities/workspaces/current-ws/attributes/current-ws:attr-id