Architecture
Persistence And Data Model
SQLite migrations, normalized tables, JSON metadata columns, and TypeScript persistence helpers.
SQLite tables
- projects
- env_files
- variables
- audit_logs
- profiles
- imported_env_files
- profile_variables
Serialized project metadata
Larger history and sync artifacts are stored as JSON columns on projects, including excluded env file paths, last sync diff, deleted env file snapshots, project snapshots, latest profile import summary, and deleted profile variable snapshots.
Persistence flow
- Tauri registers SQLite migrations through the SQL plugin.
- The frontend loads projects from the database on startup when running in Tauri.
- Project mutations replace project metadata in SQLite.
- Raw secret values are not written to SQLite in the Tauri app.
- Runtime CLI opens the same database in read-only mode.
Migrations
The current migration set creates the core tables, adds audit log preservation, adds .gitignore and excluded env file metadata, adds history and schema metadata, creates runtime profile tables, and adds advanced profile variable workflow metadata. App Lock configuration is stored through named Keychain storage rather than SQLite.