API by router
Admin tenant lifecycle
POST
tenant_id*Tenant IdFormat
uuidapplication/json- body
Request body for tenant teardown.
extra='forbid' so callers can't sneak tenant_id / actor_user_id
/ etc. into the body — those come from the URL + the auth dep
- request.client. The only thing the body carries is the confirmation phrase.
confirmation_phrase*Confirmation PhraseLiteral DELETE TENANT <tenant_slug> where <tenant_slug> is the target tenant's actual slug. Mismatch returns 400.
Length
1 <= length <= 200Successful Response
application/json- response
Summary returned to the caller after a successful teardown.
actor_kind*Actor Kinddeleted_at*Deleted Atinstances_terminated*Instances Terminatedrows_per_table*tenant_id*Tenant Idtenant_name*Tenant Nametenant_slug*Tenant Slugwarnings*array<string>curl -X POST 'https://example.com/internal/v1/admin/tenants/497f6eca-6276-4993-bfeb-53cbbbba6f08/teardown' \ -H 'Content-Type: application/json' \ -d '{ "confirmation_phrase": "string"}'Example Response
{ "actor_kind": "string", "deleted_at": "string", "instances_terminated": 0, "rows_per_table": { "property1": 0, "property2": 0 }, "tenant_id": "string", "tenant_name": "string", "tenant_slug": "string", "warnings": [ "string" ]}