Permissions
StackState Self-hosted v4.5.x

Overview

Permissions in StackState allow Administrators to manage the actions that each user or user group can perform inside StackState and the information that will be shown in their StackState UI. Only the feature set relevant to each user's active role will be presented. The actions, information and pages that a user does not have access to are simply not displayed in their StackState UI.
Permissions are stored in StackGraph. This means that:
  • If you perform an upgrade with "clear all data", permission setup will also be removed.
  • To completely remove a user, they must also be manually removed from StackGraph.
There are two types of permission in StackState:
  • ​System permissions - Scope user capabilities, such as access to settings, query execution and scripting.
  • ​View permissions - Allow for CRUD operations on StackState Views.

Predefined roles

StackState comes with four predefined roles:
  • Administrators (stackstate-admin): Have access to all views and have all permissions, except for the platform management permission access-admin-api.
  • Platform Administrators (stackstate-platform-admin): Have platform management permissions and have access to all views.
  • Power Users (stackstate-power-user): This role is typically granted to users that need to configure StackState for their team(s), but will not manage the entire StackState installation. Power users have all Administrator permissions except for:
    • execute-restricted-scripts
    • update-permissions
    • upload-stackpacks
  • Guests (stackstate-guest): Have read access, as you can see below when we use the StackState CLI to show granted permissions for the role:
    1
    $ sts permission show stackstate-guest
    2
    subject permission resource
    3
    ---------------- ------------------------- ----------
    4
    stackstate-guest access-explore system
    5
    stackstate-guest perform-custom-query system
    6
    stackstate-guest read-permissions system
    7
    stackstate-guest update-visualization system
    8
    stackstate-guest execute-component-actions system
    9
    stackstate-guest access-view everything
    Copied!

Default and custom role names

The default pre-defined role names (stackstate-admin, stackstate-platform-admin, stackstate-power-user, stackstate-guest) are always available. Additional custom role names can be added that have the same permissions. Below is an example of how to do this for both Kubernetes and Linux installations.
Kubernetes
Linux
Include this YAML snippet in an authentication.yaml when customizing the authentication configuration to extend the default role names with these custom role names.
1
stackstate:
2
authentication:
3
roles:
4
guest: ["custom-guest-role"]
5
powerUser: ["custom-power-user-role"]
6
admin: ["custom-admin-role"]
7
platformAdmin: ["custom-platform-admin-role"]
Copied!
To use it in for your StackState installation (or already running instance, note that it will restart the API):
1
helm upgrade \
2
--install \
3
--namespace stackstate \
4
--values values.yaml \
5
--values authentication.yaml \
6
stackstate \
7
stackstate/stackstate
Copied!
To extend the default role names with custom role names:
  1. 1.
    Edit the existing keys in the authorization section of the configuration file application_stackstate.conf.
  2. 2.
    Add custom roles using the syntax xxxGroups = ${stackstate.authorization.xxxGroups} ["custom-role"] as shown in the example below.
    1
    authorization {
    2
    guestGroups = ${stackstate.authorization.guestGroups} ["custom-guest-role"]
    3
    powerUserGroups = ${stackstate.authorization.powerUserGroups} ["custom-power-user-role"]
    4
    adminGroups = ${stackstate.authorization.adminGroups} ["custom-admin-role"]
    5
    platformAdminGroups = ${stackstate.authorization.platformAdminGroups} ["custom-platform-admin-role"]
    6
    }
    Copied!
  3. 3.
    Restart StackState for changes to take effect.
    The list of roles will be extended to include the new, custom roles. The default roles will remain available (stackstate-admin, stackstate-platform-admin, stackstate-guest and stackstate-power-user).

All permissions in StackState

There are two types of permission in StackState:
  • ​System permissions - Scope user capabilities, such as access to settings, query execution and scripting.
  • ​View permissions - Allow for CRUD operations on StackState Views.

System permissions

System permissions scope user capabilities, such as access to settings, query execution and scripting. They are set system wide.
See also the full list of view permissions.
Permission
Purpose
Guest
Power user
Admin
Platform Admin
access-explore
Access the Explore page.
βœ…
βœ…
βœ…
-
execute-component-actions
Execute component actions.
βœ…
βœ…
βœ…
-
perform-custom-query
Access the topology filter.
βœ…
βœ…
βœ…
-
read-permissions
List all granted permissions across the entire system via the CLI.
βœ…
βœ…
βœ…
-
update-visualization
Change visualization settings.
βœ…
βœ…
βœ…
-
access-analytics
Access the Analytics page.
-
βœ…
βœ…
-
access-admin-api
Access the administrator API.
-
-
-
βœ…
access-log-data
Access StackState logs via the CLI.
-
βœ…
βœ…
βœ…
access-synchronization-data
Access StackState synchronization status and data via the CLI.
-
βœ…
βœ…
-
access-topic-data
Access StackState receiver data via the CLI.
-
βœ…
βœ…
-
create-views
Create views.
-
βœ…
βœ…
-
execute-component-templates
Invoke a component template API extension (internal use only).
-
βœ…
βœ…
-
execute-node-sync
Reset or delete a synchronization.
-
βœ…
βœ…
-
execute-scripts
Execute a query in the StackState UI Analytics environment. The execute-restricted-scripts permission is also required to execute scripts using the HTTP script API.
-
βœ…
βœ…
-
import-settings
Import settings.
-
βœ…
βœ…
-
export-settings
Export settings.
-
βœ…
βœ…
-
manage-annotations
Persist and fetch Anomaly annotations in StackState.
-
βœ…
βœ…
-
manage-event-handlers
Create or edit event handlers.
-
βœ…
βœ…
-
manage-telemetry-streams
Create or edit new streams for components via the UI.
-
βœ…
βœ…
-
manage-topology-elements
Create/update/delete topology elements.
-
βœ…
βœ…
-
manage-stackpacks
Install/upgrade/uninstall StackPacks.
-
βœ…
βœ…
-
read-settings
Access the Settings page.
-
βœ…
βœ…
-
update-settings
Update settings.
-
βœ…
βœ…
-
execute-restricted-scripts
Execute scripts using the HTTP script API in the StackState UI analytics environment. Also requires execute-scripts.
-
-
βœ…
-
update-permissions
Grant/revoke permissions or modify subjects.
-
-
βœ…
-
upload-stackpacks
Upload new (versions of) StackPacks.
-
-
βœ…
-

View permissions

View permissions allow for CRUD operations on StackState Views. They can be set for a specific view or all views (everything).
See also the full list of system permissions.
Permission
Purpose
Guest
Power user
Admin
Platform Admin
access-view
Access a specific view (when granted on a view) or all views (when granted on everything).
βœ… everything
βœ… everything
βœ… everything
βœ… everything
delete-view
Delete a specific view (when granted on a view) or all views (when granted on everything).
-
βœ… everything
βœ… everything
-
save-view
Update a specific view (when granted on a view) or all views (when granted on everything).
-
βœ… everything
βœ… everything
-

Permissions by action

Page access

The permissions in the table below are required to access specific pages in the StackState UI. Without these permissions, the associated page will be hidden in the StackState UI and will not be accessible via its URL.
Main menu with all permissions granted
Page
Permission
Guest
Power user
Admin
Platform admin
Explore Mode
access-explore
βœ…
βœ…
βœ…
-
Views Access can be granted either for a specific view using the view ID or for all views using the everything resource. For details, see the view management permissions.
access-view
βœ… everything
βœ… everything
βœ… everything
βœ… everything
Analytics For details, see the analytics environment permissions.
access-analytics
-
βœ…
βœ…
-
StackPacks
manage-stackpacks
-
βœ…
βœ…
-
Settings For details, see the settings page permissions.
read-settings
-
βœ…
βœ…
-
Settings > Export Settings Also requires read-settings. Without this permission, Export Settings is removed from Settings Menu. For details, see the settings page permissions.
export-settings
-
βœ…
βœ…
-
Settings > Import Settings Also requires read-settings. Without this permission, Import Settings is removed from Settings Menu. For details, see the settings page permissions.
import-settings
-
βœ…
βœ…
-
See the full list of permissions for pre-defined roles (above).

Topology

The permissions listed below are required to work with topology in StackState:
Action
Permission
Guest
Power user
Admin
Platform admin
Access and edit the view visualization settings. If not granted, the visualization settings button will be hidden.
update-visualization
βœ…
βœ…
βœ…
-
Basic and Advanced filtering. If not granted, filtering options will be hidden.
perform-custom-query
βœ…
βœ…
βœ…
-
Execute actions from the component context menu.
execute-component-actions
βœ…
βœ…
βœ…
-
Drag and drop components.
manage-topology-elements
-
βœ…
βœ…
-
Add components button. Create relations between topology elements.
manage-topology-elements and perform-custom-query and read-settings
-
βœ…
βœ…
-
See the full list of permissions for pre-defined roles (above).

Component/relation details

The permissions listed below are required to carry out specific actions in the component or relation details pane.
Action
Permission
Guest
Power user
Admin
Platform admin
Telemetry streams Add a new telemetry stream. Without this permission, only the Inspect action is available in the ... menu and the ADD button is hidden.
manage-topology-elements
-
βœ…
βœ…
-
Health checks Add a new StackState health check. Edit / delete an existing health check. Without this permission, the ... menu and the ADD button are hidden.
manage-topology-elements
-
βœ…
βœ…
-
Elements Delete an element or element template.
manage-topology-elements
-
βœ…
βœ…
-
Elements Edit an element or element template.
manage-topology-elements and perform-custom-query and read-settings
-
βœ…
βœ…
-
See the full list of permissions for pre-defined roles (above).

View management

The permissions listed below can be set to access and work with views:
Action
Permission
Guest
Power user
Admin
Platform admin
Access a specific view or all views (everything). Example: Grant permissions to open a view.
access-view
βœ… everything
βœ… everything
βœ… everything
βœ… everything
Access and edit the view visualization settings. If not granted, the visualization settings button will be hidden.
update-visualization
βœ…
βœ…
βœ…
-
Add or edit event handlers. If not granted, the ADD NEW EVENT HANDLER button will not be available, however, users will be able to view details of existing event handlers. Example: Grant permissions to add and edit event handlers.
manage-event-handlers
-
βœ…
βœ…
-
Create views. Example: Grant permissions to create views.
create-views
-
βœ…
βœ…
-
Save updates to a view. For a specific view or all views (everything).
save-view
-
βœ… everything
βœ… everything
-
Delete a view. For a specific view or all views (everything).
delete-view
-
βœ… everything
βœ… everything
-
See the full list of permissions for pre-defined roles (above).

Analytics environment

The permissions listed below are required to access and execute scripts in the StackState UI analytics environment:
Action
Permission
Guest
Power user
Admin
Platform admin
Access the Analytics page in the StackState UI. Without this permission, the analytics environment will be hidden in the StackState UI, and it will not be accessible via its URL.
access-analytics
-
βœ…
βœ…
-
Execute scripts in the StackState UI analytics environment. Without this permission, the Execute button will not be available. Also requires access-analytics.
execute-scripts
-
βœ…
βœ…
-
Execute scripts that use the HTTP script API. Also requires access-analytics and execute-scripts.
execute-restricted-scripts
-
-
βœ…
-
See the full list of permissions for pre-defined roles (above).

Settings page

The permissions listed below are required to access and manage settings in the StackState UI:
Action
Permission
Guest
Power user
Admin
Platform admin
Access the Settings page in the StackState UI. Without this permission, the settings section will be hidden in the StackState UI main menu, and it will not be accessible via its URL.
read-settings
-
βœ…
βœ…
-
Add / Edit / Delete capabilities. This permission unlocks the ... menu and the ADD buttons on all Settings Pages.
update-settings
-
βœ…
βœ…
-
Export capability. Without this permission, checkboxes are not available on the settings page.
export-settings
-
βœ…
βœ…
-
Delete and Reset synchronization capabilities.
execute-node-sync
-
βœ…
βœ…
-
See the full list of permissions for pre-defined roles (above).

Platform Management

The permissions listed below are required to access and manage StackState platform:
Action
Permission
Guest
Power user
Admin
Platform Admin
access-admin-api
Access the administrator API.
-
-
-
βœ…
access-log-data
Access StackState logs via the CLI.
-
βœ…
βœ…
βœ…
See the full list of permissions for pre-defined roles (above).

Example CLI commands

Important note: All permissions in StackState are case sensitive.

List all permissions

List all permissions:
1
sts permission list
Copied!

Show granted permissions

Show the permissions granted to a specific role.
1
sts permission show [role-name]
Copied!

Grant permissions

Allow a user to open a view

Provide a subject with permission to open a view:
1
sts permission grant [subject-handle] access-view [view-name]
Copied!

Allow a user to create (save) views

Provide a subject with the system permission to create (save) views:
1
sts permission grant [subject-handle] create-views system
Copied!

Allow a user to check StackState settings

Provide a subject with the system permission to check StackState settings:
1
sts permission grant [subject-handle] read-settings system
Copied!

Allow a user to add or edit event handlers

Provide a subject with the system permission to add new event handlers and edit existing event handlers:
1
sts permission grant [subject-handle] manage-event-handlers system
Copied!

Revoke permissions

Revoke permissions for a subject to open a view:
1
sts permission revoke [subject-handle] access-view [view-name]
Copied!

StackState UI with no permissions

Below is an example of how the StackState UI would look for a user without any permissions:
No permissions
Last modified 20d ago