Vaults & Entries
Vaults are the primary containers for secrets in Argon. Each vault holds entries (logins, notes, cards, identities, files) organized by folders and tags.Vault Types
A user’s first vault is personal and created automatically at registration. Team vaults are created by Managers, Admins, or Owners and shared with team members via ACL grants.
Entry Types
Every vault entry has a type that determines its schema:
All entry payloads are encrypted with a per-entry DEK using XChaCha20-Poly1305. The server sees only the entry type, vault association, tags, and timestamps — never the contents.
Folders
Vaults support a nested folder hierarchy for organization:- Folders belong to a vault and can be nested via
parent_id. - Moving an entry between folders is a metadata-only operation — no re-encryption needed.
- Deleting a folder does not delete its entries (they move to the vault root).
Tags
Entries can be tagged with arbitrary labels for cross-folder organization:- Tags are per-entry, stored as a string array.
- List all unique tags in a vault via
ListTags. - Filter entries by tag via
ListEntries(tag: "production").
Favorites
Users can mark entries as favorites for quick access. Favorites are per-user — marking an entry as a favorite in a shared vault only affects your own view.Trash & Recovery
Deleted entries go to a per-vault trash with soft-delete:- Trash — Entry is marked with
deleted_atanddeleted_by. It no longer appears in normal listings but can be recovered. - Restore — Moves the entry out of trash, clears
deleted_at. - Empty Trash — Permanently deletes all trashed entries in a vault. Unrecoverable.
Entry Versioning
Every update to an entry creates a version snapshot:- View version history via
GetEntryHistory. - Each version stores the complete encrypted payload — no deltas, no merge conflicts.
- The current version is always the entry itself; historical versions are in the version store.
- Useful for auditing (“who changed the AWS root password and when?”) and accidental change recovery.
Storage
All vault data is stored in BoltDB (bbolt), an embedded key-value store:
BoltDB provides ACID transactions, file-level locking, and zero-configuration persistence. The entire database is a single file — easy to back up, easy to migrate.

