Skip to content
MACHHUB MACHHUB MACHHUB
Contribute to this page

Permission JSON

You can define permission features and scopes as JSON and import them from the console’s Permissions page. This drives the authorization model — the features, actions, and scopes that groups grant.

{
"features": [
{
"name": "operator_panel",
"description": "Access control for the operator panel",
"actions": ["view", "create", "update", "delete"]
},
{
"name": "reporting",
"description": "Access control for reports",
"actions": ["view", "export"]
}
],
"scopes": ["company", "self", "team"]
}
FieldRequiredMeaning
nameyesUnique identifier, no spaces. If the name already exists it is updated; otherwise it is created.
descriptionnoHuman-readable explanation.
actionsyesA list of custom action verbs (e.g. view, create, update, delete, export).

A plain list of scope names (e.g. company, team, self). Existing scopes are skipped (no duplicates). The scopes key can be omitted entirely.

Features only (omit scopes):

{
"features": [
{ "name": "dashboard", "actions": ["view"] }
]
}

Scopes only (extend the scope vocabulary without touching features):

{
"scopes": ["region", "site"]
}

Once imported, these features and scopes become assignable in Groups: each group grants an action on a feature within a scope. See Authorization & Permissions for the model and SDK → Authorization for checking permissions in code.