Meadow-Integration Pipeline Demo

meadow-integration › example-applications/mapping-demo
LIVE

Step 1 — Parse

Read data/books-sample.csv and parse into raw records

The first stage reads a CSV file and parses it into an array of plain JavaScript objects keyed by column header. No transformation is applied — this is the raw source data.

Result

Step 2 — Map

Load mappings/books-to-book.json — defines how CSV columns become entity fields

A mapping file declares the target Entity, a GUIDTemplate (unique stable key per record), and a Mappings object where each value is a Pict template expression that produces the target field value from the source record. Literal values like "Classic" are valid alongside template expressions.

Result

Step 3 — Visual Mapping Editor

Wire CSV source fields to Book entity columns using the flow canvas

The Visual Mapping Editor lets you draw connections between source fields (CSV columns) and target columns (Book entity schema) on an interactive flow canvas. Add TPL nodes (purple) to apply Pict template expressions like {~D:Record.title~}, or SOL nodes (orange) for conditional solver expressions. Click Save Mapping to apply the wiring to the pipeline — the Transform step will use your visual mapping.

Click Open Editor to launch the visual flow mapper.
Requires a built bundle — run npm run build in this directory first.
Result

Step 4 — Transform (Comprehension)

Run TabularTransform to produce a comprehension from the mapped records

TabularTransform applies the mapping configuration to each raw record and builds a comprehension — a deduplicated dictionary keyed by GUID. The comprehension is the canonical intermediate format in the meadow-integration pipeline. Duplicate GUIDs are merged; bad records (empty GUIDs) are tracked separately. If you saved a visual mapping in Step 3, it will be used here instead of the static JSON config.

Result

Step 5 — Load (IntegrationAdapter)

Push the comprehension into the bookstore database via IntegrationAdapter

IntegrationAdapter iterates the comprehension and calls the Meadow REST API for each record: GET by GUID to check existence, then POST (create) or PUT (update). GUIDs are tracked in the GUIDMap so re-runs are idempotent upserts. The bookstore API is powered by meadow-endpoints on an in-memory SQLite database.

Result

Step 6 — Verify

Read the loaded books back from the bookstore database

After loading, query the database directly to confirm the records are persisted. You can also hit the live Meadow-Endpoints API at GET /1.0/Books/0/20 to see the full record structure with auto-generated IDs, audit timestamps, and GUIDs.

Result