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.