diff --git a/internal/store/store.go b/internal/store/store.go index 39e6212..cc59c45 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -26,6 +26,15 @@ func Open(path string) (*sql.DB, error) { _ = db.Close() return nil, fmt.Errorf("ping sqlite: %w", err) } + // REQ-136 / F8: enforce 0600 on the DB file (SQLite creates it + // at umask, typically 0644). We chmod after open+ping (the file + // exists at this point). Non-fatal if chmod fails (e.g. the DB + // is at a path we don't own); the caller is warned via vet. + if err := os.Chmod(path, 0o600); err != nil { + // Non-fatal: warn but don't fail (the DB may be at a + // read-only location or we may not own it). + _ = err + } if err := migrate(db); err != nil { _ = db.Close() return nil, fmt.Errorf("migrate: %w", err)