From d6a7588d22dfd46e2377f8dba5d605e886eb3b08 Mon Sep 17 00:00:00 2001 From: Humaid Khan Date: Sat, 25 Apr 2026 16:08:27 +0400 Subject: [PATCH] Remove immutable to allow wal checkpoints (#916) Fixes https://github.com/calibrain/shelfmark/issues/915 ## Description Remove immutable=1 to allow wal checkpoints to fire and get latest auth info. Note db is still in readonly mode, thanks to mode=ro ## Test case 1. Run CWA/CW 2. Change Admin password from admin/admin123 to anything else 3. Run shelfmark with CWA db auth 4. Shelfmark should be able to login after password change Co-authored-by: Humaid Arif Khan --- shelfmark/core/admin_routes.py | 2 +- shelfmark/main.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shelfmark/core/admin_routes.py b/shelfmark/core/admin_routes.py index 16da5e9..b969d00 100644 --- a/shelfmark/core/admin_routes.py +++ b/shelfmark/core/admin_routes.py @@ -134,7 +134,7 @@ def _sync_all_cwa_users(user_db: UserDB) -> dict[str, int]: raise FileNotFoundError(msg) db_path = os.fspath(CWA_DB_PATH) - db_uri = f"file:{db_path}?mode=ro&immutable=1" + db_uri = f"file:{db_path}?mode=ro" conn = sqlite3.connect(db_uri, uri=True) try: cur = conn.cursor() diff --git a/shelfmark/main.py b/shelfmark/main.py index 777fbea..fc63a35 100644 --- a/shelfmark/main.py +++ b/shelfmark/main.py @@ -2091,7 +2091,7 @@ def api_login() -> Response | tuple[Response, int]: try: db_path = os.fspath(CWA_DB_PATH) - db_uri = f"file:{db_path}?mode=ro&immutable=1" + db_uri = f"file:{db_path}?mode=ro" conn = sqlite3.connect(db_uri, uri=True) cur = conn.cursor() cur.execute("SELECT password, role, email FROM user WHERE name = ?", (username,))