Secrets
The Secrets module replaces tools like Doppler, Infisical, and Vault for application secrets management.
Features
Section titled “Features”- Environment inheritance - Create
base→development→staging→productionhierarchies - Variable references - Use
${OTHER_VAR}to build values from other secrets - Encrypted storage - AES-256-GCM encryption at rest
- Export formats - Shell, JSON, YAML, .env files
- Version history - Track changes over time
Quick Start
Section titled “Quick Start”# Create a projectsoup secrets project create my-app
# Create environments with inheritancesoup secrets env create my-app basesoup secrets env create my-app development --parent basesoup secrets env create my-app staging --parent developmentsoup secrets env create my-app production --parent base
# Set secretssoup secrets set my-app base DATABASE_HOST localhostsoup secrets set my-app base DATABASE_PORT 5432soup secrets set my-app base DATABASE_URL 'postgres://${DATABASE_HOST}:${DATABASE_PORT}/myapp'
# Override for productionsoup secrets set my-app production DATABASE_HOST prod-db.internal
# Export for your appeval $(soup secrets export my-app production)echo $DATABASE_URL# postgres://prod-db.internal:5432/myappEnvironment Inheritance
Section titled “Environment Inheritance”Environments can inherit from parent environments. Child environments get all parent secrets, and can override specific values.
base├── development (inherits from base)│ └── staging (inherits from development)└── production (inherits from base)When you get secrets from staging:
- Start with
basesecrets - Apply
developmentoverrides - Apply
stagingoverrides
Variable References
Section titled “Variable References”Use ${VAR_NAME} syntax to reference other secrets:
soup secrets set my-app base DB_HOST localhostsoup secrets set my-app base DB_PORT 5432soup secrets set my-app base DB_USER adminsoup secrets set my-app base DB_PASS secretsoup secrets set my-app base DATABASE_URL 'postgres://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/myapp'References are resolved at export time, so changing DB_HOST automatically updates DATABASE_URL.
CLI Commands
Section titled “CLI Commands”# Projectssoup secrets project create <name>soup secrets project listsoup secrets project delete <name>
# Environmentssoup secrets env create <project> <name> [--parent <parent>]soup secrets env list <project>soup secrets env delete <project> <name>
# Secretssoup secrets set <project> <env> <key> <value>soup secrets get <project> <env> <key>soup secrets delete <project> <env> <key>soup secrets list <project> <env>
# Exportsoup secrets export <project> <env> [--format shell|json|yaml|dotenv]soup secrets run <project> <env> -- <command>See the Secrets API reference for HTTP endpoints.
Pricing
Section titled “Pricing”| Tier | Limits |
|---|---|
| Free | 3 projects, 100 secrets |
| Standard | Unlimited ($1/user/month) |
| Self-hosted | Unlimited (free) |