Workspace Permissions

Workspace permissions are divided into two categories; workspace permissions and workspace hierarchy permissions:

  • Workspace permissions are tied to a specific workspace and define what a user can do with that one specific workspace.

  • Workspace hierarchy permissions are tied to a specific workspace and define what a user can do with that specific workspace and all of its child workspaces. For more information on Workspace hierarchies, see Build a Workspace Hierarchy.

Note

Permissions are a beta feature. Please note that the implementation of these features is not finalized, and the behavior or interface of these features is subject to change.

Supported Permissions

The following permissions are applicable to the Workspace object type:

  • VIEW

    User can view Dashboards.

  • ANALYZE

    Additionally, user can create, edit and delete Dashboards, Insights. User can view LDM and Metrics.

  • MANAGE

    Additionally, user can create, edit and delete LDM and Metrics.

    Note

    To be able to work with the LDM fully, including PDM-LDM mapping, user also requires at least the USE permission for data sources.

Permission Hierarchy

graph RL
    VIEW --> ANALYZE --> MANAGE

Set Permissions For a Workspace

Workspaces come with an imperative API endpoint /api/layout/workspaces/{workspaceId}/permissions that allows you to set permissions for a particular workspace without having to submit the entire layout definition.

Alternatively you can set permissions using the /api/layout/workspaces or the /api/layout/organization declarative API endpoints.

Steps:

  1. Prepare a <your_workspace_permissions>.json file your workspace permissions definition:

    {
        "hierarchyPermissions": [
            {
                "assignee": {
                    "id": "<user_id_or_user_group_id>",
                    "type": "<user_or_userGroup>"
                },
                "name": "<MANAGE_or_ANALYZE_or_VIEW>"
            }
        ],
        "permissions": [
            {
                "assignee": {
                    "id": "<user_id_or_user_group_id>",
                    "type": "<user_or_userGroup>"
                },
                "name": "<MANAGE_or_ANALYZE_or_VIEW>"
            }
        ]
    }
  2. Update the workspace permissions using the following API call:

    curl -H "Authorization: Bearer <your_bearer_token>" \
        -H "Content-Type: application/json" \
        -X PUT \
        <your_hostname>/api/layout/workspaces/{workspaceId}/permissions -d @<your_workspace_permissions>.json