Access policies declare who can do what within your org. Each policy lists a set of members (users, service users, or teams) and a set of grants (role + resource). Ryvn compiles the cross-product into role bindings — one per (member × grant) — that drive authorization checks across the product.Documentation Index
Fetch the complete documentation index at: https://ryvn.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Properties
name
string — required
Unique identifier for the policy within the org. Lowercase alphanumeric with hyphens, up to 63 characters. Used in logs, events, and dashboard listings.
description
string — optional
Human-readable description of the policy’s purpose. Up to 256 characters. Helpful for teammates auditing who has what access.
members
array — required, minimum 1 entry
Who the policy applies to. Each entry is a kind:identifier string.
| Kind | Identifier | Example |
|---|---|---|
user | Email address of an existing org member | user:alice@company.com |
service-user | Name of an existing service user | service-user:deploy-bot |
team | Team name (reserved for future use) | team:backend |
grants
array — required, minimum 1 entry
What access members receive. Each entry is a role:resourceType[:name] string.
role— one ofadmin,billing_admin,developer,operator,viewer.resourceType— one oforg,environment,service,blueprint.name— the resource name, or*for a type-scoped wildcard. Omit the segment fororggrants.
*) grants match any resource of the given type, including resources created later.
Roles
| Role | Typical use |
|---|---|
admin | Full control. admin:org is the highest privilege — Ryvn refuses to compile a change that would leave the org with zero admin:org bindings. |
billing_admin | Manage billing and subscriptions. Scoped to org. |
developer | Configure services and installations, deploy releases. |
operator | Operate deployed workloads (restart, rollback, inspect) without changing configuration. |
viewer | Read-only access. |
billing_admin only applies at the org level. The sync rejects unsupported combinations.
Last-admin protection
Ryvn prevents the org from losing its lastadmin:org binding. Updates that would drop to zero org admins (across all policies) are rejected with a LastAdminProtection error. You can always remove admins as long as at least one admin remains somewhere in the org.