tawa config manages environment variables and encrypted secrets for your services. Changes are stored in the builder and take effect on the next deploy.
# Set plain config vars (visible in logs)
tawa config set LOG_LEVEL=debug API_TIMEOUT=30000
# Set an encrypted secret (value never returned by API)
tawa config set STRIPE_SECRET_KEY=sk_live_... --secret
# List all config vars and secret key names (values masked for secrets)
tawa config list
# Remove a config var or secret
tawa config unset STRIPE_SECRET_KEY
# Pull all config + decrypted secrets to .env.local
tawa config pull
# Push .env.local values to the builder (as plain config)
tawa config push
After setting or changing config, you must redeploy with tawa deploy for changes to take effect in your running pod.
tawa config set MY_KEY=value --secret{service}-managed-secretsenvFrom.secretRefprocess.env.MY_KEY — no decryption needed in codeSecret values are never returned by the API. The only way to retrieve a secret value is tawa config pull, which writes the decrypted value to .env.local on your local machine.
The builder automatically injects these based on your catalog-info.yaml — do NOT set these with tawa config:
| Source | Variable | Provisioned from |
|---|---|---|
| Databases | MONGODB_URI | spec.databases with type: mongodb |
| Databases | REDIS_URL | spec.databases with type: redis |
| OAuth | BIO_CLIENT_ID | Auto-created OAuth client |
| OAuth | BIO_CLIENT_SECRET | Auto-created OAuth client |
| Internal deps | {SERVICE}_URL | spec.internalDependencies resolved to K8s DNS |
From lowest to highest (highest wins):
NODE_ENV)tawa config setenvFrom.secretReftawa config pull
# Writes .env.local with all config + decrypted secrets
# File permissions: 0600 (owner read/write only)
Most Node.js frameworks load .env.local automatically. Your app reads process.env.STRIPE_SECRET_KEY the same way whether running locally or in a pod.
WARNING: Add
.env.localto your.gitignore. Never commit it to version control.
// WRONG: hardcoded secret
const apiKey = "sk_live_abc123..."
// CORRECT: read from environment
const apiKey = process.env.STRIPE_SECRET_KEY
if (!apiKey) throw new Error('STRIPE_SECRET_KEY not configured')
.gitignoretawa config set only takes effect after tawa deployMONGODB_URI and BIO_CLIENT_ID are generated by the builder; setting them manually creates a conflictLast updated: February 28, 2026