Overview
Every project has its own isolated secret storage. This ensures complete separation between projects, so secrets from one project are never accessible to another. Key security features:- Encryption at rest - All secrets are encrypted before storage
- Isolated storage - Each project has its own dedicated secret vault
- Masked in logs - Secret values are never written to execution logs
- Masked in API responses - API responses always display
********instead of actual values - Automatic cleanup - Secrets are permanently deleted when a project is deleted
- Automatic rotation - Encryption keys are rotated automatically to maintain security
Using Secrets in Flows
Access your secrets in any flow configuration using the{{env.KEY_NAME}} template syntax.
In HTTP Node Headers
In URLs
In Request Bodies
With Default Values
Use thedefault pipe to provide fallback values:
Common Use Cases
External API Authentication
Database Connection Strings
Store complete connection URLs as secrets:Webhook Secrets
Store secrets used for webhook signature verification:Third-Party Service Credentials
Best Practices
Naming Conventions
Use descriptive, consistent names:Environment-Specific Secrets
For different environments (staging, production), use separate Dualship projects with their own secrets. This ensures complete isolation between environments.Security Guarantees
Caching
For performance, secrets are cached with automatic invalidation. When you create, update, or delete a secret, the cache is cleared and new values take effect immediately.Limits
All plans include unlimited secrets at no additional cost.
Related
- Template Expressions - How to use
{{env.KEY}}syntax - Project Settings - Log masking for additional security
- HTTP Node - Making authenticated API calls