Canonical subject id (the provider-resolved senderId). Opaque.
Namespace that groups keys ('default' for ctx.user).
Top-level key inside the namespace (first segment of a dot path).
JSON-compatible value.
OptionalexpiresEpoch ms after which the entry counts as absent. undefined = never
expires. Always a safe integer when written by ctx.user (BIGINT columns
and Redis PX reject fractions).
Epoch ms of the last write (integer).
One persisted per-user profile entry — the storage unit behind
ctx.user.The atomic unit is a TOP-LEVEL key inside a namespace:
ctx.user.set('address.city', …)reads and rewrites the wholeaddressentry, while two different top-level keys never touch each other.valueis JSON-compatible data (stores persist it as JSON and hand back a fresh copy on every read).userId,namespaceandkeyare compared as EXACT strings: case, accents and leading or trailing whitespace all make a different entry.