sovseal uses a cryptographically blinded authentication mechanism. Because we operate on a zero-knowledge threat model, the server never learns your raw encryption keys. Authentication keys are mapped to projects and used exclusively to authenticate Layer-A API request headers.
When sending requests, the client hashes the API key before sending it to the edge function. The edge function verifies sha256(project_id || ":" || key). This prevents the server from learning the raw token value.
If an API key is compromised, follow this immediate mitigation guide:
Immediate Revocation: Visit the API Keys section of the dashboard and select Revoke on the compromised key. The key will be marked as revoked at the edge database immediately (response code 401 api_key_revoked).
Local Key Wiping: Wipe local state. The API token lives in ~/.sovseal/config.json; the encryption master key lives in the OS keychain (0.3.5+). Remove both:
rm ~/.sovseal/config.json# macOS: remove the keychain entry (service "sovseal", account "master")security delete-generic-password -s sovseal -a master
If you ran with SOVSEAL_KEY_FALLBACK=file, delete the fallback key file under ~/.sovseal/ instead.
Emergency Key Rotation: For teams sharing context via team collaboration:
Revoking a member deletes their key grants.
Trigger a Data Encryption Key (DEK) rotation from the settings panel.
The remaining members' keys are re-wrapped using a newly generated DEK, rendering the leaked key unable to decrypt history even if they pulled the raw ciphertexts.