jmaple.db¶
The SQLAlchemy declarative base and the JMAPObject mixin that every JMAP
data model extends.
Base ¶
Bases: DeclarativeBase
Shared SQLAlchemy declarative base. All jmaple + plugin models extend this.
JMAPObject ¶
Standardises the core columns for a JMAP data object.
DataChange ¶
Bases: Base
One row per create/update/destroy event across every capability.
Partitioned by data_type (the JMAP type name — "Note", "Bookmark",
"Mailbox" …) so <Type>/changes queries pull only its own events.
UTCDateTime ¶
Bases: TypeDecorator[datetime]
Stores naive UTC in the DB; always reads back as a tz-aware UTC datetime.
SQLite drops timezone info, so we coerce on load to keep type guarantees consistent regardless of backend.