Secrets

Understanding secrets, versioning, and secret expansion.

Secrets are the core of Redenv - encrypted key-value pairs that power your applications.

Secret Types#

Redenv stores secrets as strings, but you can store any type of data:

# Simple strings
redenv set API_KEY "sk_live_..."

# JSON data
redenv set CONFIG '{"debug": true, "timeout": 30}'

# Multiline values
redenv set PRIVATE_KEY "$(cat key.pem)"

Version History#

Every change to a secret is versioned:

# View secret history
redenv history DATABASE_URL

# Output:
# Version 3 (current): postgres://new@host/db
# Version 2: postgres://old@host/db
# Version 1: postgres://initial@host/db

Secret Expansion#

Reference other secrets using ${VAR_NAME} syntax:

redenv set DB_HOST "localhost"
redenv set DB_PORT "5432"
redenv set DATABASE_URL "postgres://user:pass@\${DB_HOST}:\${DB_PORT}/mydb"

When retrieved, DATABASE_URL expands to the full connection string.

Escaping#

To use a literal ${, escape with backslash:

redenv set TEMPLATE "Use \\${VAR} for variables"

Deleting Secrets#

# Delete a secret
redenv delete API_KEY

# Delete from specific environment
redenv delete API_KEY --env production

Tip

It can be used without Fumadocs UI, in other words, it's headless.

For beginners and normal usages, use Fumadocs UI.