SQLite

Use a SQLite database as a Kloset store.

Latest v1.1.0 · Oct 21, 2026
Documented 1 release

v1.1.0

stable

Creates new repository databases with restricted permissions and reports failed writes, lock renewals and connection setup instead of ignoring them.

Security

  • The repository database file is now created with mode 0600, and the -wal and -shm files inherit it. This applies only when the repository is created. An existing database keeps its permissions. (#182)

Fixes

  • A failure to set journal_mode=WAL or busy_timeout is now returned as an error, and the connection is closed. Before, the connection was reported as successful while left unconfigured, and a lost busy_timeout made a contended database fail at once with SQLITE_BUSY.
  • Writing a packfile or state that already exists now fails. Before, the constraint error was ignored and the write looked successful. (#209)
  • Renewing a lock now updates its stored data. Before, the renewal hit the constraint and was ignored, so the old data stayed. (#209)
  • The SQLite backend was registered twice, once without flags and once with the local-file flags. Only the local-file registration remains.