Guide Tenants
jinflow est multi-tenant. Chaque tenant est un espace de travail analytique indépendant avec ses propres données, AFS et KLS.
Structure du tenant
Section intitulée « Structure du tenant »live_root/ millesime/ domaine_zufferey/ afs/ ← analytical framework (copy of pack + tenant-specific additions) raw/ ← immutable source CSVs (from DLZ) build/ ← intermediaries (compiled SQL, enriched CSVs) store/ ← KLS + SIS + logs + snapshotsID qualifiés par pack
Section intitulée « ID qualifiés par pack »Toutes les commandes utilisent la notation pack.tenant :
jin make --tenant millesime.domaine_zuffereyjin explore --tenant millesime.domaine_zuffereyjin afs update --tenant millesime.domaine_zuffereyCréer un tenant
Section intitulée « Créer un tenant »# From a pack name (resolved via pack_root)jin init --pack millesime --tenant domaine_new --source-system opale
# From a pack pathjin init --pack /path/to/jinflow-pack-millesime --tenant domaine_new --source-system opaleCela crée live_root/millesime/domaine_new/ avec :
afs/— copie du packraw/,build/,store/— vides, prêts pour les données
Synchronisation Pack → Tenant
Section intitulée « Synchronisation Pack → Tenant »Quand le pack est mis à jour (nouveaux Signals, Theses, etc.) :
# Dry-run (see what would change)jin afs update --tenant millesime.domaine_zufferey
# Apply changesjin afs update --tenant millesime.domaine_zufferey --do-it
# All tenants across all packsjin afs update --all --do-it
# Force pack version on conflictsjin afs update --tenant millesime.domaine_zufferey --do-it --forceSynchronisation three-way : le manifeste de base du pack suit ce qui a été synchronisé en dernier. Si le pack et le tenant ont modifié le même fichier → conflit (pas écrasé sauf --force).
Construction
Section intitulée « Construction »jin make --tenant millesime.domaine_zufferey # build one tenantjin make --pack millesime # all tenants in packjin make --all # all tenants, all packsjin make --all --sync # sync DLZ + buildjin make --tenant millesime.domaine_zufferey --extract # Excel → CSV → sync → buildjin make --tenant millesime.domaine_zufferey --clean # clear intermediaries, full rebuildFlux de données
Section intitulée « Flux de données »Cloner un tenant
Section intitulée « Cloner un tenant »jin clone --source millesime.domaine_zufferey --name experiment# Creates: millesime.domaine_zufferey_experiment (shares DLZ with source)Snapshots
Section intitulée « Snapshots »jin make --snapshot # auto-tag: YYYYMMDD-HHMMjin make --snapshot post-audit # named tagLes snapshots sont immuables — make refuse de les écraser.
Configuration
Section intitulée « Configuration »# Set default tenantjin us --tenant millesime.domaine_zufferey
# Show current configjin usSortie :
Live root: /path/to/jinflow-live Pack root: /path/to/jinflow-packhub (4 packs) DLZ: /path/to/jinflow-datalandingzone (ok) Current tenant: millesime.domaine_zuffereyMulti-pack
Section intitulée « Multi-pack »Chaque pack est un domaine analytique indépendant. Les tenants appartiennent à un pack :
live_root/ millesime/ ← winemaking analytics domaine_zufferey/ domaine_clavien/ alptrack/ ← ski resort analytics resort_alpine/ resort_glacier/Les packs sont développés indépendamment (dépôts git séparés) et synchronisés vers les tenants via jin afs update.
v0.45.1 · built 2026-04-17 08:14 UTC