Skip to content

Tutorial: Onboarding a New Tenant

In this tutorial you will onboard a new client from scratch: receive their data, create a tenant instance, run the extraction and build pipeline, explore the results, and freeze a snapshot. This is the workflow a consultant follows when starting with a new client.

Time: 15 minutes Prerequisites: jinflow installed (Quick Start)

A new winery — Domaine Nouveau — wants to use your analytical framework. They’ve sent you an Excel export from their ERP system. You need to turn this into a working analytical environment.

The DLZ is where raw source data arrives, separate from jinflow’s working directories.

Terminal window
# Configure your DLZ root (one-time)
jinflow us --dlz ~/jinflow-datalandingzone
# Create the tenant's DLZ directory
mkdir -p ~/jinflow-datalandingzone/millesime/domaine_nouveau/custom/csv/

Place the client’s CSV files (or XLSX for extraction) in this directory:

jinflow-datalandingzone/
millesime/
domaine_nouveau/
custom/
csv/
parcels.csv
harvests.csv
wines.csv
...
Terminal window
jinflow init --pack millesime --tenant domaine_nouveau \
--source-system custom \
--dlzroot ~/jinflow-datalandingzone \
--display-name "Domaine Nouveau"

This creates a tenant instance in your live root:

~/.jinflow/live/millesime/domaine_nouveau/
afs/ ← copy of the millesime pack (signals, theses, dbt, etc.)
raw/ ← empty, waiting for data
build/ ← empty
store/ ← empty

Set it as your default:

Terminal window
jinflow us --tenant millesime.domaine_nouveau

If the client sent XLSX files, extract them first:

Terminal window
jinflow make --extract # XLSX → CSV in DLZ, then sync to raw/

If they sent CSVs directly:

Terminal window
jinflow make --sync # copy CSVs from DLZ to raw/

Verify the data landed:

Terminal window
jinflow stat

This shows gold layer counts, signal counts, and health checks. On a fresh sync before the first build, it will show the CSV file counts in raw/.

Terminal window
jinflow make

The full pipeline runs:

  1. Validate and enrich CSVs
  2. Compile all instruments from the pack
  3. dbt build (Bronze → Silver → Gold → Signals → Theses → Verdicts)
  4. Generate reports and pipeline graph
  5. Stamp KLS and create SIS

Watch the output — if any CSVs fail validation, the error messages will tell you exactly what’s wrong (missing columns, wrong types, etc.).

Terminal window
jinflow explore

Browse the results at localhost:4000:

  • Overview — confirmed theses, total exposure
  • Findings — what the signals detected
  • Theses — which business questions have evidence
  • Dimensions — browse the client’s actual data

This is the moment you show the client: “Here’s what we found in your first dataset.”

Happy with the initial analysis? Freeze it:

Terminal window
jinflow make --snapshot onboarding

This creates an immutable snapshot you can always return to:

Terminal window
jinflow explore --snapshot onboarding # revisit anytime

If a colleague needs to work on this tenant:

Terminal window
# You: push the AFS to GitHub
jinflow afs remote https://github.com/org/afs-millesime-domaine_nouveau.git
jinflow afs push -m "Initial onboarding complete"
# Colleague: clone and build
jinflow init --clone https://github.com/org/afs-millesime-domaine_nouveau.git
jinflow make --tenant millesime.domaine_nouveau --sync

When the client sends new data:

Terminal window
# Place new CSVs in the DLZ
jinflow make --sync # sync new data
jinflow make # rebuild
jinflow make --snapshot # freeze if significant

When the pack is updated with new signals:

Terminal window
jinflow afs update --do-it # pull pack changes
jinflow make # rebuild with new instruments
  • DLZ is the intake boundary — raw data arrives here, never in the jinflow live root
  • jinflow init --pack copies a domain pack into a new tenant instance
  • --sync copies changed CSVs from DLZ to raw/; --extract converts XLSX first
  • jinflow stat shows what’s in the KLS before and after builds
  • Snapshots freeze your work — clients can see their onboarding state anytime
  • AFS push/pull enables team collaboration on the same tenant
jazzisnow jinflow is a jazzisnow product
v0.45.1 · built 2026-04-17 08:14 UTC