4cd382b8298a6eb10172233b991f2eda6aec4d9c
- e2e-crypto.ts: Argon2id key derivation (time=3, mem=64MB) + AES-256-GCM encrypt/decrypt + SHA-256 checksum + ADV1 blob packing (salt+IV+authTag+ciphertext) - backup-manager.ts: createBackup (WAL snapshot → encrypt → upload), restoreBackup (download → verify → decrypt → atomic file swap → reinit DB → notify renderer), getHistory, deleteBackup, schedulePeriodicBackup (setInterval, default 24h) - sync-queue.ts: enqueues failed backup intents in sync_queue table; processQueue retries up to 5×; triggered automatically on WS reconnect via onConnected() - backend-client.ts: uploadBackup (raw PUT /api/v1/backup with custom headers), downloadBackup (If-Modified-Since / 304 support), onConnected() event hook - auth-manager.ts: password cached in memory at login/register, cleared at logout, getCachedPassword() for BackupManager — never persisted to disk - store.ts: backupEnabled, backupIntervalHours, lastBackupAt settings - db/schema.ts: sync_queue table (id, action, payload, status, retries, timestamps) - db/index.ts: getRawSqlite() for .backup() API, getDbPath(), closeDb() for restore - router/index.ts: backupRouter (create/restore/history/delete/settings/updateSettings); login starts periodic backup; logout stops it - index.ts: backup scheduler wired to app lifecycle; will-quit cleans up timer - package.json: argon2 added Backend integration: PUT/GET /api/v1/backup already fully implemented; no backend changes needed. Tier gating (free=0, pro=5GB, power=25GB) enforced server-side. Backend only verifies SHA-256 checksum — never decrypts.
step 0.1 complete: Type-safe contracts for all backend communication and the batch/storage subsystem
Description
No description provided
Languages
TypeScript
97.9%
CSS
2%