SQLModel#
await create_all(engine)
async with open_workspace(engine) as workspace:
...
Registration store#
SqlRegistrationStore(
session,
credentials_model=CredentialsModel,
profile_model=ProfileModel,
session_model=SessionModel,
)
Session store#
SqlSessionStore(
session,
account_id,
session_model=SessionModel,
codec=None,
kind="custom",
models=DEFAULT_MODELS,
)
SqlSessionStore реализует нейтральный SessionStore с load, save и invalidate. save
проверяет CAS revision и атомарно записывает session payload вместе с account event.
open_workspace(engine) владеет transaction блока, но не engine. Успешный block commit-ится,
исключение rollback-ится. Lifecycle stores используют отдельный AsyncSession, фиксируют каждый
state/event boundary и отклоняют явную outer transaction.
Schema содержит accounts, sessions, verifications, account links и append-only events. Default
Pydantic codecs сохраняют payload как plaintext JSON; encryption at rest является обязанностью
приложения или custom SqlValueCodec.