MethodPathSummaryAuth
GET/v1/admin/sdk-shield/appsList SDK apps with today's handshakes (tenants also get their quota) (platform administrator)Session
POST/v1/admin/sdk-shield/appsCreate an app; the first AppSecret is returned once (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}Read an app (platform administrator)Session
PATCH/v1/admin/sdk-shield/apps/{id}Update name, status or protection parameters (platform administrator)Session
DELETE/v1/admin/sdk-shield/apps/{id}Delete an app without bound forwards (409 sdk_shield_app_in_use) (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/blocksRefusals per minute and node with source samples (at most one day) (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/delete-previewWhat the delete confirmation shows (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/forwardsList the scope's forwards with why each cannot be bound (platform administrator)Session
PUT/v1/admin/sdk-shield/apps/{id}/forwardsReplace the app's forwards (at most 16, of its scope) (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/keysList the app's keys with the handshakes each passed in the last 24 hours (platform administrator)Session
POST/v1/admin/sdk-shield/apps/{id}/keysAdd the next key (at most two active: 409 sdk_shield_key_limit); its AppSecret is returned once (platform administrator)Session
POST/v1/admin/sdk-shield/apps/{id}/keys/{key_id}/revokeRevoke a key; the last active one cannot be (409 sdk_shield_last_key) (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/node-list/previewThe node list that would be signed now, with node names and the public URL (platform administrator)Session
GET/v1/admin/sdk-shield/apps/{id}/statsTotals, refusal reasons, trend and top sources (at most 31 days) (platform administrator)Session
GET/v1/admin/sdk-shield/list-signing-keysList the node list signing keysSession
POST/v1/admin/sdk-shield/list-signing-keys/rotateRetire the active list signing key and sign with a new oneSession
GET/v1/admin/sdk-shield/moduleRead the module state (answers without the module) (platform administrator)Session
GET/v1/admin/sdk-shield/sdkList the SDK packages and the list signing public keys they embed (platform administrator)Session
GET/v1/admin/sdk-shield/sdk/files/{name}Download one SDK archive shipped with this controller release (platform administrator)Session

Contract file:api/control-sdk-shield.openapi.yaml

Operation details

GET /v1/admin/sdk-shield/apps

List SDK apps with today's handshakes (tenants also get their quota) (platform administrator)

operationId
adminListSDKShieldApps
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminListSDKShieldApps Parameters
NameInTypeRequiredDescription
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminListSDKShieldApps Responses
StatusDescription
200Apps

Fields:items: array<App> quota?: Quota

401Error
403Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

POST /v1/admin/sdk-shield/apps

Create an app; the first AppSecret is returned once (platform administrator)

operationId
adminCreateSDKShieldApp
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

A tenant is bounded by limits.sdk_shield_apps (409 sdk_shield_app_limit); an administrator must name tenant_scope_id. Audited sdkshield.app.create.

Parameters

adminCreateSDKShieldApp Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYesOne key per write; resend it to retry a write whose result was not seen. The same key and request (24 hours, per user and operation) answers the resource it created and creates nothing: a Secret then has replayed true and no app_secret (the secret was only in the first answer). The same key with another request: 409 idempotency_conflict. Missing, malformed or repeated: 422 validation_failed (field Idempotency-Key).
tenant_scope_idquerystring(uuid)Yes—

Request body

application/json · Required:Yes

adminCreateSDKShieldApp Request body
NameTypeRequiredDescription
namestringYes—

Responses

adminCreateSDKShieldApp Responses
StatusDescription
201Created

Fields:app: App secret: Secret

401Error
403Error
409Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}

Read an app (platform administrator)

operationId
adminGetSDKShieldApp
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminGetSDKShieldApp Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminGetSDKShieldApp Responses
StatusDescription
200App

Fields:id: string(uuid) app_id: string name: string tenant: Tenant status: string: active / disabled skew_seconds: integer fail_threshold: integer fail_window_seconds: integer ban_seconds: integer handshake_rate_per_second: integer forward_count: integer(int64) active_key_ids: array<integer> today?: Today revision: integer created_at: string(date-time) updated_at: string(date-time)

401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

PATCH /v1/admin/sdk-shield/apps/{id}

Update name, status or protection parameters (platform administrator)

operationId
adminUpdateSDKShieldApp
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

status disabled makes every bound forward refuse new connections (app_disabled) after the next publication. expected_revision refuses a stale edit (409 revision_conflict). Audited sdkshield.app.update / disable / enable.

Parameters

adminUpdateSDKShieldApp Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Request body

application/json · Required:Yes

adminUpdateSDKShieldApp Request body
NameTypeRequiredDescription
expected_revisionintegerNo—
namestringNo—
statusstring: active / disabledNo—
skew_secondsintegerNo—
fail_thresholdintegerNo—
fail_window_secondsintegerNo—
ban_secondsintegerNo0 = disconnect only
handshake_rate_per_secondintegerNo0 = no cap

Responses

adminUpdateSDKShieldApp Responses
StatusDescription
200Updated

Fields:id: string(uuid) app_id: string name: string tenant: Tenant status: string: active / disabled skew_seconds: integer fail_threshold: integer fail_window_seconds: integer ban_seconds: integer handshake_rate_per_second: integer forward_count: integer(int64) active_key_ids: array<integer> today?: Today revision: integer created_at: string(date-time) updated_at: string(date-time)

401Error
403Error
404Error
409Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

DELETE /v1/admin/sdk-shield/apps/{id}

Delete an app without bound forwards (409 sdk_shield_app_in_use) (platform administrator)

operationId
adminDeleteSDKShieldApp
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

Audited sdkshield.app.delete.

Parameters

adminDeleteSDKShieldApp Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminDeleteSDKShieldApp Responses
StatusDescription
204Deleted
401Error
403Error
404Error
409Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/blocks

Refusals per minute and node with source samples (at most one day) (platform administrator)

operationId
adminListSDKShieldAppBlocks
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminListSDKShieldAppBlocks Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
fromquerystring(date-time)NoRFC 3339; default 24 hours before to
toquerystring(date-time)NoRFC 3339; default now
node_idquerystring(uuid)NoOnly this node
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminListSDKShieldAppBlocks Responses
StatusDescription
200Blocks, newest first

Fields:items: array<BlockMinute>

401Error
403Error
404Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/delete-preview

What the delete confirmation shows (platform administrator)

operationId
adminPreviewSDKShieldAppDelete
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminPreviewSDKShieldAppDelete Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminPreviewSDKShieldAppDelete Responses
StatusDescription
200Preview

Fields:app: App forward_count: integer(int64) deletable: boolean

401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/forwards

List the scope's forwards with why each cannot be bound (platform administrator)

operationId
adminListSDKShieldAppForwards
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminListSDKShieldAppForwards Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminListSDKShieldAppForwards Responses
StatusDescription
200Forwards

Fields:items: array<Forward>

401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

PUT /v1/admin/sdk-shield/apps/{id}/forwards

Replace the app's forwards (at most 16, of its scope) (platform administrator)

operationId
adminSetSDKShieldAppForwards
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

Any incompatible forward refuses the whole change with 422 sdk_shield_forward_incompatible; error.details.forwards lists every one with its reasons (the codes of Forward.incompatible). Binding republishes the scope. Audited sdkshield.forwards.update.

Parameters

adminSetSDKShieldAppForwards Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Request body

application/json · Required:Yes

adminSetSDKShieldAppForwards Request body
NameTypeRequiredDescription
forward_idsarray<string(uuid)>Yes—

Responses

adminSetSDKShieldAppForwards Responses
StatusDescription
200Bound forwards

Fields:forward_ids: array<string(uuid)>

401Error
403Error
404Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/keys

List the app's keys with the handshakes each passed in the last 24 hours (platform administrator)

operationId
adminListSDKShieldAppKeys
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminListSDKShieldAppKeys Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminListSDKShieldAppKeys Responses
StatusDescription
200Keys

Fields:items: array<Key>

401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

POST /v1/admin/sdk-shield/apps/{id}/keys

Add the next key (at most two active: 409 sdk_shield_key_limit); its AppSecret is returned once (platform administrator)

operationId
adminRotateSDKShieldAppKey
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

Audited sdkshield.key.create (key_id only).

Parameters

adminRotateSDKShieldAppKey Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYesOne key per write; resend it to retry a write whose result was not seen. The same key and request (24 hours, per user and operation) answers the resource it created and creates nothing: a Secret then has replayed true and no app_secret (the secret was only in the first answer). The same key with another request: 409 idempotency_conflict. Missing, malformed or repeated: 422 validation_failed (field Idempotency-Key).
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminRotateSDKShieldAppKey Responses
StatusDescription
201New key

Fields:app_id: string key_id: integer app_secret?: string replayed: boolean

401Error
403Error
404Error
409Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

POST /v1/admin/sdk-shield/apps/{id}/keys/{key_id}/revoke

Revoke a key; the last active one cannot be (409 sdk_shield_last_key) (platform administrator)

operationId
adminRevokeSDKShieldAppKey
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.manage

Description (from the contract)

Nodes refuse it as unknown_key after the next publication; open connections stay. Audited sdkshield.key.revoke.

Parameters

adminRevokeSDKShieldAppKey Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
key_idpathintegerYes—
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminRevokeSDKShieldAppKey Responses
StatusDescription
204Revoked
401Error
403Error
404Error
409Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/node-list/preview

The node list that would be signed now, with node names and the public URL (platform administrator)

operationId
adminPreviewSDKShieldNodeList
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminPreviewSDKShieldNodeList Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminPreviewSDKShieldNodeList Responses
StatusDescription
200Preview

Fields:revision: integer issued_at: string(date-time) | null(date-time) expires_at: string(date-time) | null(date-time) refresh_after: integer skew_seconds: integer signing_key_id: string public_path: string public_url?: string nodes: array<PreviewNode> udp_idle_seconds: object truncated: boolean

401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/apps/{id}/stats

Totals, refusal reasons, trend and top sources (at most 31 days) (platform administrator)

operationId
adminGetSDKShieldAppStats
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminGetSDKShieldAppStats Parameters
NameInTypeRequiredDescription
idpathstring(uuid)YesThe app's row id (App.id).
fromquerystring(date-time)NoRFC 3339; default 24 hours before to
toquerystring(date-time)NoRFC 3339; default now
node_idquerystring(uuid)NoOnly this node
bucketquerystring: minute / hourNoTrend bucket; default minute up to 6 hours, else hour
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminGetSDKShieldAppStats Responses
StatusDescription
200Statistics

Fields:from: string(date-time) to: string(date-time) bucket: string: minute / hour totals: Totals reasons: array<ReasonCount> trend: array<TrendPoint> top: array<Source>

401Error
403Error
404Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/list-signing-keys

List the node list signing keys

operationId
listSDKShieldListSigningKeys
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:platform.admin streams.read

Responses

listSDKShieldListSigningKeys Responses
StatusDescription
200Signing keys

Fields:items: array<SigningKey>

401Error
403Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

POST /v1/admin/sdk-shield/list-signing-keys/rotate

Retire the active list signing key and sign with a new one

operationId
rotateSDKShieldListSigningKey
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:platform.admin streams.manage

Description (from the contract)

Audited sdkshield.list_key.rotate.

Parameters

rotateSDKShieldListSigningKey Parameters
NameInTypeRequiredDescription
Idempotency-KeyheaderstringYesOne key per write; resend it to retry a write whose result was not seen. The same key and request (24 hours, per user and operation) answers the resource it created and creates nothing: a Secret then has replayed true and no app_secret (the secret was only in the first answer). The same key with another request: 409 idempotency_conflict. Missing, malformed or repeated: 422 validation_failed (field Idempotency-Key).

Responses

rotateSDKShieldListSigningKey Responses
StatusDescription
201New key

Fields:key_id: string status: string: active / retired public_key_base64: string created_at: string(date-time) retired_at: string(date-time) | null(date-time)

401Error
403Error
409Error
422Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 409 Read the current state first; a retry of the same operation keeps the original Idempotency-Key and body.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/module

Read the module state (answers without the module) (platform administrator)

operationId
adminGetSDKShieldModule
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminGetSDKShieldModule Parameters
NameInTypeRequiredDescription
tenant_scope_idquerystring(uuid)NoPlatform administrators: the tenant (omitted on a list: every tenant)

Responses

adminGetSDKShieldModule Responses
StatusDescription
200Module state

Fields:licensed: boolean locally_disabled: boolean defaults: Protection signing_keys: array<SigningKey> quota?: Quota

401Error
403Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/sdk

List the SDK packages and the list signing public keys they embed (platform administrator)

operationId
adminGetSDKShieldSDKManifest
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Responses

adminGetSDKShieldSDKManifest Responses
StatusDescription
200SDK manifest

Fields:packages: array<SDKPackage> signing_keys: array<SigningKey>

401Error
403Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/sdk-shield/sdk/files/{name}

Download one SDK archive shipped with this controller release (platform administrator)

operationId
adminDownloadSDKShieldSDKFile
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

All of:streams.read

Parameters

adminDownloadSDKShieldSDKFile Parameters
NameInTypeRequiredDescription
namepathstringYesArchive file name, the last segment of SDKPackage.url

Responses

adminDownloadSDKShieldSDKFile Responses
StatusDescription
200The archive (Content-Disposition attachment; X-Content-SHA256 is its digest, as in the manifest)
401Error
403Error
404Error
503Error

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list