Generate Database Credential
const url = 'https://example.com/vault/v1/workspaces/example/engines/qibdo/databases/example/credentials';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"workspace":"example","source_role":"example","database_role":"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/databases/example/credentials \ --header 'Content-Type: application/json' \ --data '{ "workspace": "example", "source_role": "example", "database_role": "example" }'Generates a new ephemeral database credential against the given the vault backend database role configured for the workspace. The response embeds both the credential payload (returned exactly once) and the persistent lease handle.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The workspace to issue the credential under.
Legacy: free-form the vault backend database role name to draw the credential from.
Pre-configured out-of-band by a vault administrator. Kept for the
transition window — when both source_role and database_role are
supplied, database_role wins.
Request Body required
Section titled “Request Body required ”Request payload for Generate Database Qibdo Credential
Carries the input fields required to generate database qibdo credential.
object
The workspace to issue the credential under.
Legacy: free-form the vault backend database role name to draw the credential from.
Pre-configured out-of-band by a vault administrator. Kept for the
transition window — when both source_role and database_role are
supplied, database_role wins.
The QibdoDatabaseRole UUID to draw the credential from. When
supplied, the handler resolves the role’s name + workspace before
forwarding to the engine — replacing the legacy source_role lookup.
Example generated
{ "workspace": "example", "source_role": "example", "database_role": "example"}Responses
Section titled “ Responses ”OK
Response payload from Generate Database Qibdo Credential
Carries the output produced by generate database qibdo credential.
object
The freshly issued ephemeral credential bundled with its lease handle.
object
The lease metadata for this credential — the persistent server-side handle used to renew or revoke the credential.
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.
The username portion of the credential (e.g., a transient database role).
The password portion of the credential. Returned exactly once — clients MUST store it before the lease expires.
Example
{ "credential": { "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" } ]}