Overview
Secrets are encrypted environment variables for sensitive data like API keys, tokens, and credentials. Unlike plain environment variables, secrets:- Are encrypted at rest
- Never appear in logs or error messages
- Can only be set, not read via API
- Are bound to your Worker at runtime
Creating Secrets
Interactive Mode
Create a secret with interactive prompt:From stdin
Pipe secret values from other commands:Bulk Secret Upload
Upload multiple secrets at once:JSON Format
Createsecrets.json:
Environment File Format
Alternatively, use.env format:
From stdin
Bulk Upload Implementation
The bulk command validates and uploads secrets efficiently:Listing Secrets
View all secrets for a Worker:Output Formats
Pretty format (default):Deleting Secrets
Remove a secret:Secrets with Versions
When using Worker versions, secrets require special handling to avoid accidental deployments.Version Secret Commands
Use the version-specific commands:Creating Version with Secret
When you add a secret usingwrangler versions secret put, it:
1
Prompts for secret value
2
Creates new version
The command copies the latest version with the new secret:
3
Returns new version ID
Version Secret List
List secrets in currently deployed versions:- Which secrets exist in each deployed version
- Traffic percentage for each version
- Secret name differences between versions
Latest Version Only
Standard vs. Version Secrets
Standard Deployment Secrets
- β Simple single command
- β Immediate deployment
- β May trigger unwanted deployment
- β No gradual rollout
Version Deployment Secrets
- β No accidental deployment
- β Can test before deploying
- β Gradual rollout support
- β Two-step process
Secret Deployment Behavior
Standard Deployment
With standard deployments,wrangler secret put may trigger a deployment:
Version Deployment
With version deployments:- Secrets create a new version
- No automatic deployment
- Explicit
wrangler versions deployrequired
Accessing Secrets in Code
Secrets are available as environment variables:TypeScript Types
Define environment types:Secret Inheritance
When uploading a new version, secrets are inherited from the previous version by default:- New versions automatically include existing secrets
- You only need to update changed secrets
- Deleted secrets require explicit removal
Secret Security
Best Practices
- Never commit secrets - Use
.gitignorefor secret files - Rotate regularly - Update secrets periodically
- Use least privilege - Only grant necessary permissions
- Audit secret access - Monitor which Workers use which secrets
- Delete unused secrets - Remove secrets no longer needed
Secret Storage
Secrets are:- β Encrypted at rest
- β Encrypted in transit
- β Never logged
- β Never returned by API
- β Isolated per Worker
What NOT to Use Secrets For
β Configuration values - Use environment variables instead β Public API keys - Use plain environment variables β Non-sensitive data - Use environment variables or KV β Large data - Use KV, R2, or D1Environment-Specific Secrets
For Workers with environments:Troubleshooting
Worker Not Found
If the Worker doesnβt exist:Latest Version Not Deployed
When using versions:Bulk Upload Failures
If bulk upload fails:.env format instead.
Next Steps
Deploying
Deploy Workers with secrets
Versioning
Manage Worker versions