Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.xloud.tech/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Secrets are the fundamental resource in Xloud Key Manager. Each secret stores an encrypted payload with type and algorithm metadata. Secrets are project-scoped — they are visible only to users within the project that created them unless shared via ACL. Secrets are referenced by UUID and payloads are never returned in API responses outside of an explicit retrieve operation.
Prerequisites
  • An active Xloud account with appropriate permissions
  • Access to the Xloud Dashboard or CLI configured with credentials
  • API credentials sourced (source openrc.sh)
Project Scope — All secrets created in Key Manager belong to the project selected at the time of creation. Users in other projects cannot see or access your secrets unless you explicitly grant access through an ACL. If you switch projects in the Dashboard, you will see a different set of secrets.

Secret Types

Xloud Key Manager supports six secret types. The type you select determines which algorithm, key length, and encryption mode options are available.
TypeUse CaseExample Payload
OpaqueArbitrary data — API keys, passwords, config values, tokensAny text or binary data
SymmetricEncryption keys for AES, DES, 3DESBase64-encoded key material
PublicRSA, DSA, or EC public keysPEM-encoded public key
PrivateRSA, DSA, or EC private keysPEM-encoded private key
CertificateX.509 TLS/SSL certificatesPEM-encoded certificate
PassphrasePasswords and passphrase stringsPlain text passphrase

Create a Secret

Create secrets through the Xloud Dashboard with a form that adapts based on the selected secret type.
1

Navigate to Key Manager

Navigate to Key Manager > Secrets in the sidebar.Click Create Secret in the upper-right corner.
2

Enter the secret name

Enter a descriptive Name for your secret. This is a required field and serves as a human-readable identifier (e.g., db-root-password, app-tls-private-key).
3

Select the secret type

Choose the Secret Type from the dropdown. This selection controls which additional fields appear in the form:
Secret TypeAdditional Fields Shown
OpaqueNo additional algorithm fields
SymmetricAlgorithm, Bit Length, Mode
PublicAlgorithm, Bit Length
PrivateAlgorithm, Bit Length
CertificateAlgorithm, Bit Length
PassphraseNo additional algorithm fields
4

Configure algorithm options (if applicable)

For secret types that support cryptographic metadata, configure the following fields. These fields appear dynamically based on your secret type selection:Algorithm — Select the cryptographic algorithm:
Secret TypeAvailable Algorithms
SymmetricAES, DES, 3DES
PublicRSA, DSA, EC
PrivateRSA, DSA, EC
CertificateRSA, EC
Bit Length — Select the key size (appears after algorithm selection):
AlgorithmAvailable Bit Lengths
AES128, 192, 256
DES56
3DES168
RSA2048, 3072, 4096
DSA2048, 3072
EC256, 384, 521
Mode — Select the block cipher mode (symmetric keys only):
ModeDescription
CBCCipher Block Chaining — standard mode for block encryption
CTRCounter mode — enables parallel encryption
GCMGalois/Counter Mode — provides both encryption and authentication
For symmetric encryption keys, AES-256 with GCM mode is recommended for most use cases. It provides both strong encryption and built-in integrity verification.
5

Select a secret store backend (optional)

If your platform has multiple secret store backends configured, a Secret Store Backend dropdown appears. Select which backend should store this secret.The default backend is pre-selected and marked with (Default).
This field only appears when the administrator has configured multiple secret store backends. Most deployments use a single backend.
6

Set an expiration date (optional)

Use the Expiration date-time picker to set an optional expiration date for the secret. After this date, the secret is no longer usable.
Key Manager does not send expiration alerts. Set external calendar reminders to renew secrets before they expire, especially for certificates and encryption keys used by running services.
7

Enter the payload

Enter the secret value in the Payload text area. The form displays a format hint based on the selected secret type:
Secret TypePayload Format Hint
OpaqueAny text or data: API key, password, config value, token
SymmetricBase64-encoded key. Generate: openssl rand -base64 32
PublicPEM format: -----BEGIN PUBLIC KEY-----
PrivatePEM format: -----BEGIN RSA PRIVATE KEY-----
CertificatePEM format: -----BEGIN CERTIFICATE-----
PassphraseA passphrase or password string
The payload field is optional at creation time. You can create a secret without a payload and add it later via the API. However, most use cases require providing the payload during creation.
8

Select payload content type

If you entered a payload, select the Payload Content Type:
Content TypeWhen to Use
text/plainPassphrases, API keys, plain text data
application/octet-streamBinary data, symmetric keys
application/pkix-certX.509 certificates, public keys
If you do not select a content type, the system auto-selects based on your secret type: application/octet-stream for symmetric keys, application/pkix-cert for certificates, and text/plain for all others.
9

Create the secret

Click Confirm to create the secret. It appears in the Secrets list with status Active.
Secret appears in the Secrets list with its UUID and Active status.

Retrieve a Secret

1

View secret metadata

Navigate to Project > Key Manager > Secrets. Click the secret name to open the detail page.The detail page shows:
FieldDescription
Secret TypeThe type selected at creation
StatusActive or Error
ModeBlock cipher mode (symmetric keys only)
Bit LengthKey size in bits
CreatedCreation timestamp
UpdatedLast modification timestamp
ExpirationExpiration date, or - if none set
2

Retrieve the payload

The Dashboard does not display secret payloads after creation. To retrieve a secret payload, use the CLI or API.

Delete a Secret

1

Select secrets to delete

Navigate to Project > Key Manager > Secrets. Select one or more secrets using the checkboxes, then click Delete in the actions menu.Alternatively, click the More menu on a single secret row and select Delete Secret.
2

Confirm deletion

Confirm the deletion in the dialog. This action is permanent.
Deleting a secret is irreversible. If the secret is referenced by containers, Load Balancer listeners, or volume encryption, those references will break immediately. Update all references before deleting.

Project Scope and Access

Secrets in Key Manager are project-scoped by default:
BehaviorDescription
VisibilitySecrets are visible only to users within the project that created them
Cross-project accessNot permitted unless explicitly granted via ACL
Project switchingSwitching projects in the Dashboard shows a different set of secrets
Service accessServices like the Load Balancer access secrets using the project’s service credentials
Admin accessPlatform administrators can view all secrets across projects from the admin panel
To share a certificate or encryption key with another project, use an ACL rather than storing duplicate copies. This ensures a single source of truth and simplifies key rotation.

Secret Type Reference

Use case: Store any arbitrary data — API keys, database passwords, configuration values, OAuth tokens, or binary blobs.No algorithm or key length metadata is required. This is the most flexible type and the default selection.
CLI example
openstack secret store \
  --name github-api-token \
  --secret-type opaque \
  --payload "ghp_xxxxxxxxxxxxxxxxxxxx" \
  --payload-content-type "text/plain"
Use case: Store symmetric encryption keys for AES, DES, or 3DES encryption. Used for volume encryption, object storage encryption, and application-level encryption.
FieldOptions
AlgorithmAES, DES, 3DES
Bit LengthAES: 128/192/256, DES: 56, 3DES: 168
ModeCBC, CTR, GCM
CLI example — AES-256 GCM
openstack secret store \
  --name volume-encryption-key \
  --secret-type symmetric \
  --algorithm aes --bit-length 256 --mode gcm \
  --payload-content-type "application/octet-stream" \
  --payload-content-encoding base64 \
  --payload "$(openssl rand -base64 32)"
Use case: Store RSA, DSA, or EC public keys for key pair management, signature verification, or encryption.
FieldOptions
AlgorithmRSA, DSA, EC
Bit LengthRSA: 2048/3072/4096, DSA: 2048/3072, EC: 256/384/521
CLI example — RSA 4096 public key
openstack secret store \
  --name ssh-public-key \
  --secret-type public \
  --algorithm rsa --bit-length 4096 \
  --payload-content-type "application/pkix-cert" \
  --payload-content-encoding base64 \
  --payload "$(base64 -w 0 id_rsa.pub)"
Use case: Store RSA, DSA, or EC private keys for TLS, SSH, or code signing. Always pair with a corresponding public key or certificate.
FieldOptions
AlgorithmRSA, DSA, EC
Bit LengthRSA: 2048/3072/4096, DSA: 2048/3072, EC: 256/384/521
CLI example — RSA 4096 private key
openstack secret store \
  --name app-tls-key \
  --secret-type private \
  --algorithm rsa --bit-length 4096 \
  --payload-content-type "application/pkcs8" \
  --payload-content-encoding base64 \
  --payload "$(base64 -w 0 private_key.pem)"
Use case: Store X.509 TLS/SSL certificates for HTTPS termination, mTLS authentication, or certificate chain management.
FieldOptions
AlgorithmRSA, EC
Bit LengthRSA: 2048/3072/4096, EC: 256/384/521
CLI example — TLS certificate
openstack secret store \
  --name app-tls-cert \
  --secret-type certificate \
  --algorithm rsa --bit-length 2048 \
  --payload-content-type "application/pkix-cert" \
  --payload-content-encoding base64 \
  --payload "$(base64 -w 0 certificate.pem)"
Use case: Store passwords, passphrases, PINs, or other human-readable credential strings. No algorithm metadata is required.
CLI example
openstack secret store \
  --name db-admin-password \
  --secret-type passphrase \
  --payload "MyS3cur3P@ssw0rd!" \
  --payload-content-type "text/plain"

Next Steps

Containers

Bundle secrets into named containers for TLS and key pair management

Certificates

Store and manage TLS certificates using Key Manager

Access Control (ACL)

Share secrets across projects with fine-grained access control

Troubleshooting

Resolve 403 errors, payload retrieval failures, and expired secret issues