A key can only do what it was allowed to
You choose the permissions when you create it, from the same catalogue as roles. A key made to push contacts from your website cannot read your invoices, and the refusal comes from the gateway, not from a coding convention. It is the model of Stripe's restricted keys and GitHub's fine-grained tokens.
- Permissions chosen from the RBAC catalogue
- Checked on every call, at the gateway
- Secret key or public key, depending on use
- Label and note, so you know what it is for