POST /v1/gateway-bindings/complete
Gateway installer completes a binding with its one-time token (public, rate limited per source)
Description (from the contract)
The installer generated both private keys locally and verified the token's root CA fingerprint against /downloads/gateway-ca.pem first. Returns the client certificate (URI SAN spiffe://cdn-platform/gateway/<gateway_id>, 30 days), the node channel server certificate (90 days), CA bundles and the remote endpoints.
Request body
application/json · Required:Yes
| Name | Type | Required | Description |
|---|---|---|---|
token | string | Yes | gwt1.<gateway_id>.<root CA SHA-256 first 16 bytes hex>.<secret> |
client_csr_der | string(byte) | Yes | Ed25519 CSR. |
server_csr_der | string(byte) | Yes | ECDSA P-256 CSR. |
enrollment_port | integer | Yes | — |
agent_port | integer | Yes | — |
version | string | No | — |
Responses
| Status | Description |
|---|---|
200 | Bound. Fields: |
401 | gateway_binding_token_invalid (unknown |
409 | gateway_remote_access_disabled |
422 | invalid_input (ports |
429 | rate_limited |
What to do on failure
401Check the credential format and whether it expired or was rotated.409Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.429Rate limited: wait, then retry with lower concurrency.