AutoReport
Links a SavedView to a scheduled delivery.
Indie mode: created in Desk UI, stored in DB. Users configure via UIonce 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
Section titled “Fields”| Field | Type | Required | Description | Validators |
|---|---|---|---|---|
| name | str | ✓ | Unique identifier for the auto report (e.g., ‘weekly_revenue’) | minLen: 1, maxLen: 255 |
| saved_view | str | ✓ | Name of the SavedView to execute | minLen: 1, maxLen: 255 |
| cron_expression | str | ✓ | CRON expression for schedule (e.g., ‘0 8 * * 1’) | minLen: 1, maxLen: 255 |
| format | Literal[“csv”, “pdf”] | Output format for the report | - | |
| recipients | str | JSON-encoded list of recipient email addresses | - | |
| subject | None | Optional email subject template | maxLen: 255 | |
| enabled | bool | Whether this auto report schedule is currently active | - | |
| last_run | None | Timestamp of the last successful run | - |
Permissions
Section titled “Permissions”| Role | Create | Delete | Read | Write |
|---|---|---|---|---|
| Admin | ✓ | ✓ | ✓ | ✓ |
| Manager | ✓ |
Configuration
Section titled “Configuration”| Setting | Value |
|---|---|
| Submittable | False |
| Track Changes | True |
Controller
Section titled “Controller”Controller hooks are implemented in *_controller.py files.
Available lifecycle hooks:
validate()- Called before save, raise exceptions for validation errorsbefore_insert()- Called before inserting a new documentafter_insert()- Called after successfully insertingbefore_save()- Called before saving (insert or update)after_save()- Called after savingbefore_delete()- Called before deletingafter_delete()- Called after deleting