QORMQORM v0.8.4 docs Get started

QORM Permission Model

The permission model controls the available scope of Host Capabilities, Agents, Plugins, Bundles, and Platform Packs.

Permission Sources

platform capabilities
bundle requirements
app policy
agent policy
plugin manifest
user approval

Permission Priority

A single call is adjudicated in the following order:

1. capability exists
2. platform supports capability
3. bundle declares capability
4. app/system policy allows capability
5. agent/plugin policy allows capability
6. user approved if required

Rules:

Conflict Resolution

Permission Example

{
  "permissions": {
    "network.request": {
      "allowed": true,
      "domains": ["api.example.com"],
      "methods": ["GET", "POST"]
    },
    "filesystem.write": {
      "allowed": true,
      "requiresApproval": true
    },
    "shell": {
      "allowed": false
    }
  }
}

requiresApproval Semantics

requiresApproval means that even if the capability or operation is already allowed, a valid approval credential is still required.

Minimum rules:

Approval Lifecycle

An approval record contains at least:

approval id
issuer
scope
issuedAt
expiresAt
reuse policy
revokedAt
revocation reason

Invalidation conditions include at least:

Agent Permissions

Agent-side permissions should be stricter:

read-only
preview-only
edit-json
apply-patch
host-call
admin

apply-patch and host-call are not granted by default.

Agent allow cannot relax app/system policy; Agent deny can further restrict that Agent.

Auditing

All permission-related operations must be recorded in an audit log.

Minimum fields:

decision id
subject type
subject id
capability or operation
input summary
policy result
approval id
reason
timestamp

Audit logs should avoid recording raw sensitive payloads; if context must be retained, record summaries or redacted fields.