Skip to main content

AutoReport

Links a SavedView to a scheduled delivery.

Indie mode: created in Desk UI, stored in DB. Users configure via UI
once the system is installed — no files needed.
Enterprise mode: defined in auto_reports/*.toml and version-controlled.
DB record wins over a virtual file.

Source: auto_report.py

Fields

FieldTypeRequiredDescriptionValidators
namestrUnique identifier for the auto report (e.g., 'weekly_revenue')minLen: 1, maxLen: 255
saved_viewstrName of the SavedView to executeminLen: 1, maxLen: 255
cron_expressionstrCRON expression for schedule (e.g., '0 8 * * 1')minLen: 1, maxLen: 255
formatLiteral["csv", "pdf"]Output format for the report-
recipientsstrJSON-encoded list of recipient email addresses-
subjectNoneOptional email subject templatemaxLen: 255
enabledboolWhether this auto report schedule is currently active-
last_runNoneTimestamp of the last successful run-

Permissions

RoleCreateDeleteReadWrite
Admin
Manager

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