Skip to content
qibdo qibdo
v1
API version
  • v1
Theme
Book a demo

Sign SSH Certificate

POST
/vault/v1/workspaces/{workspace}/engines/qibdo/ssh/{source_role}/certificates:sign
curl --request POST \
--url https://example.com/vault/v1/workspaces/example/engines/qibdo/ssh/example/certificates:sign \
--header 'Content-Type: application/json' \
--data '{ "workspace": "example", "source_role": "example", "public_key": "example" }'

Signs a client SSH public key with the workspace SSH CA, returning a short-lived OpenSSH certificate (ssh-rsa-cert-v01@openssh.com ... line). The signed certificate plus its serial number is returned in the response; a QibdoLease is created so the certificate can be revoked engine-side before its own validity window expires.

workspace
required
string

The workspace to issue the SSH certificate under.

source_role
required
string

The pre-configured SSH role bound to the workspace SSH CA.

Media type application/json

Request payload for Sign Ssh Qibdo Certificate

Carries the input fields required to sign ssh qibdo certificate.

object
workspace
required

The workspace to issue the SSH certificate under.

string
source_role
required

The pre-configured SSH role bound to the workspace SSH CA.

string
public_key
required

The OpenSSH-formatted client public key to sign (e.g., ssh-rsa AAAAB3...).

string
Example generated
{
"workspace": "example",
"source_role": "example",
"public_key": "example"
}

OK

Media type application/json

Response payload from Sign Ssh Qibdo Certificate

Carries the output produced by sign ssh qibdo certificate.

object
signed_key

The OpenSSH-formatted signed certificate (ssh-rsa-cert-v01@openssh.com ...). Returned exactly once — clients MUST persist it before the lease expires.

stringOutput only
serial_number

The serial number assigned by the SSH CA at signing time.

stringOutput only
lease

The lease metadata that governs the certificate’s lifetime.

object
id

The unique identifier of the lease (UUID).

stringOutput only
workspace_id

The workspace this lease belongs to (UUID, weak reference to taxonomy).

stringOutput only
principal_id

The principal (IAM user / service account) the lease was issued to.

stringOutput only
ttl

Initial time-to-live for the lease.

stringOutput only
/^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/
max_ttl

Maximum total lifetime including renewals — capped by the engine.

stringOutput only
/^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/
renewable

Whether the lease can be renewed.

booleanOutput only
revocable

Whether the lease can be revoked early.

booleanOutput only
issued_at

Timestamp when the lease was issued.

string format: date-time Output only
expires_at

Timestamp when the lease expires (may be extended by RenewQibdoLease).

string format: date-time Output only
status

Current lifecycle status of the lease.

string format: enum Output only
Allowed values: LEASE_STATUS_UNSPECIFIED LEASE_STATUS_ACTIVE LEASE_STATUS_RENEWED LEASE_STATUS_REVOKED LEASE_STATUS_EXPIRED
source_type

The engine that produced this lease (database / cloud_aws / cloud_gcp / cloud_azure / ssh / kubernetes).

string format: enum Output only
Allowed values: LEASE_SOURCE_TYPE_UNSPECIFIED LEASE_SOURCE_TYPE_DATABASE LEASE_SOURCE_TYPE_CLOUD_AWS LEASE_SOURCE_TYPE_CLOUD_GCP LEASE_SOURCE_TYPE_CLOUD_AZURE LEASE_SOURCE_TYPE_SSH LEASE_SOURCE_TYPE_KUBERNETES
source_role

Engine-specific role identifier the lease was issued against (e.g., the vault database role name for database leases).

stringOutput only
engine_lease_id

The engine-side lease identifier (e.g., vault lease ID). Used as the prefix key for bulk-revoke operations.

stringOutput only
created

Timestamp when the lease metadata row was created (server-managed).

string format: date-time Output only
updated

Timestamp when the lease metadata was last modified (server-managed).

string format: date-time Output only
location_id

Weak reference to a topology Location — where this resource resides. Defaults to the global location when omitted at creation and is immutable thereafter. Only the global location is available in this release.

stringOutput only
Example
{
"lease": {
"status": "LEASE_STATUS_UNSPECIFIED",
"source_type": "LEASE_SOURCE_TYPE_UNSPECIFIED"
}
}

Default error response

Media type application/json

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.

object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

integer format: int32
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

object
@type

The type of the serialized message.

string
key
additional properties
any
Example generated
{
"code": 1,
"message": "example",
"details": [
{
"@type": "example"
}
]
}