Ref: docs/suggestions.md A12
Problem
VaultStorage only offers single-record get, put, delete. AuthService.revoke() loops calling logout() → store.delete() per connection (non-atomic: a crash mid-revoke leaves partial state). list_connections() calls vault.get() N times in a loop, one SQLite query per connection.
Solution
Add get_many(keys: list[str]) -> dict[str, str | None] and delete_many(keys: list[str]) -> int to VaultStorage (interfaces.py) with a SQLite implementation using a single transaction. revoke() and list_connections() use them.
Files
store/interfaces.py — add get_many, delete_many to VaultStorage
store/local.py — implement with single-transaction SQLite
auth/service.py:revoke() and list_connections() — use batch methods
Ref: docs/suggestions.md A12
Problem
VaultStorageonly offers single-recordget,put,delete.AuthService.revoke()loops callinglogout()→store.delete()per connection (non-atomic: a crash mid-revoke leaves partial state).list_connections()callsvault.get()N times in a loop, one SQLite query per connection.Solution
Add
get_many(keys: list[str]) -> dict[str, str | None]anddelete_many(keys: list[str]) -> inttoVaultStorage(interfaces.py) with a SQLite implementation using a single transaction.revoke()andlist_connections()use them.Files
store/interfaces.py— addget_many,delete_manytoVaultStoragestore/local.py— implement with single-transaction SQLiteauth/service.py:revoke()andlist_connections()— use batch methods