Database Storage (Default)
Secrets are encrypted using workspace-specific keys and stored in the PostgreSQL database.
HashiCorp Vault Configuration Beta
Store secrets in an external HashiCorp Vault instance.
Configure Vault to accept JWTs from Windmill:
# Enable JWT auth method
vault auth enable jwt
# Configure JWT auth with Windmill's JWKS endpoint
vault write auth/jwt/config \
jwks_url="{baseUrl}/.well-known/jwks.json" \
bound_issuer="{baseUrl}"
# Create a policy for Windmill secrets
vault policy write windmill-secrets - <<EOF
path "windmill/data/*" {
capabilities = ["create", "read", "update", "delete"]
}
path "windmill/metadata/*" {
capabilities = ["list", "delete"]
}
EOF
# Create the JWT role
vault write auth/jwt/role/windmill-secrets \
role_type="jwt" \
bound_audiences="{baseUrl}" \
user_claim="email" \
policies="windmill-secrets" \
ttl="1h"
Database → Vault
Vault → Database
Azure Key Vault Configuration
Store secrets in an Azure Key Vault instance.
Database → Azure Key Vault
Azure Key Vault → Database
AWS Secrets Manager Configuration Beta
Store secrets in AWS Secrets Manager.
Database → AWS Secrets Manager
AWS Secrets Manager → Database
This will copy all secrets from the database to AWS Secrets Manager.
Database values are NOT deleted automatically.
This will copy all secrets from AWS Secrets Manager back to the database.
AWS Secrets Manager values are NOT deleted automatically.
This will copy all secrets to Azure Key Vault.
Database values are NOT deleted automatically.
This will copy all secrets from Azure Key Vault back to the database.
This will copy all secrets to HashiCorp Vault.
Database values are NOT deleted automatically.
This will copy all secrets from Vault back to the database.