Exemple 1 — Archive SAV Polaris
Une archive.sav est un dump SQL Polaris. La spécification extrait les tables SQL, puis exécute une promotion par dataset de sortie. Deux sont montrées : brands et inventory_items.
- La détection se conditionne sur la source de données Polaris et un nom de fichier
.sav. - La promotion brands se termine par
generate_idpuisid_mapping_output— publiant un mapping code→idbrandsque d’autres promotions peuvent résoudre. - La promotion inventory_items enchaîne les
sequential_joinpour rassembler des champs sur les tables, résout la variante et le magasin viaid_mapping_join, mappe le label de taille en id de taxonomie, et finalement génère son propre id.
Exemple 2 — Tickets Ginkoia (Excel)
Une export Excel de lignes de tender-paiement. Notez l’option de parsersection_context et la promotion d’enrichissement update_columns.
- La détection combine un filtre par source de données, un regex de nom de fichier, et une vérification
header_containssur les colonnes attendues. - Le
section_contextporte les en-têtes de section « Magasin » / « Poste » vers le bas sur chaque ligne. - La promotion customers est un enrichissement ciblé :
update_columnslimite l’upsert àpostal_code(etupdated_at), donc elle remplit les codes postaux sans écraser le reste d’une ligne client existante. Les deux étapesfiltergarantissent que seules les lignes valides et résolubles sont écrites.
Les vrais specs de seed vivent sous
scripts/db/seeds/seed-data/ingestion-specs/<system>/. Les nouvelles
spécifications sont validées au moment du seed (incluant les codes data_source).
