security
Intended Documentation
Operational Readiness
Verify Intended is healthy and its audit integrity holds before going live — liveness/readiness probes, a token round-trip, audit-chain verification, and a pre-launch checklist grounded in real endpoints.
Operational Readiness#
Before routing production AI workloads through Intended, confirm two things: the service is reachable and healthy, and its audit integrity holds. This guide uses only endpoints and commands that exist in the platform today; where a richer readiness suite is planned, it is marked Roadmap.
Prerequisites#
- A configured tenant with at least one active policy.
- API credentials (
intended_live_…) with the permissions for the routes below — at minimumintent:createfor the round-trip and audit read access for chain verification. - The Intended CLI installed (
@intended/cli). - Network egress from your deployment environment to the Intended API on port 443.
Tip
Run these checks from the same network zone as your production workloads. A partition between your services and Intended is a common cause of false readiness — the API is healthy, but your workloads cannot reach it.
Health and readiness probes#
Intended exposes two unauthenticated operational endpoints. They are part of the public skip-auth path set, so you can probe them without a credential.
| Probe | Endpoint | Use it for |
|---|---|---|
| Liveness | GET /health | Is the process up and serving? |
| Readiness | GET /ready | Is the process ready to accept traffic (dependencies wired)? |
Note
There is no public multi-service health roll-up endpoint and no intended health --all CLI command. Probe /health and /ready directly, and rely on your own observability stack for per-dependency health. Roadmap: a consolidated readiness command.
Authority round-trip#
Exercise the full decision-to-token path with a synthetic intent, then verify the token locally. This confirms the policy engine, token signing, and verification all agree end to end.
Submit a synthetic intent
Use a low-risk, clearly-allowed intent so the expected outcome is APPROVED (200).
A non-APPROVED result for an intent you expect to pass means your active policy set does not yet permit it — resolve before going live.
Inspect the issued token
Decode the returned Authority Token to confirm its claims and TTL.
Confirm decision is APPROVED, the tenantId/adapterId are correct, and exp is within 300 seconds of iat.
Verify the token signature
Verify the Ed25519 signature against the tenant public key, pinning the kid.
A successful verify confirms the signing key, the verifier, and clock alignment are all consistent.
Audit integrity verification#
A readiness gate should confirm the audit chain is intact, not just that records exist. Verify the per-tenant SHA-256 hash chain:
Treat a valid: true response with the expected totalEntries as the pass condition. Any valid: false with a brokenAt index is a stop-ship integrity failure — see Enforcement Lineage.
You can also confirm recent events are landing:
Pre-launch checklist#
Configuration#
- [ ] Production tenant ID and
intended_live_…credentials are configured - [ ] At least one active policy is deployed for the tenant
- [ ] The synthetic authority round-trip returns the expected
APPROVEDoutcome - [ ] Token TTL is the platform default of 300 seconds (it is also the hard maximum)
Networking#
- [ ]
/healthand/readyare reachable from production workloads - [ ] TLS certificates are valid and not expiring within 30 days
- [ ] Firewall rules permit egress to the Intended API on port 443
- [ ] Any tenant IP allowlist includes your production egress addresses (else
403 IP_NOT_ALLOWED)
Audit & evidence#
- [ ]
audit/chain-verificationreturnsvalid: truewith the expected entry count - [ ] An evidence bundle can be exported for a test intent (
intended audit-export) - [ ] Evidence verification is understood to require the tenant secret (symmetric HMAC — see Enforcement Lineage)
Security#
- [ ] API keys are injected from a secrets manager, never committed to code or images
- [ ] Keys are scoped to the minimum permissions they need
- [ ] Fail-closed behavior is understood: a
500 AUTHORITY_LOOP_FAILEDis a denial, not a retryable allow
Rollback#
- [ ] A rollback procedure is documented and tested (policy rollback through the audited pipeline)
- [ ] On-call is briefed on Intended failure modes and the meaning of
AUTHORITY_LOOP_FAILED
Warning
Do not proceed to production if the authority round-trip or chain verification fails. Each failure indicates a gap that surfaces in production as unexpected denials (fail-closed) or, worse, an integrity problem in the audit record.
Continuous readiness#
Readiness is not a one-time gate. Re-run the chain verification and a synthetic round-trip on a schedule, and alert on any valid: false chain result or any unexpected 500 AUTHORITY_LOOP_FAILED rate. Wire /ready into your orchestrator so unhealthy instances are pulled from rotation automatically.
Related Resources#
- Fail-Closed Controls — the failure behavior you are validating
- Enforcement Lineage — the audit chain verified above
- Go-Live Runbook — the full production rollout sequence
- Architecture Overview — system components and boundaries