Skip to main content

API Permission Matrix

Generated by scripts/generate_permission_matrix.py — regenerate after changing route permission decorators; do not hand-edit the tables.

Issue #2276: Permission requirements for all admin endpoints.

This document lists all API endpoints that require elevated permissions (admin, platform_admin, or tenant_admin).

Permission Model​

RoleDescriptionPlatform Admin APIsTenant APIs
adminLegacy admin role (backward compatible)✅ Full access✅ Full access
platform_adminPlatform admin (recommended)✅ Full access✅ Full access
tenant_adminTenant admin❌ No access✅ Own tenant only
userRegular user❌ No access❌ No access

Platform Admin Required Endpoints​

These endpoints require platform_admin or admin role.

MethodPathFunctionFileLine
GET/api/api/encryption-keysget_encryption_keysencryption_keys.py34
GET/api/api/encryption-keys/audit-logget_audit_logencryption_keys.py176
POST/api/api/encryption-keys/generate-env-configgenerate_env_configencryption_keys.py158
POST/api/api/encryption-keys/re-encryptre_encryptencryption_keys.py378
POST/api/api/encryption-keys/re-encrypt/pre-checkre_encrypt_pre_checkencryption_keys.py261
POST/api/api/encryption-keys/rotaterotate_keyencryption_keys.py113
GET/api/api/encryption-keys/sync-statusget_sync_statusencryption_keys.py203
POST/api/api/encryption-keys/validatevalidate_keyencryption_keys.py52
POST/api/content/filter/keywordsapi_add_keywordgovernance.py467
POST/api/content/filter/patternsapi_add_patterngovernance.py433
POST/api/filter-rulesapi_create_filter_rulegovernance.py570
PUT/api/filter-rules/<int:rule_id>api_update_filter_rulegovernance.py622
DELETE/api/filter-rules/<int:rule_id>api_delete_filter_rulegovernance.py661
PUT/api/security-settingsapi_update_security_settingsgovernance.py705
GET/api/tenantslist_tenantstenant.py120
POST/api/tenantscreate_tenanttenant.py178
GET/api/tenants/<int:tenant_id>get_tenanttenant.py146
PUT/api/tenants/<int:tenant_id>update_tenanttenant.py287
DELETE/api/tenants/<int:tenant_id>delete_tenanttenant.py516
POST/api/tenants/<int:tenant_id>/activateactivate_tenanttenant.py488
PUT/api/tenants/<int:tenant_id>/quotaupdate_tenant_quotatenant.py340
POST/api/tenants/<int:tenant_id>/reset-periodreset_billing_periodtenant.py601
POST/api/tenants/<int:tenant_id>/suspendsuspend_tenanttenant.py455
GET/api/tenants/slug/<slug>get_tenant_by_slugtenant.py162

Admin Required Endpoints​

These endpoints require admin, platform_admin, or tenant_admin role.

MethodPathFunctionFileLine
POST/api/admin/dingtalk/syncapi_sync_dingtalk_orgadmin.py1797
GET/api/admin/dingtalk/sync/lock-stateapi_dingtalk_sync_lock_stateadmin.py1899
POST/api/admin/dingtalk/sync/release-lockapi_release_dingtalk_sync_lockadmin.py1914
POST/api/admin/feishu/syncapi_sync_feishu_orgadmin.py1765
GET/api/admin/feishu/sync/lock-stateapi_feishu_sync_lock_stateadmin.py1869
POST/api/admin/feishu/sync/release-lockapi_release_feishu_sync_lockadmin.py1884
POST/api/admin/quota/health-checkapi_quota_health_checkadmin.py1621
GET/api/admin/quota/statsapi_quota_statsadmin.py1452
GET/api/admin/quota/usageapi_quota_usageadmin.py1398
POST/api/admin/quota/validate-allocationapi_validate_quota_allocationadmin.py1553
GET/api/admin/usersapi_get_usersadmin.py227
POST/api/admin/usersapi_create_useradmin.py260
PUT/api/admin/users/<int:user_id>api_update_useradmin.py419
DELETE/api/admin/users/<int:user_id>api_delete_useradmin.py682
PUT/api/admin/users/<int:user_id>/passwordapi_update_user_passwordadmin.py1013
PUT/api/admin/users/<int:user_id>/quotaapi_update_user_quotaadmin.py1139
POST/api/admin/users/<int:user_id>/reset-passwordapi_reset_user_passwordadmin.py1051
POST/api/admin/users/<int:user_id>/restoreapi_restore_useradmin.py804
GET/api/ai-agent/settingsapi_get_ai_agent_settingsai_agent_settings.py37
PUT/api/ai-agent/settingsapi_update_ai_agent_settingsai_agent_settings.py45
POST/api/ai-agent/settings/validate-github-tokenapi_validate_github_tokenai_agent_settings.py91
GET/api/audit-actionsapi_audit_actionsgovernance.py129
GET/api/audit-logsapi_audit_logsgovernance.py115
GET/api/audit/logsapi_get_audit_logsgovernance.py54
GET/api/audit/logs/exportapi_export_audit_logsgovernance.py188
GET/api/audit/user/<int:user_id>/activityapi_user_activitygovernance.py251
GET/api/compliance/audit/anomaliesdetect_anomaliescompliance.py475
POST/api/compliance/audit/anomalies/statusupdate_anomaly_statuscompliance.py759
GET/api/compliance/audit/patternsanalyze_patternscompliance.py455
GET/api/compliance/audit/security-scoreget_security_scorecompliance.py539
GET/api/compliance/audit/thresholdsget_audit_thresholdscompliance.py576
PUT/api/compliance/audit/thresholdsupdate_audit_thresholdscompliance.py584
GET/api/compliance/audit/user/<int:user_id>/profileget_user_profilecompliance.py515
GET/api/compliance/reportslist_reportscompliance.py108
POST/api/compliance/reportsgenerate_reportcompliance.py157
GET/api/compliance/reports/<report_id>get_saved_reportcompliance.py373
GET/api/compliance/reports/savedlist_saved_reportscompliance.py337
POST/api/compliance/retention/cleanuprun_retention_cleanupcompliance.py669
GET/api/compliance/retention/historyget_retention_historycompliance.py681
GET/api/compliance/retention/rulesget_retention_rulescompliance.py623
PUT/api/compliance/retention/rulesset_retention_rulecompliance.py637
GET/api/compliance/retention/statusget_retention_statuscompliance.py708
GET/api/compliance/retention/storageestimate_storagecompliance.py698
GET/api/content/filter/statsapi_filter_statsgovernance.py423
GET/api/fetchapi_fetchfetch.py431
GET/api/fetch/remoteapi_fetch_remotefetch.py441
GET/api/filter-rulesapi_get_filter_rulesgovernance.py560
GET/api/governance/audit-logsapi_governance_audit_logsgovernance.py122
GET/api/mapping-rulesget_all_rulesmapping_rules.py61
POST/api/mapping-rulescreate_rulemapping_rules.py120
PUT/api/mapping-rules/<int:id>update_rulemapping_rules.py168
DELETE/api/mapping-rules/<int:id>delete_rulemapping_rules.py224
POST/api/mapping-rules/auto-maprun_auto_mappingmapping_rules.py331
POST/api/mapping-rules/test-matchtest_matchmapping_rules.py376
GET/api/mapping-rules/user/<int:user_id>get_user_rulesmapping_rules.py94
POST/api/mapping-rules/user/<int:user_id>/generate-defaultgenerate_default_rulesmapping_rules.py259
GET/api/mapping-statsget_mapping_statsmapping_rules.py303
GET/api/policy/decisionslist_policy_decisionspolicy.py248
GET/api/policy/ruleslist_policy_rulespolicy.py124
POST/api/policy/rulescreate_policy_rulepolicy.py171
PATCH/api/policy/rules/<int:rule_id>/enabledtoggle_policy_rulepolicy.py223
PUT/api/policy/rules/<rule_key>update_policy_rulepolicy.py194
GET/api/quota/alertsapi_get_quota_alertsgovernance.py301
POST/api/quota/alerts/<int:alert_id>/acknowledgeapi_acknowledge_alertgovernance.py329
GET/api/quota/status/allapi_all_quota_statusgovernance.py276
GET/api/remote/heartbeat-statusget_heartbeat_statusremote.py1157
DELETE/api/remote/machines/<machine_id>deregister_machineremote.py1357
POST/api/remote/machines/<machine_id>/token/revokerevoke_machine_tokenremote.py1561
POST/api/remote/machines/<machine_id>/token/rotaterotate_machine_tokenremote.py1450
POST/api/remote/machines/registerregister_machineremote.py1093
GET/api/security-settingsapi_get_security_settingsgovernance.py695
GET/api/security-settings/upload-auth-statusapi_get_upload_auth_statusgovernance.py769
POST/api/sso/providersregister_providersso.py569
GET/api/sso/providers/<provider_name>get_provider_detailsso.py500
PUT/api/sso/providers/<provider_name>update_providersso.py664
DELETE/api/sso/providers/<provider_name>disable_providersso.py910
PATCH/api/sso/providers/<provider_name>/disabledisable_provider_routesso.py879
PATCH/api/sso/providers/<provider_name>/enableenable_provider_routesso.py848
POST/api/sso/providers/<provider_name>/resetreset_provider_to_defaultssso.py942
POST/api/sso/providers/<provider_name>/testtest_provider_connectionsso.py1035
GET/api/sso/providers/exportexport_providerssso.py1300
GET/api/unmapped-accountsget_unmapped_accountsmapping_rules.py424
POST/api/unmapped-accounts/<sender_name>/mapmanual_map_accountmapping_rules.py501
GET/api/unmapped-accounts/<sender_name>/suggest-mappingsuggest_mappingmapping_rules.py457

Same Tenant or Platform Admin Endpoints​

These endpoints allow tenant_admin to access their own tenant, or platform_admin to access any tenant.

MethodPathFunctionFileLine
POST/api/tenants/<int:tenant_id>/check-quotacheck_tenant_quotatenant.py582
GET/api/tenants/<int:tenant_id>/sensitive-keywordsapi_get_tenant_keywordsgovernance.py795
POST/api/tenants/<int:tenant_id>/sensitive-keywordsapi_create_tenant_keywordgovernance.py848
PUT/api/tenants/<int:tenant_id>/sensitive-keywords/<int:keyword_id>api_update_tenant_keywordgovernance.py919
DELETE/api/tenants/<int:tenant_id>/sensitive-keywords/<int:keyword_id>api_delete_tenant_keywordgovernance.py988
PUT/api/tenants/<int:tenant_id>/settingsupdate_tenant_settingstenant.py375
GET/api/tenants/<int:tenant_id>/statsget_tenant_statstenant.py566
GET/api/tenants/<int:tenant_id>/usageget_tenant_usagetenant.py545

Summary​

  • Total platform_admin_required endpoints: 24
  • Total admin_required endpoints: 84
  • Total same_tenant_or_platform_admin endpoints: 8

Note: Issue #2276 ensures backward compatibility — the admin role can access all platform_admin_required endpoints.