计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
canva-enterprise-rbac【效率与协作】Implement application-owned authorization from Canva scopes, user capabilities, resource ownership, and tenant policy. Use when gating Enterprise or privileged operations without inventing a Canva custom-role API. Trigger with: "Canva RBAC", "check Canva capability", "authorize Canva action".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: canva-enterprise-rbac description: 'Implement application-owned authorization from Canva scopes, user capabilities, resource ownership, and tenant policy. Use when gating Enterprise or privileged operations without inventing a Canva custom-role API. Trigger with: "Canva RBAC", "check Canva capability", "authorize Canva action".' allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[action-and-tenant-context]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Use Canva scopes and capabilities as provider inputs to your own authorization decision. Do not equate OAuth consent with tenant role, resource ownership, feature entitlement, or approval to process content.
Name subject, tenant, application role, action, resource, environment, requested Canva operation, and data class.
Treat granted scopes, capability fields, resource access, and preview availability as independent facts. Absence, unknown values, or stale evidence must deny.
Use Write or Edit to map each application action to minimum scopes, required capability evidence, ownership rule, approval, and audit class.
Resolve the policy after authenticated tenant identity and before dispatch. Keep the generic Canva client unaware of business roles.
Invalidate cached decisions after scope, membership, consent, capability, policy, or resource-owner changes; require reauthorization only when scopes changed.
Record policy version, opaque subject/resource references, decision inputs, allow/deny result, and reason code without tokens or design contents.
Canva Connect calls use Bearer access tokens obtained by a backend through OAuth 2.0 Authorization Code with SHA-256 PKCE. Request explicit least-privilege scopes, keep client secrets and tokens out of browser-visible state, and serialize refresh so the replacement single-use refresh token is stored atomically.
Use Read and Grep for discovery and evidence. Use Write or Edit only for the approved artifact, code, configuration, test, or receipt described by this workflow; do not make an unapproved Canva-side change.
An application editor requests brand-template autofill. The backend checks tenant role, explicit design and template scopes, current capability/availability, template ownership, and data approval before submitting one job.
| Failure | Response |
|---|---|
| Capability field is unknown | Deny and update the pinned response contract |
| Scope exists but role denies | Deny; OAuth consent does not override application policy |
| Tenant cannot be resolved | Stop before any Canva request |
| Policy cache is stale | Invalidate and recompute from current evidence |