Skip to main content

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:
  1. Trash — Entry is marked with deleted_at and deleted_by. It no longer appears in normal listings but can be recovered.
  2. Restore — Moves the entry out of trash, clears deleted_at.
  3. 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.