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.

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.

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