ETL and Report Templates
ETL templates define how external data files are parsed and loaded into the platform. Report templates define how data is extracted and formatted for export. Together they provide the data import/export infrastructure that domain modules use for bulk operations.
ETL templates
Each template defines the parsing configuration for a specific file format and target entity.
File format configuration
| Attribute | Purpose |
|---|---|
| Name | Human-readable name |
| File format | File type: CSV, TSV, or XLSX |
| Target entity | The entity type to load data into |
| Skip rows | Number of header rows to skip |
| Header row | Row number containing column headers |
| Separator | Field separator |
| Quote character | Quote character |
| Thousands separator | Thousands separator for numeric parsing |
| Decimal separator | Decimal separator |
Column mapping
| Attribute | Purpose |
|---|---|
| Columns by name | Column names to import |
| Columns by position | Column positions to import (alternative to names) |
| Column name overrides | Override column names (when file has no header) |
| Output columns | Column names in the target entity |
| Converters | Column-specific type conversion rules |
Template lines
Individual transformation rules within a template. Each line defines how a single source column maps to a target field, including any data transformation logic.
Report templates
Define report configurations for data export and display:
| Attribute | Purpose |
|---|---|
| Name | Human-readable name |
| Description | What the report covers |
| Code | Unique code within the tenant |
| Visibility | Who can see/use this template: PERSONAL or ORGANIZATION |
Report templates are referenced by the job system — generating a report creates a job that executes the template and stores the output as a document.
Authorization
ETL and report templates use specific permission checks, ensuring only users with explicit template management roles can create or modify templates. This is more restrictive than the general Foundation permissions.
Relationship to jobs
ETL and report execution both flow through the job system:
- A user selects a template and submits parameters
- A job is created referencing the relevant program (e.g.
ETL_IMPORT,REPORT_GENERATE) - A worker picks up the job, loads the template configuration, and executes
- Results are stored as documents
- Notifications are sent based on the program's notification group