BootstrapOrg is the first call you make against a fresh TeleQuick
deployment for any new tenant. It creates the tenant record and mints
the first admin service account — every subsequent admin call uses the
JWT signed by that account.
BootstrapOrg
Request (BootstrapOrgRequest):
| Field | Type | Notes |
|---|---|---|
bootstrap_secret | string | Out-of-band secret distributed when the gateway was provisioned. Not a JWT. |
tenant_id | string | Stable id (lowercase, dash-separated). |
display_name | string | Human-readable tenant name. |
region | string | One of the gateway’s configured regions; routes default outbound trunks here. |
admin_public_key_pem | string | RSA public half of the keypair you generated for this tenant. |
admin_private_key_id | string | kid to associate with the public key. |
BootstrapOrgResponse):
| Field | Type | Notes |
|---|---|---|
status | string | "ok" or "error". |
error_message | string | Populated on error. |
tenant_id | string | Echoed for confirmation. |
created_at_ms | int64 | Unix epoch ms. |
admin_token for every subsequent admin call.
Recommended flow
- Generate an RSA-2048 keypair locally.
- Hold the bootstrap secret somewhere short-lived (CI vault, HSM, or one-shot env var).
- Call
BootstrapOrgwith the public half + akidyou choose. - Drop the bootstrap secret. It cannot be reused; the gateway burns it on success.
- From now on, sign admin JWTs with the private half. The first thing
most operators do is call
PublishServiceAccountto create separate"sdk"-role keys for their applications.
Failure modes
error_message substring | Cause |
|---|---|
bootstrap secret invalid | Wrong or already-consumed secret. |
tenant_id already exists | Bootstrap already completed for this id. |
public_key_pem invalid | Not a valid PKCS#8/SPKI PEM RSA public key. |
region unknown | region doesn’t match any configured region. |