Skip to main content

CSV Export

CSV Export allows users to generate downloadable CSV files from application data using a query-driven, join-aware form.

Unlike basic table exports, CSV Export supports:

  • Foreign key expansion
  • Multi-table joins
  • Explicit column selection
  • Safe, deterministic query generation

Exports are streamed directly from the database and downloaded to the user’s device.


What Is CSV Export?

CSV Export is a snapshot output.

Each export:

  • Represents data at a specific point in time
  • Produces a file for external use
  • Does not stay linked to live application data

CSV Export is ideal for reporting, analysis, and sharing structured data outside the application.


Opening the CSV Export Form

The CSV Export form can be opened from:

  • Quick Actions → Export CSV
  • (Future) Table views and admin utilities

The form is self-contained and handles the full export process.


Core Concepts

Base Table

The base table is the starting point of the export query.

  • All joins originate from this table
  • All rows in the export are derived from it
  • Base table columns appear first in the column list

Column Selection

Only selected columns are included in the export.

This ensures:

  • Minimal, intentional data output
  • Predictable CSV structure
  • No accidental data leakage

Unchecked columns are not queried or exported.


Foreign Key Expansion

Columns representing foreign keys may be expanded.

When expanded:

  • Related table columns become selectable
  • A LEFT JOIN is created automatically
  • Multiple levels of relationships may be explored

This allows exporting:

  • Names instead of IDs
  • Related metadata
  • Flattened, denormalized datasets

Join Behavior

All joins generated by CSV Export are:

  • LEFT JOINs
  • Deterministic and deduplicated
  • Automatically aliased

This ensures:

  • No accidental row loss
  • Predictable query results
  • Safe handling of optional relationships

Column Tree Interface

Columns are displayed in a recursive tree:

  • Base table columns appear at the top level
  • Foreign key columns can be expanded
  • Related table columns appear nested

Users can:

  • Search base table columns
  • Expand or collapse relationships
  • Select fields at any depth

Each selected field becomes a column in the CSV.


Output Format

CSV Structure

Each exported CSV includes:

  • A header row
  • One row per database record
  • Flattened values from joined tables

Column names follow a predictable pattern:

relatedtable__column