Skip to content

Scope Reference

Scope names follow resource:action. A route that needs a scope your key lacks answers missing_scope (403) with the message missing_scope:<scope>.

Terminal window
npx @boomin/cli scopes
npx @boomin/cli scopes explain distributions:launch

Mint the narrowest key that does the job. See Authentication.

The scopes the /v1/platform distribution tree uses.

ScopePurpose
org:readRead current organization context.
distributions:readRead distributions.
distributions:writeCreate, update, validate, pause, resume, cancel a distribution — and the deployment pause/resume/cancel verbs.
distributions:launchLaunch a distribution. Deliberately separate from :write — this is the scope that spends money.
deployments:readRead deployments. Read-only by design.
performance:readRead performance rollups.
performance:writeIngest business measurements.
operations:readRead operations. Implicitly granted to every valid token, so any key can poll the operations it caused.
events:readRead the operational domain-event feed.
payouts:readRead the payout ledger, batches, and rail readiness.
payouts:writeRun a payout period; create, export, confirm, and cancel batches.

performance:write (measurement in) and events:read (the operational feed out) are explicitly distinct. Holding one never implies the other.

Payout execution and payout configuration are separate grants. Neither payouts:read nor payouts:write implies any of these.

ScopePurpose
payout_rules:readRead payout rules (how a entity earns).
payout_rules:writeCreate, update, or archive payout rules.
payout_rails:readRead payout rails and their delivery config.
payout_rails:writeConfigure payout rails (where money physically lands).

payouts:write moves money the brand already owes. A rail’s column mapping decides which field of a payout row lands in the recipient column of a file a human uploads to a bank — closer to banking configuration than to payout execution. So a key that runs the monthly payout job cannot also redirect where the money goes. Mint the job payouts:read,payouts:write, and keep payout_rails:write on a separate, rarely-used key.

For the same reason payouts.connectStatus() — a payouts:read surface — reports rail identity and state but never config. Read config from GET /payouts/rails, which needs payout_rails:read.

See Getting entities paid.

ScopePurpose
relationships:readRead durable brand ↔ entity relationships.
relationships:writePause, resume, end, and update relationship permissions.
entities:readRead entity identities — see entities.
assertions:readRead tenant assertion claims and events.
assertions:writeAssert and revoke tenant truth (claim-addressed).
operating_types:readRead the brand’s capacity vocabulary.
operating_types:writeCreate, update, archive, reactivate operating types.
metric_keys:readRead the metric vocabulary (built-ins + registered x:).
metric_keys:writeRegister, update, archive, reactivate tenant metric keys.
requirement_overrides:readRead per-enrollment requirement overrides.
requirement_overrides:writePatch, add, disable, clear per-enrollment overrides.
enrollments:readRead program enrollments.
enrollments:writeInvite, approve, reject, pause, resume, set capacity.
connections:readRead provider identities and grants.
connections:writeRevoke a connection or the brand’s grants on it.

Legacy spellings stay honored forever on already-issued tokens: relationships:read|write (→ relationships:*), entities:read (→ entities:read), and program_members:read|approve (→ the enrollment scopes).

ScopePurpose
programs:readRead partner programs.
programs:createCreate partner programs (legacy RPC surface).
programs:updateUpdate partner programs (legacy RPC surface).
programs:deleteArchive partner programs (legacy RPC surface).
program_requirements:readRead qualification requirements.
program_requirements:writeCreate, update, or archive requirements.
program_tiers:readRead the tier ladder.
program_tiers:writeCreate, update, or archive tiers.
program_resources:readRead program resources.
program_resources:writeCreate or update program resources.
connect_config:readRead the Partner Connect surface configuration.
connect_config:writeUpdate allowed origins and Connect setup.
handoff:readRead signed-handoff issuer configuration.
handoff:writeMint or rotate a signed-handoff signing secret.
campaigns:read / campaigns:writeCampaigns.
benefits:read / benefits:writeBenefits and entitlements.
webhooks:readRead webhook endpoints.
webhooks:writeCreate, update, rotate, and delete webhook endpoints.

Public API docs use series. Internally, Boomin may still call the same resource productions.

ScopePurpose
series:readRead series.
series:createCreate series.
series:updateUpdate series.
series:deleteArchive or delete series.
units:readRead units.
units:createCreate units.
units:updateUpdate units.
units:deleteDelete draft units.
units:publishPublish units to connected channels.
ScopePurpose
pages:read / pages:write / pages:deletePages.
canvas:read / canvas:write / canvas:deleteCanvases.
files:read / files:write / files:deleteFiles and folders.
ScopePurpose
agents:read / agents:write / agents:runAgents and runs.
workflows:read / workflows:write / workflows:runWorkflows and runs.
contacts:readRead contacts.
segments:read / segments:writeSegments.
events:writeRecord safe platform events.
ScopePurpose
commerce:readRead commerce products, offers, and invoices.
commerce:writeCreate or update safe commerce resources. Excludes billing and payouts.