apiVersion: connectors.lumnik.io/v1kind: Connectormetadata:name: scenario-order-items-bconnector_type: csv-filescopes: [logistics-b]spec:transport:kind: localpath: /tmp/lumnik-scenario/marketplace-order-items/b/orders.csvparser:delimiter: ";"after_process: nonemapping: on-error:fields: { items: dlq } # refused: a split order has no single row to dead-letterrow: - split-row: { by: items, sep: "|" } - validate-row: { required: [items] } # refused: it would drop items, not orderscell:-split: { column: items, by: "-", into: [model, colour, size] }
$ lm validate -f 90-dlq-beside-split-row.yaml✗ 90-dlq-beside-split-row.yaml — 2 error(s), 0 warning(s)
ERROR spec.mapping.row[1].validate-row
validate-row after split-row is not supported — validation would drop fanned fragments and corrupt the run arithmetic. Validate before splitting.
→ Validate before splitting, or drop the validate-row hook
ERROR spec.mapping.on-error
on-error: dlq with split-row is not supported — it would dead-letter fanned fragments, not source rows, and the run would stop on it
→ use soft or fail, or drop the split-row hook
Fix errors above before running 'lm apply -f 90-dlq-beside-split-row.yaml'.Error: validation failed: 2 error(s)
apiVersion: connectors.lumnik.io/v1kind: Connectormetadata:name: scenario-order-items-bconnector_type: csv-filescopes: [logistics-b]spec:transport:kind: localpath: /tmp/lumnik-scenario/marketplace-order-items/b/orders.csvparser:delimiter: ";"after_process: nonemapping:dataset: - require-headers: { columns: [order_no, items] } # a file whose items column was renamed fails the run - skip-empty-rows: {} # the separator lines the export addsrow: - split-row: { by: items, sep: "|", position: item_no } # one row per item; item_no keeps two identical items apartcell:-upper: { columns: [items] } # tsh-vert-s typed in lower case-split: { column: items, by: "-", into: [model, colour, size] }
manifests/20-pick-line.yaml
kind: Entityname: pick_line_blabel: Ligne à préparerdescription: "One ordered item to pick: the order, its customer, and the item's model, colour and size."match: [order_no, item_no]scopes: [logistics-b]columns:order_no: { label: "Commande" }item_no: { label: "Article n°" }customer: { label: "Client" }items: { label: "Référence" }model: { label: "Modèle" }colour: { label: "Couleur" }size: { label: "Taille" }sources:-table: t_scenario_order_items_bmap: { order_no: order_no, item_no: item_no, customer: customer, items: items, model: model, colour: colour, size: size }
$ lm apply -f 10-order-items.yamlApplied connector "scenario-order-items-b" — 1 endpoint$ lm connector run scenario-order-items-brun scheduled: 7e8148f8-1661-4a46-94f2-2580947ea19a$ lm run get 7e8148f8-1661-4a46-94f2-2580947ea19aID CONNECTOR ENDPOINT STATUS IN OUT SKIPPED DEAD-LETTERS STARTED ENDED
7e8148f8 scenario-order-items-b default Completed 7 6 1 0 2026-11-03 15:50 2026-11-03 15:50⚠ 2 cell(s) a hook did not deliver as declared — the rows were still written$ lm entity apply -f 20-pick-line.yamlApplied entity "pick_line_b" → connector."v_pick_line_b"
$ lm connector run scenario-order-items-brun scheduled: 4777af5b-27e7-467f-b4e4-5686bfce40fc$ lm run get 4777af5b-27e7-467f-b4e4-5686bfce40fcID CONNECTOR ENDPOINT STATUS IN OUT SKIPPED DEAD-LETTERS STARTED ENDED
4777af5b scenario-order-items-b default Failed 0 0 0 0 2026-11-03 15:50 2026-11-03 15:50✖ run failed: required header missing: items