Skip to main content

UserPreferences

User preferences and settings.

Stores user-specific configuration like theme, language,
notification preferences, etc.

Used by both Indie and Federated modes:
- Indie: Linked to LocalUser
- Federated: Linked by user_id from auth gateway

Attributes:
user_id: Reference to user (string ID for flexibility)
settings: JSON dict of preference key-value pairs

Example:
prefs = UserPreferences(
user_id="user-123",
settings={
"theme": "dark",
"language": "en",
"notifications_enabled": True,
},
)

Source: user.py

Fields​

FieldTypeRequiredDescriptionValidators
user_idstrUser identifier-
settingsdict[str, Any]User preference key-value pairs-

Permissions​

RoleCreateDeleteReadWrite
All✓✓✓✓

Configuration​

SettingValue
SubmittableFalse
Track ChangesTrue

Controller​

Controller hooks are implemented in *_controller.py files. Available lifecycle hooks:

  • validate() - Called before save, raise exceptions for validation errors
  • before_insert() - Called before inserting a new document
  • after_insert() - Called after successfully inserting
  • before_save() - Called before saving (insert or update)
  • after_save() - Called after saving
  • before_delete() - Called before deleting
  • after_delete() - Called after deleting