Model
What secrets are used for
References use
${KEY} substitution at deploy time, or — in the case of HTTP monitor auth blocks — a typed secret: KEY field. Plain text is never written into the deployed monitor config.
Managing secrets
- Dashboard
- CLI
- YAML
- Open Settings → Secrets.
- Click Add Secret, enter a key + value.
- Save. The dashboard list shows keys and the SHA-256 hash — never the value.
Drift detection
The CLI never reads plaintext values back from the API. Instead, every secret has a server-computed SHA-256valueHash, and devhelm plan/devhelm deploy compares it to the hash of the value about to be written:
- Hashes match → secret is left alone.
- Hashes differ → secret is updated.
- Local definition removed but server still has it → CLI reports the secret as orphaned (and deletes it when you pass
--prune).
Security model
- Encryption at rest with envelope encryption (AES-256-GCM data keys, KMS-managed key encryption keys).
- Decryption only at use time — values are decrypted just-in-time inside the worker that executes a monitor check, then discarded.
- No read-back API. The API only exposes
GET /api/v1/secrets(list metadata) andPUT/DELETEon/api/v1/secrets/{key}. Even superadmins cannot retrieve plaintext via the API. - Audit logged. Create, update, delete, and resolution-failure events are written to the org audit log.
- Use API key rotation for keys that gate access to the vault itself.
Lifecycle notes
- Deleting a secret that is still referenced by a monitor is allowed — the monitor will start failing at next check with a credential-resolution error. Treat secret deletion the same as any breaking config change.
- Updating a value is instant: the next check picks up the new value without redeploying the monitor.
- Secret keys are case-sensitive.
api_tokenandAPI_TOKENare different secrets.
Next steps
Authenticated endpoints guide
Use secrets to monitor protected APIs.
YAML — Tags & Secrets
Define secrets in monitoring-as-code.
Environments
Variable namespaces for monitors.
secrets CLI
Manage from the command line.