Authorization and policy
Authentication tells Amelfi who made a request. Authorization decides whether that identity may perform the requested action on a particular resource in the current context. Amelfi uses Cedar for this decision.
Discovery is a policy decision
Scroll the diagram sideways to see the full flow →
Read the full explanation
- The registry has three example tools. Registration alone does not grant access.
- Policy evaluates the authenticated principal, tool, action, and request context.
- An explicit deny overrides an allow. A tool without an applicable allow is denied too.
- Discovery returns only the permitted read tool. Calls are evaluated again when invoked.
Four inputs to a decision
Section titled “Four inputs to a decision”| Input | Meaning |
|---|---|
| Principal | The verified user, service, or agent identity. |
| Action | What the request asks the gateway to do. |
| Resource | The server or tool being accessed. |
| Context | Relevant environment, client, session, and credential information. |
Keep the human actor and agent identity distinct. A person operating an agent does not automatically grant that agent all of the person’s upstream access.
Deny takes precedence
Section titled “Deny takes precedence”A request needs an applicable allow and no applicable deny. An explicit deny wins even when another policy allows the request. Missing permission is a denial, not a reason to fall back to a broader credential.
Discovery and execution both enforce policy
Section titled “Discovery and execution both enforce policy”Unauthorized tools are omitted from discovery. They are not shown as disabled choices. A caller that already knows a hidden tool name still cannot bypass authorization: the gateway evaluates the call when it arrives.
The diagram shows illustrative tools and decisions. It is an explanation of the rule, not a live policy simulation.
Publishing is a separate step
Section titled “Publishing is a separate step”Validate and simulate a proposed policy before publication. After publishing, verify the runtime has accepted the expected projection and test the actual governed endpoint. A successful simulation alone does not establish that every replica runs the new policy.
Continue with authoring a policy and testing an allowed and denied call.
Implementation reference
Section titled “Implementation reference”Amelfi documentation · Space Grotesk / Geist Mono