Generate Kubernetes Token
const url = 'https://example.com/vault/v1/workspaces/example/engines/qibdo/kubernetes/example/tokens';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"workspace":"example","source_role":"example","kubernetes_namespace":"example","cluster_role_binding":true,"ttl_seconds":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/vault/v1/workspaces/example/engines/qibdo/kubernetes/example/tokens \ --header 'Content-Type: application/json' \ --data '{ "workspace": "example", "source_role": "example", "kubernetes_namespace": "example", "cluster_role_binding": true, "ttl_seconds": "example" }'Issues a short-lived workload-identity ServiceAccount token bound to the workspace
workload-identity engine mount and the supplied the vault backend role. The bound
ServiceAccount, allowed namespaces, and audience scopes are configured
out-of-band by a vault administrator. Bound to a QibdoLease.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The workspace to issue the workload-identity ServiceAccount token under.
The pre-configured workload-identity role that binds the ServiceAccount, allowed namespaces, and audience scopes.
Request Body required
Section titled “Request Body required ”Request payload for Generate Workload Qibdo Token
Carries the input fields required to generate workload qibdo token.
object
The workspace to issue the workload-identity ServiceAccount token under.
The pre-configured workload-identity role that binds the ServiceAccount, allowed namespaces, and audience scopes.
Optional workload-identity namespace for the ServiceAccount binding. Required when the role allows multiple namespaces; ignored when the role pins a single namespace.
Whether the role binding is cluster-wide (true) or namespace-scoped (false).
Optional override of the role’s default TTL in seconds.
Example generated
{ "workspace": "example", "source_role": "example", "kubernetes_namespace": "example", "cluster_role_binding": true, "ttl_seconds": "example"}Responses
Section titled “ Responses ”OK
Response payload from Generate Workload Qibdo Token
Carries the output produced by generate workload qibdo token.
object
The raw bearer token. Returned exactly once — clients MUST persist it before the lease expires.
The bound ServiceAccount name as resolved by the engine.
The bound ServiceAccount namespace as resolved by the engine.
The lease metadata that governs the token’s lifetime.
object
The unique identifier of the lease (UUID).
The workspace this lease belongs to (UUID, weak reference to taxonomy).
The principal (IAM user / service account) the lease was issued to.
Initial time-to-live for the lease.
Maximum total lifetime including renewals — capped by the engine.
Whether the lease can be renewed.
Whether the lease can be revoked early.
Timestamp when the lease was issued.
Timestamp when the lease expires (may be extended by RenewQibdoLease).
Current lifecycle status of the lease.
The engine that produced this lease (database / cloud_aws / cloud_gcp / cloud_azure / ssh / kubernetes).
Engine-specific role identifier the lease was issued against (e.g., the vault
database role name for database leases).
The engine-side lease identifier (e.g., vault lease ID). Used as the prefix key for bulk-revoke operations.
Timestamp when the lease metadata row was created (server-managed).
Timestamp when the lease metadata was last modified (server-managed).
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.
Example
{ "lease": { "status": "LEASE_STATUS_UNSPECIFIED", "source_type": "LEASE_SOURCE_TYPE_UNSPECIFIED" }}default
Section titled “default ”Default error response
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
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
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.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}