jinflow make
La commande make est le pipeline de build. Elle compile les instruments YAML, exécute dbt et produit le KLS.
Utilisation de base
Section intitulée « Utilisation de base »jin make # build current tenantjin make --tenant millesime.domaine_zufferey # build a specific tenantjin make --pack alptrack # build all tenants in a packjin make --all # build all tenants across all packsSynchronisation de données (—sync)
Section intitulée « Synchronisation de données (—sync) »--sync copie les CSV depuis la Data Landing Zone (DLZ) dans le répertoire raw/ du tenant avant la construction. Seuls les fichiers modifiés sont copiés (comparaison SHA-256 contre le manifeste précédent).
jin make --sync # sync DLZ → raw → buildjin make --all --sync # all tenants, only copy changed CSVsjin make --tenant millesime.domaine_zufferey --sync # single tenant with syncExtraction (—extract)
Section intitulée « Extraction (—extract) »--extract exécute les scripts d’extraction spécifiques au système source (par ex. Excel → CSV) dans la DLZ avant la synchronisation. Implique --sync.
jin make --extract # extract Excel → CSV → sync → buildjin make --all --extract # extract + sync + build all tenantsTous les systèmes source n’ont pas de pipelines d’extraction. Les tenants sans pipeline sautent l’extraction et passent à la synchronisation.
Clean (—clean)
Section intitulée « Clean (—clean) »--clean supprime les artefacts de build intermédiaires (SQL compilé, CSV enrichis) et force un rebuild complet. Ne touche pas l’AFS ou les données brutes.
jin make --clean # clean rebuildjin make --tenant millesime.domaine_zufferey --clean # reset single tenantSnapshots (—snapshot)
Section intitulée « Snapshots (—snapshot) »--snapshot fige le KLS après un build réussi. Le snapshot est immuable — make refusera de l’écraser.
jin make --snapshot # auto-tagged: YYYYMMDD-HHMMjin make --snapshot post-audit # named snapshot| Flag | Effet |
|---|---|
--sync | Copier les CSV modifiés depuis DLZ → raw/ |
--prune | Supprimer les fichiers de raw/ qui n’existent plus dans DLZ (avec —sync) |
--extract | Exécuter les scripts d’extraction, conditionnel aux changements de fichiers Excel (implique —sync) |
--clean | Clean rebuild, supprimer les intermédiaires |
--snapshot [tag] | Figer le KLS après le build |
--all | Construire tous les tenants sur tous les packs |
--pack <name> | Construire tous les tenants d’un pack |
--tenant <id> | Construire un tenant spécifique (pack.tenant) |
--continue-on-error | Ne pas s’arrêter sur les erreurs compilateur/dbt |
--quiet | Supprimer la sortie dbt |
--skip-enrich | Sauter la phase d’enrichissement CSV |
--skip-validate | Sauter la validation de schéma CSV |
--metadata-only | Uniquement rebake les métadonnées (logo, branding, about) — sauter toutes les phases de build |
Phases de build
Section intitulée « Phases de build »0a Extract (--extract, source-system-specific)0b Sync from DLZ (--sync, copies changed CSVs to raw/)1a Validate CSVs (schema check against source system definition)1b Enrich CSVs (taxonomy generation, backfill, normalization)2 Compile (YAML → dbt SQL: signals, theses, verdicts, ...)3 dbt build (Bronze → Silver → Gold → Signals → Theses → ...)4 Post-build (pipeline graph, audit reports, PDF generation)5 Stamp + package (metadata, AFS archive, snapshot)Comportement conditionnel
Section intitulée « Comportement conditionnel »- —extract hache les fichiers Excel contre
_extract_manifest.json— saute l’extraction si inchangé - —sync ne copie que les CSV dont le hash SHA-256 diffère du manifeste de synchronisation précédent
- —prune supprime les fichiers de raw/ qui n’existent plus dans DLZ (défaut : avertissement uniquement)
- Les systèmes sans extraction sont ignorés avec un message info (pas de répertoire xslx/ → pas de pipeline d’extraction)
- Changements metadata-only auto-détectés : si seuls tenant.yml, about.yaml, logo ou jinflow.yml ont changé depuis le dernier build, rebake les métadonnées sans exécuter dbt. Aussi disponible via
--metadata-only - Builds incrémentaux réutilisent le KLS existant — dbt saute les modèles qui n’ont pas changé
- Builds échoués sont détectés à la reprise (stamp KLS manquant → démarrage frais automatique)
Exemples
Section intitulée « Exemples »# Daily routine: sync new data, rebuildjin make --all --sync
# After editing signals/theses: rebuild without re-syncing datajin make
# Fresh start after schema changesjin make --clean
# Just update logo/branding (no rebuild)jin make --metadata-only
# Freeze a good state before making changesjin make --snapshot before-refactor
# Build only the millesime packjin make --pack millesime --sync
# Extract new Excel files, sync, buildjin make --tenant millesime.domaine_zufferey --extract