- API playgrounds that need the key to call an API
- Better DX for your users, it’s annoying to create a new key and update it everywhere
Vault
Vault is our secure storage for secrets, such as keys. It follows a few principles:- Secrets are encrypted at rest
- A leak of vaults data does not expose secrets
- A leak of the main database does not expose secrets
- A leak of the main encryption keys does not expose secrets
Opting in
By default we only store key hashes, not encrypted keys. If you want us to store keys in a way that we can recover them, you need to opt in:1
Root key permissions
When creating new keys, your root key must have permission to encrypt. Head over to the dashboard and make sure the
encrypt_key
permission is enabled.Do not skip this step. Otherwise your root key will get rejected when trying to create new keys.2
Contact us
To opt in to recovery, send us an email at support@unkey.dev.
Send us the email from the email address associated with your workspace and include the
API ID
that you want to enable recovery for.Please note that this is not retroactively applied. Existing keys were never stored and cannot be recovered. Only keys created after opting in to recovery can be recovered.
Creating keys
When creating a key, you can set therecoverable
field to true
. This will store the key in a way that we can recover it later.
Recovering plaintext keys
Both the getKey and listKeys endpoints accept adecrypt
query parameter. If you set this to true
, the key will be decrypted and returned in the response as plaintext
.
When recovering keys, your root key must have permission to decrypt. Head over to the dashboard and make sure the
decrypt_key
permission is enabled.If you have any questions about recovery, please reach out to us at support@unkey.dev.For security concerns, please disclose them responsibly by emailing security@unkey.dev instead.