Appearance
Operations Guide
Workflows for rotation, compliance, and operational tasks.
Secret Rotation
Why Rotate?
- Compromised credentials
- Employee departure
- Regular security hygiene
- Compliance requirements
Rotation via Dashboard
- Navigate to Secrets
- Select the project and environment
- Click the rotate icon next to the secret
- Either:
- Let varsafe auto-generate a new value
- Enter a new value manually
- Preview the change
- Confirm rotation
The old value is immediately invalid. Applications using varsafe run receive the new value on their next run.
Rotation via API
For programmatic rotation, use the API:
bash
curl -X POST "https://api.varsafe.dev/secrets/rotate" \
-H "Authorization: Bearer $VARSAFE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"secretId": "secret_xxx", "value": "new-value"}'Rotation Best Practices
Recommended rotation schedule
| Secret Type | Rotation Frequency |
|---|---|
| API keys | Every 90 days |
| Database passwords | Every 90 days |
| Encryption keys | Annually |
| After incident | Immediately |
Handling Running Applications
Applications using varsafe run receive fresh secrets on startup. For running applications:
- Stateless apps — Restart to pick up new secrets
- CI/CD — Each run gets fresh secrets automatically
API Token Management
Creating Tokens
- Go to your team settings in the dashboard
- Navigate to API Tokens
- Click Create token
- Enter a descriptive name (e.g., "GitHub Actions - Production")
- Copy the token immediately
Token Rotation
Rotate tokens regularly for security:
- Click Rotate next to the token
- Copy the new token
- Update your CI/CD configuration
- The old token is immediately invalidated
Token Revocation
If a token is compromised
- Click Revoke immediately
- Create a new token
- Update your configurations
- Review audit logs for unauthorized access
Environment Rollback
When to Rollback
- Accidental secret deletion
- Bad configuration deployed
- Need to restore previous state
How to Rollback
- Navigate to Secrets in the dashboard
- Select project and environment
- Click History
- Click Rollback next to the target operation
- Review the preview:
- Secrets to delete
- Secrets to restore
- Secrets to revert
- Confirm rollback
What Rollback Does
Rollback restores the environment to its state before the selected operation:
- Created secrets are deleted
- Deleted secrets are restored
- Updated secrets are reverted to previous versions
Compliance Exports
SOC 2 Type II
Export audit trail for SOC 2 audits:
- Navigate to Audit Log
- Set date range (audit period)
- Click Export → SOC 2
- Download JSON file
The export includes:
- All security-relevant events
- User access patterns
- Authentication events
- Secret access logs
GDPR Article 30
Export processing activities record:
- Navigate to Audit Log
- Click Export → GDPR
- Download JSON file
The export includes:
- Data processing activities
- Data subjects affected
- Legal basis for processing
- Retention periods
HIPAA
Export access controls audit:
- Navigate to Audit Log
- Click Export → HIPAA
- Download JSON file
The export includes:
- PHI access events
- User authentication events
- Access control decisions
CSV Export
For general analysis:
- Navigate to Audit Log
- Apply any filters needed
- Click Export CSV
Access Reviews
Quarterly Access Review
List team members:
- Dashboard → Teams → Expand each team
- Note members and their roles
Review for:
- Departed employees (should be removed)
- Role appropriateness (least privilege)
- Inactive accounts
Take action:
- Remove departed members
- Downgrade excessive roles
- Document review completion
Checking API Tokens
- Go to team settings → API Tokens
- Review each token:
- Is it still needed?
- Who created it?
- When was it last used?
- Revoke unused tokens
Audit Log Management
Retention
| Plan | Retention |
|---|---|
| Developer | 7 days |
| Team | 90 days |
TIP
For longer retention, export audit logs regularly and store in your compliance archive.
Alert-worthy Events
Monitor your audit logs for these events
| Event | Concern |
|---|---|
Multiple login_failed | Brute force attempt |
secret.accessed (production) | Verify authorized access |
member_invited (admin role) | Privilege escalation |
2fa_disabled | Security downgrade |
| Unfamiliar IP addresses | Unauthorized access |
Incident Response
Compromised Secret
Immediate actions required
- Rotate immediately — Dashboard → Secrets → Rotate, or via API for automation
- Review audit logs — Who had access? When? From what IP addresses?
- Assess impact — What systems use this secret? Was there unauthorized access?
- Document incident — Timeline, actions taken, lessons learned
Compromised Account
Immediate actions required
- Revoke sessions immediately — Profile → Security → Revoke all sessions
- Reset password — Or require passkey-only authentication
- Review audit logs — What did the account access? Were any secrets exported?
- Rotate affected secrets — Assume compromise, rotate all secrets the account had access to
- Report to team — Notify security team, document for compliance
Compromised API Token
Immediate actions required
- Revoke immediately — Team settings → API Tokens → Revoke
- Create new token — With fresh credentials
- Update configurations — CI/CD systems, automated scripts
- Review token usage — Check audit logs for unauthorized access
Troubleshooting
"Authentication required"
bash
varsafe login"Permission denied"
Check:
- Team membership exists
- Role permits the action
- Environment is not protected (for members)
"Project not found"
Either:
- Create the project in dashboard
- Use
varsafe useto set context - Specify with
-pflag
"Rate limited"
Wait and retry. If persistent:
- Check for automation running too frequently
- Contact support for limit increase