> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praxa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Operate Praxa in production

> Prepare authentication, tenancy, observability, recovery, versioning, and cleanup before a Praxa integration handles real work.

A production Praxa integration is a lifecycle, not a successful first request.
Plan the credential, tenant, retry, evidence, and cleanup paths before enabling
real workloads.

```mermaid theme={null}
flowchart LR
  Contract["Pin the contract"] --> Credential["Issue least-privilege credential"]
  Credential --> Canary["Run positive and negative canaries"]
  Canary --> Observe["Observe events, usage, and receipts"]
  Observe --> Recover["Exercise retry, reconnect, and cancellation"]
  Recover --> Clean["Delete test data and rotate secrets"]
  Clean --> Release["Enable the intended cohort"]
```

<CardGroup cols={2}>
  <Card title="Security and tenancy" icon="shield-halved" href="/operations/security-and-tenancy">
    Separate credentials, scopes, personal tenants, organization roles, and provider authority.
  </Card>

  <Card title="Observability" icon="chart-line" href="/operations/observability">
    Reconcile admission, lifecycle events, terminal readback, webhooks, and usage.
  </Card>

  <Card title="Production checklist" icon="list-check" href="/operations/production-checklist">
    Run the minimum positive, negative, isolation, recovery, and cleanup cases.
  </Card>

  <Card title="Troubleshooting" icon="screwdriver-wrench" href="/troubleshooting/overview">
    Diagnose authentication, idempotency, events, webhooks, and memory failures.
  </Card>
</CardGroup>

## Production verification

Verify each layer independently:

1. **Package:** install the exact public version in a clean project.
2. **Contract:** validate the request, response, scope, and version metadata.
3. **Authentication:** test valid, missing, expired, revoked, and wrong-scope credentials.
4. **Isolation:** prove the caller cannot read or mutate another subject or tenant.
5. **Idempotency:** replay the same logical mutation and then send a digest mismatch.
6. **Lifecycle:** observe the terminal state rather than stopping at admission.
7. **Cleanup:** delete test data and confirm the documented retention boundary.
