Documentation Index
Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt
Use this file to discover all available pages before exploring further.
Overview
POST /v1/admin/tenants kicks off the full 9-step provisioning pipeline as an async background task. The endpoint returns immediately with a provisioning state and a poll URL to track progress.
Provisioning pipeline
| Step | Action |
|---|---|
| 1 | Create tenant database environment |
| 2 | Wait until tenant environment is healthy; fetch API keys |
| 3 | Run tenant migrations (IAM schema, SoD rules, workflow templates) |
| 4 | Verify seed data (roles, rules, templates counts) |
| 5 | Invite admin user — sends an invitation email to admin_email |
| 6 | Create private FalkorDB graph (client_{slug}) |
| 7 | Create per-tenant OpenSearch knn index + alias |
| 8 | Invalidate TenantMiddleware Valkey cache |
| 9 | Optional Stripe billing → set is_active = TRUE → publish iam:tenants:provisioned stream event |
GET /v1/admin/tenants/{slug}/status.
Idempotency
| Existing state | Behaviour |
|---|---|
active | 409 Conflict — tenant already live |
provisioning | 202 — returns existing poll URL, no duplicate task spawned |
failed | 202 — resumes from last completed step |
| Not found | 202 — inserts stub row, starts from step 1 |
Request
URL-safe tenant identifier. Must match
/^[a-z0-9-]{3,48}$/ — lowercase letters, digits, and hyphens only. Becomes the tenant’s subdomain prefix and internal identifier.Human-readable tenant name shown in dashboards and billing.
Data residency region. One of:
us-east-1 · eu-central-1 · ap-southeast-1Billing tier. One of:
pilot · enterprise · enterprise_plus| Tier | Stripe |
|---|---|
pilot | No subscription |
enterprise | Subscription created |
enterprise_plus | Subscription created |
Email address of the tenant admin. Receives an invitation email at step 5.
Must be
true. Confirms that data residency requirements for the chosen region have been verified before provisioning begins.Response
UUID of the newly created tenant row in
control.tenants.The tenant slug as provided.
Always
provisioning on a 202 response.Relative path to poll provisioning progress:
/v1/admin/tenants/{slug}/statusExamples
Error responses
| Code | Reason |
|---|---|
409 | Tenant with this slug is already active |
422 | Validation error — invalid slug format, invalid region/tier, or data_residency_verified is false |

