DB cleanup continued: Made the working copy data public in DB class.

This commit is contained in:
Leo Vasanko
2026-01-27 18:02:16 +00:00
parent 7efd7e4e98
commit 1c4fda6aa2
7 changed files with 335 additions and 351 deletions
+16 -8
View File
@@ -199,17 +199,21 @@ class SessionContext(msgspec.Struct):
# -------------------------------------------------------------------------
class DatabaseData(msgspec.Struct, omit_defaults=True):
permissions: dict[UUID, Permission]
orgs: dict[UUID, Org]
roles: dict[UUID, Role]
users: dict[UUID, User]
credentials: dict[UUID, Credential]
sessions: dict[str, Session]
reset_tokens: dict[bytes, ResetToken]
class DB(msgspec.Struct, dict=True, omit_defaults=False):
"""In-memory database. Access fields directly for reads."""
permissions: dict[UUID, Permission] = {}
orgs: dict[UUID, Org] = {}
roles: dict[UUID, Role] = {}
users: dict[UUID, User] = {}
credentials: dict[UUID, Credential] = {}
sessions: dict[str, Session] = {}
reset_tokens: dict[bytes, ResetToken] = {}
v: int = 0
def __post_init__(self):
# Store reference for persistence (not serialized)
self._store = None
# Set the key fields on all stored objects
for uuid, perm in self.permissions.items():
perm.uuid = uuid
@@ -225,3 +229,7 @@ class DatabaseData(msgspec.Struct, omit_defaults=True):
session.key = key
for key, token in self.reset_tokens.items():
token.key = key
def transaction(self, action, ctx=None, *, user=None):
"""Wrap writes in transaction. Delegates to JsonlStore."""
return self._store.transaction(action, ctx, user=user)