Signer API Reference
| Field | Value |
|---|---|
| Source spec | signer/openapi/v1.json |
| OpenAPI version | 3.1.1 |
| API version | 1.0.0 |
| Operations | 17 |
| Path filter | All paths |
Operations
GET /
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | StellaOps.Signer.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/anchors/{anchorId}/keys
Add a new signing key to a trust anchor
Adds a new public signing key to the specified trust anchor, recording the addition in the audit log. Returns 201 Created with the updated allowed key IDs and audit log reference. Returns 404 if the anchor is not found. Requires KeyManagement authorization.
| Property | Value |
|---|---|
| Operation ID | AddKey |
| Tags | KeyRotation, TrustAnchors |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
anchorId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
201 | Created | application/json |
400 | Bad Request | application/json |
404 | Not Found | application/json |
GET /api/v1/anchors/{anchorId}/keys/history
Get the full key history for a trust anchor
Returns the complete key lifecycle history for a trust anchor including all added, revoked, and expired keys with their timestamps and revocation reasons. Requires KeyManagement authorization.
| Property | Value |
|---|---|
| Operation ID | GetKeyHistory |
| Tags | KeyRotation, TrustAnchors |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
anchorId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | application/json |
GET /api/v1/anchors/{anchorId}/keys/warnings
Get rotation warnings for a trust anchor
Returns active rotation warnings for a trust anchor such as keys approaching expiry or requiring rotation. Includes the warning type, message, and critical deadline timestamp. Requires KeyManagement authorization.
| Property | Value |
|---|---|
| Operation ID | GetRotationWarnings |
| Tags | KeyRotation, TrustAnchors |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
anchorId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | application/json |
POST /api/v1/anchors/{anchorId}/keys/{keyId}/revoke
Revoke a signing key from a trust anchor
Revokes a specific signing key from a trust anchor with a mandatory reason and optional effective timestamp. Records the revocation in the audit log. Returns the updated allowed and revoked key lists. Requires KeyManagement authorization.
| Property | Value |
|---|---|
| Operation ID | RevokeKey |
| Tags | KeyRotation, TrustAnchors |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
anchorId | path | yes | |
keyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
400 | Bad Request | application/json |
404 | Not Found | application/json |
GET /api/v1/anchors/{anchorId}/keys/{keyId}/validity
Check if a key was valid at a specific time
Checks whether a specific key was in a valid (non-revoked, non-expired) state at the given timestamp. Defaults to the current time if no signedAt is provided. Used for retrospective signature verification. Requires KeyManagement authorization.
| Property | Value |
|---|---|
| Operation ID | CheckKeyValidity |
| Tags | KeyRotation, TrustAnchors |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
anchorId | path | yes | |
keyId | path | yes | |
signedAt | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | application/json |
GET /api/v1/buildinfo
API alias for /buildinfo.json (same payload).
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoApi |
| Tags | StellaOps.Signer.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/ceremonies
List ceremonies with optional filters
Returns a paginated list of signing ceremonies optionally filtered by state, operation type, initiator, or tenant. Supports limit and offset for pagination. Requires ceremony:read authorization.
| Property | Value |
|---|---|
| Operation ID | ListCeremonies |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
initiatedBy | query | no | |
limit | query | no | |
offset | query | no | |
operationType | query | no | |
state | query | no | |
tenantId | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
POST /api/v1/ceremonies
Create a new signing ceremony
Initiates a new M-of-N dual-control signing ceremony for key management operations such as key generation, rotation, revocation, or recovery. Returns 201 Created with the ceremony record including required approval threshold and expiry. Requires ceremony:create authorization.
| Property | Value |
|---|---|
| Operation ID | CreateCeremony |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
201 | Created | application/json |
400 | Bad Request | application/problem+json |
403 | Forbidden | application/problem+json |
GET /api/v1/ceremonies/{ceremonyId}
Get a ceremony by ID
Returns the full ceremony record including operation type, state, approvals received, approval threshold, and expiry. Returns 404 if the ceremony is not found. Requires ceremony:read authorization.
| Property | Value |
|---|---|
| Operation ID | GetCeremony |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ceremonyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
404 | Not Found | application/problem+json |
DELETE /api/v1/ceremonies/{ceremonyId}
Cancel a pending ceremony
Cancels a pending or partially approved signing ceremony with an optional reason. Returns 204 No Content on success. Returns 409 Conflict if the ceremony has already been executed, expired, or cancelled. Requires ceremony:cancel authorization.
| Property | Value |
|---|---|
| Operation ID | CancelCeremony |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ceremonyId | path | yes | |
reason | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
204 | No Content | - |
404 | Not Found | application/problem+json |
409 | Conflict | application/problem+json |
POST /api/v1/ceremonies/{ceremonyId}/approve
Submit an approval for a ceremony
Submits a signed approval for a dual-control ceremony. Requires a valid base64-encoded approval signature and optional signing key ID. Returns 409 Conflict on duplicate approval or terminal ceremony state. Requires ceremony:approve authorization.
| Property | Value |
|---|---|
| Operation ID | ApproveCeremony |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ceremonyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
400 | Bad Request | application/problem+json |
404 | Not Found | application/problem+json |
409 | Conflict | application/problem+json |
POST /api/v1/ceremonies/{ceremonyId}/execute
Execute an approved ceremony
Executes a fully approved signing ceremony once the approval threshold has been reached. Performs the key operation and records the execution. Returns 409 Conflict if the ceremony is not fully approved, already executed, expired, or cancelled. Requires ceremony:execute authorization.
| Property | Value |
|---|---|
| Operation ID | ExecuteCeremony |
| Tags | Ceremonies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ceremonyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
400 | Bad Request | application/problem+json |
404 | Not Found | application/problem+json |
409 | Conflict | application/problem+json |
POST /api/v1/signer/sign/dsse
Signs a payload using DSSE (Dead Simple Signing Envelope) with the configured KMS or keyless signing mode. Requires a proof-of-entitlement (PoE) in JWT or mTLS format. Returns the signed DSSE bundle including envelope, certificate chain, signing identity, provider name, algorithm id, optional crypto profile, and signing policy metadata.
| Property | Value |
|---|---|
| Operation ID | SignDsse |
| Tags | Signer |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/signer/verify/dsse
Verifies a Signer-produced DSSE bundle over the DSSE PAE bytes. For a full bundle, the endpoint resolves its providerName, algorithmId, and signature keyId through the configured crypto registry and accepts standard base64 or base64url payload/signature encoding. Raw {dsse} or bare-envelope input is supported only by the explicit Development/Testing HMAC signer. Returns verified, the successfully verified key id, and an optional failure reason. Broader third-party certificate-chain/transparency-policy verification remains Attestor-owned.
| Property | Value |
|---|---|
| Operation ID | VerifyDsse |
| Tags | Signer |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/signer/verify/referrers
Verifies the release integrity of a container image or artifact by digest using the OCI referrers API. Returns whether the artifact has a trusted signature from the configured release signer.
| Property | Value |
|---|---|
| Operation ID | VerifyReferrers |
| Tags | Signer |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
digest | query | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /buildinfo.json
Image build provenance (module, gitSha, gitCommitTime, imageBuiltAt, branch) for drift detection.
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoFile |
| Tags | StellaOps.Signer.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
