Credential Lifecycle
Create
Section titled “Create”- User fills form in
AddCredentialModal. - Secret fields are packaged by
useEncryption().encryptCredential()using a type-scoped payload (only fields relevant to selectedcredential_typeare encrypted). - Encrypted blob is written to
credentials.secret_blob. - Metadata is stored alongside encryption timestamp.
Update
Section titled “Update”EditCredentialModalloads row metadata and decrypts existingsecret_blobif vault is unlocked.- Updated secret values are re-encrypted.
- Update payload explicitly includes valid DB columns.
Reveal
Section titled “Reveal”- Edit flow (
EditCredentialModal) decryptssecret_blobwhen vault is unlocked and pre-fills form values. - Detail flow (
CredentialDetailModal) decryptssecret_blobwhen vault is unlocked and exposes reveal/copy controls for type-relevant sensitive fields. - If the vault is locked, detail view shows a helper message prompting unlock before revealing encrypted values.
Document-specific behavior
Section titled “Document-specific behavior”- Uploaded document credentials store encrypted content + metadata in
secret_blob. - Detail view always provides secure download for document credentials.
- Inline preview is available for text-like document types; binary formats are download-only.
Delete
Section titled “Delete”CredentialDetailModaldeletes row byidafter user confirmation.
Search and filter
Section titled “Search and filter”- In-memory filtering by title, description, category, type, and tags.
- Category list merged from default and user-specific categories.
Compatibility notes
Section titled “Compatibility notes”Some legacy plaintext-oriented fields/components still exist; current expected secure path is secret_blob driven.