1. Get a key and seed the demo action
Create a free account if you don’t have one. Then open API Keys in the console, click New Key, pick the Evaluate only preset, and copy the key. It is shown once. Put it in your shell:ask_live_...). The production console does not issue test keys. Keep the key in a secret store, never in examples, source control, or client-side code. Create an API key has the details on scopes.
A live key is accepted only with context.environment set to production. Any other value (sandbox, test, staging) is refused with ENVIRONMENT_MISMATCH before any policy runs, and the refusal is recorded.
Finish the console’s setup flow (Connect my organization). It seeds a demo database.execute_sql action into your organization. That action authorizes nothing real: it returns a decision and executes nothing on its own. It is the safe target for this quickstart.
2. Evaluate a protected action
allow with a Permit.
The canonical runtime decision is one of allow, deny, hold, or escalate.
3. Treat the Permit as a bounded execution artifact
If the response requires and includes a Permit, carry that exact artifact to the execution boundary. Do not translate a bareallow into permission to execute.
4. Verify before the effect
Use the canonical verifier path documented in Verify a Permit. Verification checks the artifact’s authenticity/currentness and applicable binding, expiry, revocation, and replay state. Permit verified does not mean execution happened. It means the execution gate has established the Permit contract required before the effect.5. Inspect evidence
Continue to Audit export to inspect the decision and verification evidence. Execution/effect is shown only when the applicable observer/provider evidence establishes it.Negative tests
Each of these changes one input and must not returnallow:
- Set
"destructive": true, or asql_textcontainingDROP TABLEorTRUNCATE:hold, pending human review. - Set
"actor_id"to anything other thandba.aliceordba.bob:denywithACTOR_NOT_ALLOWED. - Set
"environment"to anything other thanproduction:denywithENVIRONMENT_MISMATCH, because the key is live.
The demo action executes nothing, so
"environment": "production" here only matches your live key. Protecting a real production action is a separate step: provision its action class and policy, then follow the controlled customer acceptance process.