Status: Personal tenant keys and minimal durable execution are available to admitted partner-preview tenants. Organization execution and organization keys are unavailable.
Tenant authority
Every public request resolves tenant identity from its bearer key. Request bodies cannot grant a user id, organization id, tenant id, role, billing account, or policy authority. Runs, events, usage, webhook endpoints, and webhook deliveries are rechecked against that server-derived tenant at their point of authority. The live preview admits personal tenants only. Praxa’s broader product already has organization ownership for other surfaces, but that does not make organization/v1 execution or organization praxa_sk_ keys available.
Exact scope values
These four strings are the complete v1 key scope enum. There is no
execute,
runs:cancel, webhooks:read, or webhooks:write scope. Webhook management
reuses run scopes because webhook endpoints and deliveries project run events:
- list endpoints/deliveries:
runs:read; - create/update/delete endpoints and replay a dead-letter delivery: both
runs:readandruns:writeat the authoritative backend; - mutation gateway pre-gate:
runs:write.
Scopes are endpoint permissions
Current key scopes do not select tools, set a risk ceiling, cap spend, pin a model, or choose an approval mode. The public handler rejectscontext,
tools, policy, delivery, and task.agentId. Admission, funding, and task
authority remain server-derived and fail closed.
The source SDK reserves those request fields for future expansion. A schema
accepting a field is not proof the active handler permits it.
Isolation boundary
- A personal key can access only its personal tenant’s public resources.
- Unknown and foreign run resources are not projected.
- Usage includes only immutable public-API-origin evidence for the tenant.
- Webhook endpoints and deliveries are tenant-bound in both service code and server-owned authorization functions.
- Plaintext API keys are returned once; authoritative storage keeps a SHA-256 hash and safe metadata.
Existing custom-agent credentials
The existing custom-agent credential belongs to the custom-agent deployment surface and is scoped to one published deployment. It is not interchangeable withpraxa_sk_, and neither credential silently gains the other’s authority.