Example 1 — Polaris SAV archive
A.sav archive is a Polaris SQL dump. The spec extracts SQL tables, then runs one
promotion per output dataset. Two are shown: brands and inventory_items.
- Detection gates on the Polaris data source and a
.savfilename. - The brands promotion ends with
generate_idthenid_mapping_output— publishing abrandscode→id mapping that other promotions can resolve. - The inventory_items promotion chains
sequential_joins to gather fields across tables, resolves the variant and shop viaid_mapping_join, maps the size label to a taxonomy id, and finally generates its own id.
Example 2 — Ginkoia tickets (Excel)
An Excel export of payment-tender lines. Note thesection_context parser option and the
update_columns enrichment promotion.
- Detection combines a source-code gate, a filename regex, and a
header_containscheck on the expected columns. section_contextcarries the “Magasin” / “Poste” section headers down onto each row.- The customers promotion is a targeted enrichment:
update_columnslimits the upsert topostal_code(andupdated_at), so it backfills postal codes without overwriting the rest of an existing customer row. The twofiltersteps ensure only valid, resolvable rows are written.
Real seed specs live under
scripts/db/seeds/seed-data/ingestion-specs/<system>/. New
specs are validated at seed time (including the data_source codes).
