Exhaustive suggested permission catalog

The letters below mean:

P: eligible for Primary Author.
S: eligible for Secondary Author.
U: eligible for Use Key.
K: eligible for Keyring Key.
Eligibility does not mean automatic grant.

Every listed action should independently support:

use_allowed
delegate_allowed
Tier 0 — Owner-only sovereign permissions

These must never be granted to an API Key.

owner.account.create
owner.account.read_private
owner.account.update_username
owner.account.update_email
owner.account.update_password
owner.account.configure_passkeys
owner.account.configure_recovery
owner.account.lock
owner.account.unlock
owner.session.list
owner.session.revoke
owner.session.revoke_all
owner.delete
owner.transfer

billing.read
billing.update
billing.payment_method
billing.invoice.read
billing.subscription.change

system.owner.create_gift
system.owner.create_commercial
system.owner.suspend
system.owner.restore
system.tenant.enter_oversight
system.tenant.freeze
system.tenant.unfreeze

tenant.owner.change
tenant.transfer
tenant.delete
tenant.destroy_data

security.break_glass
security.override_parent_policy
security.force_recovery
security.disable_global_alerting

audit.delete
audit.modify
audit.rewrite
event.delete
event.modify
signature.replace

key.private.read
key.private.export_server
key.reparent
key.unrevoke
key.erase_history

key.reparent should not exist in the MVP. Mint a replacement branch instead.

Tier 1 — Key identity and directory
Permission	Eligible
key.self.read	P/S/U/K
key.public.read	P/S/U/K
key.public.export	P/S/U/K
key.public.resolve	P/S/U/K
key.status.read	P/S/U/K
key.component_status.read	P/S/U/K
key.fingerprint.read	P/S/U/K
key.lineage.read_self	P/S/U/K
key.lineage.read_children	P/S
key.lineage.read_descendants	P/S
key.children.list	P/S
key.descendants.list	P
key.policy.read_self	P/S/U/K
key.policy.read_children	P/S
key.policy.read_descendants	P
key.history.read_self	P/S/U/K
key.history.read_children	P/S
key.label.update_self	P/S/U/K
key.label.update_child	P/S
key.metadata.update_self	P/S/U/K
key.metadata.update_child	P/S
key.public_bundle.export_self	P/S/U/K
key.public_bundle.export_descendant	P/S
Tier 2 — Child minting and enrollment
Permission	Eligible
key.mint.primary	P
key.mint.secondary	P/S
key.mint.use	P/S/U
key.mint.keyring	P/S/K
key.mint.ephemeral_use	P/S/U
key.claim.issue	P/S/U/K, within allowed child types
key.claim.cancel	P/S/U/K, for own pending children
key.claim.reissue	P/S/U/K, for own pending children
key.claim.view_status	P/S/U/K
key.claim.change_destination	P/S/U/K
key.child.activate	P/S/U/K, for allowed child type
key.child.cancel_draft	P/S/U/K
key.child.set_label	P/S/U/K
key.child.set_expiry	P/S/U/K
key.child.set_audience	P/S/U/K
key.child.set_scope	P/S/U/K
key.child.set_rate_limit	P/S/U/K
key.child.set_total_use_limit	P/S/U/K
key.child.set_signature_requirement	P/S/U/K
key.child.set_approval_requirement	P/S/U/K
key.child.set_delegation_depth	P/S/U/K
key.child.set_child_limit	P/S/U/K
key.child.use_policy_template	P/S/U/K

All are constrained by the parent policy. For example, a Secondary Author possessing key.mint.use still cannot give a Use Key permission outside the Secondary Author’s own scope.

Tier 3 — Policy management
Permission	Eligible
policy.evaluate_self	P/S/U/K
policy.explain_self	P/S/U/K
policy.diff_self	P/S/U/K
policy.diff_child	P/S
policy.propose_child	P/S/U/K
policy.apply_child	P/S/U/K
policy.reduce_child	P/S/U/K
policy.expand_child_within_ceiling	P/S
policy.lock_child	P/S
policy.set_action_scope	P/S/U/K
policy.set_resource_scope	P/S/U/K
policy.set_namespace_scope	P/S/U/K
policy.set_recipient_scope	P/S/U/K
policy.set_audience	P/S/U/K
policy.set_not_before	P/S/U/K
policy.set_expiration	P/S/U/K
policy.set_time_window	P/S/U/K
policy.set_rate_limit	P/S/U/K
policy.set_total_use_limit	P/S/U/K
policy.set_network_condition	P/S/U/K
policy.set_environment	P/S/U/K
policy.set_required_signatures	P/S
policy.set_approval_requirement	P/S
policy.set_mint_matrix	P/S
policy.set_max_depth	P/S
policy.set_max_children	P/S
policy.set_max_child_ttl	P/S
policy.set_propagation_ceiling	P/S
policy.request_owner_expansion	P/S
policy.read_effective_descendant	P
policy.export	P/S/U/K

A child may reduce its own permissions but may not restore them unless its parent issues a new policy version.

Tier 4 — Key lifecycle and compromise response
Permission	Eligible
key.retire.self	P/S/U/K
key.suspend.self	P/S/U/K
key.compromise.report_self	P/S/U/K
key.compromise.report_child	P/S
key.suspend.child	P/S
key.resume.child	P/S
key.quarantine.child	P/S
key.unquarantine.child	P/S, possibly approval-required
key.revoke.child	P/S
key.revoke.subtree	P
key.freeze_branch	P
key.unfreeze_branch	P, approval recommended
key.rotate.auth_self	P/S/U/K
key.rotate.delegate_self	P/S
key.rotate.author_self	P/S
key.rotate.box_self	P/S/U/K
key.rotate.auth_child	P/S
key.rotate.delegate_child	P
key.rotate.author_child	P/S
key.rotate.box_child	P/S
key.rotation.view_status	P/S/U/K
key.rotation.cancel_pending	P/S
key.rotation.finalize	P/S
key.rotation.set_grace_period	P
key.old_public.verify	P/S/U/K
key.descendant_status.read	P/S
key.descendant_bulk_suspend	P
key.descendant_bulk_revoke	P, Owner approval recommended

A Key may report its own compromise without proving an ordinary authenticated request. Implement a dedicated narrowly scoped compromise-report challenge.

A compromised Key must never be able to resume itself.

Tier 5 — Authorship
Permission	Eligible
author.draft.create	P/S/U
author.draft.read_own	P/S/U
author.draft.update_own	P/S/U
author.draft.delete_own	P/S/U
author.object.sign	P/S/U
author.object.publish	P/S/U
author.object.version_create	P/S/U
author.object.amend	P/S/U
author.object.withdraw	P/S/U
author.object.archive	P/S
author.object.read_own	P/S/U
author.object.read_children	P/S
author.object.read_descendants	P
author.object.list_own	P/S/U
author.object.list_descendants	P/S
author.object.cosign	P/S/U
author.cosign.request	P/S/U
author.cosign.cancel_request	P/S/U
author.object.verify	P/S/U/K
author.object.export	P/S/U
author.metadata.write	P/S/U
author.provenance.attach	P/S/U
author.provenance.read	P/S/U/K
author.provenance.export	P/S/U/K
author.namespace.create	P/S
author.namespace.use	P/S/U
author.namespace.admin	P/S
author.namespace.delegate	P/S
author.namespace.archive	P/S

A Use Key may receive authorship permissions, but only where the Owner or parent deliberately wants a narrowly scoped automated author.

Tier 6 — Credentials and attestations

These are distinct from the CRE8 Key itself.

Permission	Eligible
credential.draft.create	P/S/U
credential.draft.update	P/S/U
credential.draft.delete	P/S/U
credential.issue	P/S/U
credential.sign	P/S/U
credential.verify	P/S/U/K
credential.present	P/S/U
credential.accept	P/S/U
credential.reject	P/S/U
credential.read_own	P/S/U
credential.read_descendants	P/S
credential.list_own	P/S/U
credential.status.read	P/S/U/K
credential.suspend	P/S
credential.resume	P/S
credential.revoke	P/S
credential.renew	P/S/U
credential.set_expiry	P/S/U
credential.set_audience	P/S/U
credential.set_subject_scope	P/S/U
credential.set_presentation_limit	P/S/U
credential.schema.use	P/S/U
credential.schema.create	P/S
credential.schema.admin	P
credential.issuance.delegate	P/S
credential.provenance.read	P/S/U/K
credential.provenance.export	P/S/U/K
Tier 7 — Sharing
Permission	Eligible
share.create	P/S/U
share.read_own	P/S/U
share.list_own	P/S/U
share.accept	P/S/U/K
share.decline	P/S/U/K
share.revoke_own	P/S/U
share.revoke_descendant	P/S
share.forward	P/S/U
share.add_recipient	P/S/U
share.remove_recipient	P/S/U
share.set_expiry	P/S/U
share.set_access_count	P/S/U
share.set_forwarding_rule	P/S/U
share.read_receipt_request	P/S/U
share.read_receipt_view	P/S/U
share.metadata.read	P/S/U/K
share.ciphertext.fetch	P/S/U/K
share.provenance.read	P/S/U/K

Fetching ciphertext does not imply that the caller can decrypt it. That requires possession of the applicable Box private key.

Tier 8 — Communications
Permission	Eligible
message.send	P/S/U
message.list_own	P/S/U/K
message.metadata.read	P/S/U/K
message.ciphertext.fetch	P/S/U/K
message.reply	P/S/U
message.forward	P/S/U
message.delete_own	P/S/U
message.revoke_unread	P/S/U
message.receipt.request	P/S/U
message.receipt.send	P/S/U/K
message.recipient.resolve	P/S/U/K
message.recipient_public_key.read	P/S/U/K
channel.create	P/S
channel.read	P/S/U/K
channel.join	P/S/U/K
channel.leave	P/S/U/K
channel.invite	P/S
channel.remove_member	P/S
channel.update_metadata	P/S
channel.rotate_encryption	P/S
channel.close	P/S
channel.provenance.read	P/S/U/K

Actual encryption and decryption occur on the client. The server permission controls delivery and retrieval of ciphertext.

Tier 9 — Keyring custody

A Keyring Key is a custody and organization principal, not an operational authority.

Permission	Eligible
keyring.create	P/S/K
keyring.metadata.read	P/S/K
keyring.metadata.update	P/S/K
keyring.ciphertext.fetch	P/S/K
keyring.reference.add	P/S/K
keyring.reference.remove	P/S/K
keyring.member.list	P/S/K
keyring.bundle.create	P/S/K
keyring.bundle.replace	P/S/K
keyring.bundle.export_encrypted	P/S/K
keyring.share	P/S/K
keyring.share.revoke	P/S/K
keyring.rotate_box	P/S/K
keyring.set_expiry	P/S/K
keyring.set_recipient_scope	P/S/K
keyring.destroy	P/S/K
keyring.provenance.read	P/S/K

Never create permissions such as:

keyring.execute_contents
keyring.inherit_member_permissions

Possessing access to a keyring does not automatically authorize use of the Keys referenced inside it.

Tier 10 — Audit and provenance
Permission	Eligible
audit.read_self	P/S/U/K
audit.read_children	P/S
audit.read_descendants	P
audit.read_tenant	P, explicit only
audit.export_self	P/S/U/K
audit.export_children	P/S
audit.export_descendants	P
audit.verify_hash_chain	P/S/U/K
audit.authentication.read_self	P/S/U/K
audit.authentication.read_descendants	P/S
audit.denials.read_self	P/S/U/K
audit.denials.read_descendants	P/S
audit.policy_changes.read_self	P/S/U/K
audit.policy_changes.read_descendants	P/S
audit.key_lifecycle.read_self	P/S/U/K
audit.key_lifecycle.read_descendants	P/S
audit.authorship.read_self	P/S/U
audit.authorship.read_descendants	P/S
audit.message_metadata.read_self	P/S/U/K
audit.message_metadata.read_descendants	P/S
audit.annotate_self	P/S/U/K
audit.annotate_descendant	P/S
provenance.verify	P/S/U/K
provenance.export	P/S/U/K
provenance.lineage.read	P/S/U/K

No Key may delete or modify audit events.

Tier 11 — Alerts and security controls
Permission	Eligible
alert.read_self	P/S/U/K
alert.read_children	P/S
alert.read_descendants	P
alert.acknowledge_self	P/S/U/K
alert.acknowledge_descendant	P/S
alert.subscribe_self	P/S/U/K
alert.subscribe_descendants	P/S
alert.rule.create_self	P/S/U/K
alert.rule.update_self	P/S/U/K
alert.rule.delete_self	P/S/U/K
alert.rule.create_descendant	P/S
alert.rule.test	P/S/U/K
security.risk.read_self	P/S/U/K
security.risk.read_descendants	P/S
security.compromise.report	P/S/U/K
security.challenge.request	P/S/U/K
security.challenge.respond	P/S/U/K
security.freeze_self	P/S/U/K
security.freeze_child	P/S
security.freeze_subtree	P
security.network_allowlist.update_self	P/S/U/K
security.network_allowlist.update_child	P/S
security.rate_clamp_self	P/S/U/K
security.rate_clamp_child	P/S
security.owner_review.request	P/S/U/K

Disabling high-severity alerts should remain Owner-only.

Tier 12 — Public directory
Permission	Eligible
directory.public_key.publish	P/S/U/K
directory.public_key.unpublish	P/S/U/K
directory.resolve	P/S/U/K
directory.search	P/S/U/K
directory.profile.read	P/S/U/K
directory.profile.update_self	P/S/U/K
directory.profile.update_child	P/S
directory.alias.claim	P/S/U/K
directory.alias.release	P/S/U/K
directory.proof.verify	P/S/U/K
directory.lineage.publish	P/S
directory.provenance.publish	P/S/U
directory.contact_policy.update	P/S/U/K

Private email addresses and Owner account information must never be exposed through the Key directory.

Tier 13 — Integrations and automation

These should be reserved in the permission namespace but deferred from the first MVP.

Permission	Eligible
webhook.create	P/S
webhook.read	P/S
webhook.update	P/S
webhook.delete	P/S
webhook.rotate_secret	P/S
webhook.replay_event	P/S
integration.register	P/S
integration.read	P/S/U
integration.disable	P/S
integration.scope.update	P/S
export.bulk	P/S
import.bulk	P
automation.create	P/S
automation.update	P/S
automation.disable	P/S
automation.execute	P/S/U

Webhook signing secrets introduce server-held secrets. Deferring webhooks makes the no-KMS MVP substantially cleaner.