Permission matrix
Every permission point, which built-in roles hold it, and the menu or API it guards.
Permission points are the first layer of the model. The second is business-group membership, and the two are combined with AND:
may edit this alert rule = my role holds the "edit alert rule" permission point
AND
one of my teams has write on the business group
that owns the rule
The model itself is in Authentication and permissions; this page is the lookup table.
Three built-in roles
| Role | Reach |
|---|---|
Admin | Skips the permission check — holds every point, and is not bounded by business-group membership either |
Standard | Everyday users. Holds most points |
Guest | Read-only observer. A dozen or so query points |
Custom roles are created under Organization → Roles by ticking the points you want.
A user can hold several roles at once; permissions are the union.
The list
Points marked "menu visibility only" guard no endpoint — they decide whether a sidebar item shows, and the backend will not reject a request for lack of one. The points that list endpoints are the real gate.
96 permission points. The Admin role is not in this table — it skips the
permission check in code, so it holds every point and is not bounded by business-group
membership either.
A permission point is only the first layer. Whether you may act on a given object also depends on whether one of your teams has write on the business group that owns it — the two are combined with AND.
| Permission point | Standard | Guest | Guards |
|---|---|---|---|
/ai-config/llm-configs | GET /ai-llm-configsGET /ai-llm-config/:idPOST /ai-llm-configsPUT /ai-llm-config/:idDELETE /ai-llm-config/:idPOST /ai-llm-config/test | ||
/ai-config/skills | GET /ai-skillsGET /ai-skill/:idPOST /ai-skillsPUT /ai-skill/:idDELETE /ai-skill/:idPOST /ai-skills/importPUT /ai-skill/:id/importPOST /ai-skills/git/installPUT /ai-skill/:id/git/installPOST /ai-skill/:id/git/updateGET /ai-skill-file/:fileIdDELETE /ai-skill-file/:fileId | ||
/alert-cur-events | ✅ | (menu visibility only) | |
/alert-cur-events/del | ✅ | DELETE /alert-cur-events | |
/alert-his-events | ✅ | (menu visibility only) | |
/alert-mutes | ✅ | GET /busi-groups/alert-mutesGET /busi-group/:id/alert-mutesGET /busi-group/:id/alert-mute/:amid | |
/alert-mutes/add | ✅ | POST /busi-group/:id/alert-mutes/previewPOST /busi-group/:id/alert-mutesPOST /alert-mute-tryrun | |
/alert-mutes/del | ✅ | DELETE /busi-group/:id/alert-mutes | |
/alert-mutes/put | PUT /busi-group/:id/alert-mute/:amidPUT /busi-group/:id/alert-mutes/fields | ||
/alert-rules | ✅ | GET /busi-groups/alert-rulesGET /busi-group/:id/alert-rulesGET /alert-rule/:aridGET /alert-rule/:arid/pureGET /alert-rule/:arid/eval-records | |
/alert-rules-built-in | ✅ | (menu visibility only) | |
/alert-rules/add | ✅ | POST /busi-group/:id/alert-rulesPOST /busi-group/:id/alert-rules/importPOST /busi-group/:id/alert-rules/clonePOST /busi-groups/alert-rules/clonesPOST /busi-group/alert-rules/notify-tryrunPOST /busi-group/alert-rules/enable-tryrunPOST /busi-group/:id/alert-rule/test-fire | |
/alert-rules/del | ✅ | DELETE /busi-group/:id/alert-rules | |
/alert-rules/put | ✅ | PUT /busi-group/:id/alert-rules/fieldsPUT /busi-group/:id/alert-rule/:aridPUT /busi-group/alert-rule/validate | |
/alert-subscribes | ✅ | GET /busi-groups/alert-subscribesGET /busi-group/:id/alert-subscribesGET /alert-subscribe/:sid | |
/alert-subscribes/add | ✅ | POST /busi-group/:id/alert-subscribesPOST /alert-subscribe/alert-subscribes-tryrun | |
/alert-subscribes/del | ✅ | DELETE /busi-group/:id/alert-subscribes | |
/alert-subscribes/put | ✅ | PUT /busi-group/:id/alert-subscribes | |
/builtin-metrics/add | POST /builtin-metrics | ||
/builtin-metrics/del | DELETE /builtin-metrics | ||
/builtin-metrics/put | PUT /builtin-metrics | ||
/busi-groups | ✅ | (menu visibility only) | |
/busi-groups/add | ✅ | POST /busi-groups | |
/busi-groups/del | ✅ | DELETE /busi-group/:id | |
/busi-groups/put | ✅ | PUT /busi-group/:idPOST /busi-group/:id/membersDELETE /busi-group/:id/members | |
/components/add | POST /builtin-componentsPOST /builtin-payloads | ||
/components/del | DELETE /builtin-componentsDELETE /builtin-payloads | ||
/components/put | PUT /builtin-componentsPUT /builtin-payloads | ||
/dashboards | ✅ | GET /busi-groups/public-boardsGET /busi-groups/boardsGET /busi-group/:id/boards | |
/dashboards-built-in | ✅ | (menu visibility only) | |
/dashboards/add | ✅ | POST /busi-group/:id/boardsPOST /busi-group/:id/board/:bid/clonePOST /busi-groups/boards/clones | |
/dashboards/del | ✅ | DELETE /boardsDELETE /dashboard-annotation/:id | |
/dashboards/put | ✅ | PUT /board/:bidPUT /board/:bid/configsPUT /board/:bid/publicPOST /dashboard-annotationsPUT /dashboard-annotation/:id | |
/embedded-dashboards | GET /embedded-dashboards | ||
/embedded-dashboards/put | PUT /embedded-dashboards | ||
/embedded-product/add | POST /embedded-product | ||
/embedded-product/delete | DELETE /embedded-product/:id | ||
/embedded-product/put | PUT /embedded-products/weightsPUT /embedded-product/:id/hidePUT /embedded-product/:id | ||
/event-pipelines | GET /event-pipelinesGET /event-pipeline/:idPOST /event-pipeline-tryrunPOST /event-processor-tryrunPOST /event-pipeline/:id/triggerPOST /event-pipeline/:id/streamGET /event-pipeline-executionsGET /event-pipeline/:id/executionsGET /event-pipeline/:id/execution/:exec_idGET /event-pipeline-execution/:exec_idGET /event-pipeline/:id/execution-stats | ||
/event-pipelines/add | POST /event-pipeline | ||
/event-pipelines/del | DELETE /event-pipelines | ||
/event-pipelines/put | PUT /event-pipelinePUT /event-pipelines/disabled | ||
/help/contact | ✅ | ✅ | (menu visibility only) |
/help/migrate | ✅ | (menu visibility only) | |
/help/notification-settings | GET /notify-scriptGET /notify-channelGET /notify-config | ||
/help/servers | ✅ | (menu visibility only) | |
/help/version | ✅ | ✅ | (menu visibility only) |
/job-tasks | ✅ | GET /busi-groups/tasksGET /busi-group/:id/tasks | |
/job-tasks/add | ✅ | POST /busi-group/:id/tasks | |
/job-tasks/put | ✅ | (menu visibility only) | |
/job-tpls | ✅ | GET /busi-groups/task-tplsGET /busi-group/:id/task-tplsGET /busi-group/:id/task-tpl/:tid | |
/job-tpls/add | ✅ | POST /busi-group/:id/task-tpls | |
/job-tpls/del | ✅ | DELETE /busi-group/:id/task-tpl/:tid | |
/job-tpls/put | ✅ | POST /busi-group/:id/task-tpls/tagsDELETE /busi-group/:id/task-tpls/tagsPUT /busi-group/:id/task-tpl/:tid | |
/log/explorer | ✅ | ✅ | (menu visibility only) |
/log/index-patterns/add | POST /es-index-pattern | ||
/log/index-patterns/del | DELETE /es-index-pattern | ||
/log/index-patterns/put | PUT /es-index-patternPUT /es-index-patterns/weights | ||
/metric/explorer | ✅ | ✅ | (menu visibility only) |
/notification-channels | GET /notify-channel-config/:idGET /notify-channel-configsPOST /feishu-visible-chats/:idPOST /dingtalk-group-list/:id | ||
/notification-channels/add | POST /notify-channel-configsPOST /notify-channel-config/test | ||
/notification-channels/del | DELETE /notify-channel-configs | ||
/notification-channels/put | PUT /notify-channel-config/:id | ||
/notification-rules | GET /notify-rule/:idGET /notify-rulesPOST /notify-rule/testGET /notify-rule/custom-params | ||
/notification-rules/add | POST /notify-rulesPOST /notify-rule/event-pipelines-tryrun | ||
/notification-rules/del | DELETE /notify-rules | ||
/notification-rules/put | PUT /notify-rule/:id | ||
/notification-templates | GET /message-template/:id | ||
/notification-templates/add | POST /message-templates | ||
/notification-templates/del | DELETE /message-templates | ||
/notification-templates/put | PUT /message-template/:id | ||
/object/explorer | ✅ | ✅ | (menu visibility only) |
/recording-rules | ✅ | GET /busi-groups/recording-rulesGET /busi-group/:id/recording-rulesGET /recording-rule/:rridPUT /recording-rule/:rrid | |
/recording-rules/add | ✅ | POST /busi-group/:id/recording-rules | |
/recording-rules/del | ✅ | DELETE /busi-group/:id/recording-rules | |
/recording-rules/put | ✅ | PUT /busi-group/:id/recording-rules/fields | |
/roles | GET /role/:id/ops | ||
/roles/add | POST /roles | ||
/roles/del | DELETE /role/:id | ||
/roles/put | PUT /rolesPUT /role/:id/ops | ||
/system/alerting-engines | GET /servers | ||
/system/variable-settings | GET /user-variable-configsPOST /user-variable-configPUT /user-variable-config/:idDELETE /user-variable-config/:id | ||
/targets | ✅ | (menu visibility only) | |
/targets/add | ✅ | (menu visibility only) | |
/targets/del | ✅ | DELETE /targets | |
/targets/put | ✅ | POST /targets/tagsDELETE /targets/tagsPUT /targets/notePUT /targets/bgids | |
/trace/dependencies | ✅ | (menu visibility only) | |
/trace/explorer | ✅ | ✅ | (menu visibility only) |
/user-groups | ✅ | (menu visibility only) | |
/user-groups/add | ✅ | POST /user-groups | |
/user-groups/del | ✅ | DELETE /user-group/:id | |
/user-groups/put | ✅ | PUT /user-group/:idPOST /user-group/:id/membersDELETE /user-group/:id/members | |
/users | ✅ | GET /users | |
/users/add | POST /users | ||
/users/del | DELETE /user/:id | ||
/users/put | PUT /user/:id/profilePUT /user/:id/password |