Authorization and Permissions
How roles, permissions, ownership, and operator-sensitive routes are evaluated.
Treat authentication, role checks, permission checks, and ownership checks as separate gates.
Source boundary
Source boundary: AutoCore current main 7a504f6e430c16d4fcb03ebdea3cc3fb7816df60, checked against immutable v1.0.0-rc.1 at 9edfb109f44cc80385784c694b96392cfc04e70f.
Global guards establish authentication and authorization. Controller metadata records permission keys such as LISTING_READ_OWN or MARKETPLACE_USERS_ROLES_MANAGE; admin routes are operator-sensitive even when their response shape is ordinary JSON.
| Check | Source-backed expectation |
|---|---|
| Scope | A 403 is not evidence that a token is invalid; inspect the permission and ownership decision separately. |
| Evidence | Use placeholders, timestamps, release identity, route, status, and request ID where relevant. |
| Safe action | curl -i -H 'Authorization: Bearer [access-token]' https://api.example.invalid/api/v1/me |
| Stop condition | Unknown authorization, destructive impact, secret exposure, or conflicting evidence. |
Verification
Run the safe check, record its result, and compare the outcome with the documented contract. If the result depends on external configuration or provider availability, mark it as configuration-dependent rather than claiming a product guarantee.
curl -i -H 'Authorization: Bearer [access-token]' https://api.example.invalid/api/v1/me
Safety boundary
Examples are non-production and use placeholders. Do not deploy, reset, force a migration, create secrets, activate providers, replay sensitive work, or expose private data from this page.