Create Workspace Signing Key

Changed on

Create a signing key for this workspace.

The private_key_pem and private_key_base64 fields are returned only once at creation. Store them securely - they cannot be retrieved later.

Only one active signing key is allowed per workspace. To replace an existing active key, use the Roll Workspace Signing Key endpoint instead.

post/v1/{workspace}/ws_signing_key/

Request

Path parameters

workspacestring required

Workspace slug (e.g. staging, production).

Response

Signing key created. Private key material is returned once in this response.

idstring

Unique identifier of the signing key.

uidstring

Signing key uid used in path parameters for roll/delete.

status'active' | 'rolled'

Status of the signing key.

allowed_domainsstring[] nullable

Domains allowed to use this signing key.

expiry_atstring date-time nullable

Timestamp when the signing key expires.

created_atstring date-time

Timestamp when the signing key was created.

rolled_atstring date-time nullable

Timestamp when the signing key was rolled.

deleted_atstring date-time nullable

Timestamp when the signing key was deleted.

private_key_pemstring

PEM-encoded private key. Returned only at creation and on roll - store it securely and never commit to source control.

private_key_base64string

Base64-encoded private key. Returned only at creation and on roll.

Example response

{
  "id": "ws_signk_exampleId01",
  "uid": "signing_key_exampleUid01",
  "created_by": {
    "name": "System User",
    "email": "user@example.com"
  },
  "rolled_by": {
    "name": "System User",
    "email": "user@example.com"
  },
  "deleted_by": {
    "name": "System User",
    "email": "user@example.com"
  },
  "private_key_pem": "-----BEGIN PRIVATE KEY-----\n...redacted...\n-----END PRIVATE KEY-----\n",
  "private_key_base64": "LS0tLS1CRUdJTi...redacted..."
}

Changes

    • breaking

      response property detail list-of-types was widened by adding types array and object to media type application/json of response 400

    • breaking

      response property detail list-of-types was widened by adding types array and object to media type application/json of response 401

    • breaking

      response property detail list-of-types was widened by adding types array and object to media type application/json of response 404