Skip to main content
Secrets allow you to securely store sensitive data like API keys, tokens, and credentials that your flows need to access external services. Once stored, secrets are available in your flows using template expressions.

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 the default 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.