Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Models Tools & Services
Solutions
Organisations Developers Internet Service Providers Managed Service Providers AI-in-a-Box
Resources
Support Documentation Blog Downloads
Company
About Research Careers Investment Opportunities Contact
Log in

Permissions

ScaiCore's wrapper defines six module-permission keys. Every endpoint enforces one of them. Permissions live in ScaiGrid (not ScaiKey) and are auto-granted to built-in roles via the standard catch-all in CurrentUser.has_module_permission.

Permission keys#

Key What it grants
scaicore:view Read Cores, logs, runtime state, checkpoints; list plugins, triggers, events history.
scaicore:manage Create, configure, start, stop, restart, pause, resume, delete Cores; install/uninstall plugins; register triggers; publish / unpublish.
scaicore:debug Debug tools — breakpoints, stepping, inspection (currently stubs; permission is wired ahead of the feature).
scaicore:checkpoint_resolve View and resolve pending checkpoints; cancel and reassign.
scaicore:delegate Delegate and revoke user identity for Cores; update scopes/expiry.
scaicore:admin Full administrative access to all ScaiCore features.

Default role mapping#

Role Auto-grants
super_admin All of the above.
partner_admin All of the above for tenants under the partner.
tenant_admin All of the above for the tenant.
tenant_user None by default.
tenant_viewer scaicore:view only.

tenant_user gets nothing automatically because Cores can call models (accounting impact), publish into the catalogue (visibility impact), and delegate identity (security impact) — explicit opt-in is safer.

Granting selectively#

A common pattern is a Core-operators role:

bash
1
2
3
4
5
6
7
curl -X POST "$SCAIGRID_HOST/v1/iam/custom-roles" \
  -H "Authorization: Bearer $SCAIGRID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Core operators",
    "module_permissions": ["scaicore:view", "scaicore:manage", "scaicore:checkpoint_resolve"]
  }'

Reviewers who only resolve checkpoints get scaicore:view + scaicore:checkpoint_resolve. Identity delegation should be held by fewer people; gate it behind a separate scaicore:delegate role.

Updated 2026-05-18 15:01:29 View source (.md) rev 11