Add `pipekit export` / `pipekit apply` (pipekit/config_io.py) to serialise the DB's config — drivers, connections, modules (+ columns, watermarks, hooks), groups, schedules — to a git-trackable text tree under config/, and rehydrate it. SQLite stays runtime state; definitions become diffable/reviewable/ revertible. - config only: run_log/group_run/settings and per-run state columns excluded - name-keyed refs (portable across databases); source_query in .sql sidecars; columns as real JSON arrays for line-by-line diffs - newline-normalised so CRLF-vs-LF is never a spurious change - apply is create/update by name; child collections fully synced; top-level deletes gated behind --prune; --dry-run prints the plan - round-trip is identity (export -> apply --dry-run == nothing to do) Commits the current config/ as the first baseline, capturing the freshly populated columns_json for rm00101/rm00301/iv00101. Documented in SPEC.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
576 lines
14 KiB
JSON
576 lines
14 KiB
JSON
{
|
|
"name": "marktable",
|
|
"source_connection": "S78030956",
|
|
"dest_connection": "usmidsap02",
|
|
"dest_table": "cms.marktable",
|
|
"staging_table": "pipekit_staging.marktable",
|
|
"merge_strategy": "full",
|
|
"merge_key": null,
|
|
"enabled": 1,
|
|
"dest_description": "Marketing Product Specs File",
|
|
"columns": [
|
|
{
|
|
"source_name": "M1PROD",
|
|
"source_type": "CHAR(10)",
|
|
"dest_name": "m1prod",
|
|
"dest_type": "text",
|
|
"description": "Product"
|
|
},
|
|
{
|
|
"source_name": "M1SDES",
|
|
"source_type": "CHAR(30)",
|
|
"dest_name": "m1sdes",
|
|
"dest_type": "text",
|
|
"description": "Product Short Description"
|
|
},
|
|
{
|
|
"source_name": "M1LDES",
|
|
"source_type": "CHAR(75)",
|
|
"dest_name": "m1ldes",
|
|
"dest_type": "text",
|
|
"description": "Product Long Description"
|
|
},
|
|
{
|
|
"source_name": "M1MAJG",
|
|
"source_type": "CHAR(3)",
|
|
"dest_name": "m1majg",
|
|
"dest_type": "text",
|
|
"description": "Major Group"
|
|
},
|
|
{
|
|
"source_name": "M1MING",
|
|
"source_type": "CHAR(3)",
|
|
"dest_name": "m1ming",
|
|
"dest_type": "text",
|
|
"description": "Minor Group"
|
|
},
|
|
{
|
|
"source_name": "M1MJSP",
|
|
"source_type": "CHAR(3)",
|
|
"dest_name": "m1mjsp",
|
|
"dest_type": "text",
|
|
"description": "Major Sales"
|
|
},
|
|
{
|
|
"source_name": "M1MNSP",
|
|
"source_type": "CHAR(3)",
|
|
"dest_name": "m1mnsp",
|
|
"dest_type": "text",
|
|
"description": "Minor Sales"
|
|
},
|
|
{
|
|
"source_name": "M1TRDS",
|
|
"source_type": "CHAR(10)",
|
|
"dest_name": "m1trds",
|
|
"dest_type": "text",
|
|
"description": "Trade Size"
|
|
},
|
|
{
|
|
"source_name": "M1HSZE",
|
|
"source_type": "NUMERIC(6,2)",
|
|
"dest_name": "m1hsze",
|
|
"dest_type": "numeric(6,2)",
|
|
"description": "Hanger Size"
|
|
},
|
|
{
|
|
"source_name": "M1CCFG",
|
|
"source_type": "CHAR(20)",
|
|
"dest_name": "m1ccfg",
|
|
"dest_type": "text",
|
|
"description": "Cell Configuration"
|
|
},
|
|
{
|
|
"source_name": "M1SYMB",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "m1symb",
|
|
"dest_type": "text",
|
|
"description": "Symbol"
|
|
},
|
|
{
|
|
"source_name": "M1TSLT",
|
|
"source_type": "CHAR(1)",
|
|
"dest_name": "m1tslt",
|
|
"dest_type": "text",
|
|
"description": "Tag Slot"
|
|
},
|
|
{
|
|
"source_name": "M1STAT",
|
|
"source_type": "CHAR(1)",
|
|
"dest_name": "m1stat",
|
|
"dest_type": "text",
|
|
"description": "Product Status"
|
|
},
|
|
{
|
|
"source_name": "M1WGHT",
|
|
"source_type": "DECIMAL(8,5)",
|
|
"dest_name": "m1wght",
|
|
"dest_type": "numeric(8,5)",
|
|
"description": "Weight"
|
|
},
|
|
{
|
|
"source_name": "M1WUNT",
|
|
"source_type": "CHAR(2)",
|
|
"dest_name": "m1wunt",
|
|
"dest_type": "text",
|
|
"description": "Weight Unit"
|
|
},
|
|
{
|
|
"source_name": "M1MDCIU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1mdciu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Max Dry"
|
|
},
|
|
{
|
|
"source_name": "M1MLUUU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1mluuu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Max Liquid metric and Unit"
|
|
},
|
|
{
|
|
"source_name": "M1ODU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1odu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Dimensions"
|
|
},
|
|
{
|
|
"source_name": "M1IDU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1idu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Dimensions"
|
|
},
|
|
{
|
|
"source_name": "M1HTU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1htu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Height"
|
|
},
|
|
{
|
|
"source_name": "M1OWIU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1owiu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Width"
|
|
},
|
|
{
|
|
"source_name": "M1OLIU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1oliu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Length"
|
|
},
|
|
{
|
|
"source_name": "M1IWIU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1iwiu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Width"
|
|
},
|
|
{
|
|
"source_name": "M1ILIU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1iliu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Length"
|
|
},
|
|
{
|
|
"source_name": "M1PSU",
|
|
"source_type": "CHAR(14)",
|
|
"dest_name": "m1psu",
|
|
"dest_type": "text",
|
|
"description": "Pallet Size"
|
|
},
|
|
{
|
|
"source_name": "M1PHU",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1phu",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Pallet Height"
|
|
},
|
|
{
|
|
"source_name": "M1MDUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1mduomu",
|
|
"dest_type": "text",
|
|
"description": "Max Dry UOM"
|
|
},
|
|
{
|
|
"source_name": "M1MLUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1mluomu",
|
|
"dest_type": "text",
|
|
"description": "Max Liquid UOM"
|
|
},
|
|
{
|
|
"source_name": "M1ODUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1oduomu",
|
|
"dest_type": "text",
|
|
"description": "Outside Dimensions UOM"
|
|
},
|
|
{
|
|
"source_name": "M1IDUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iduomu",
|
|
"dest_type": "text",
|
|
"description": "Inside Dimensions UOM"
|
|
},
|
|
{
|
|
"source_name": "M1HUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1huomu",
|
|
"dest_type": "text",
|
|
"description": "Height UOM"
|
|
},
|
|
{
|
|
"source_name": "M1OLWOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1olwomu",
|
|
"dest_type": "text",
|
|
"description": "Outside Width UOM"
|
|
},
|
|
{
|
|
"source_name": "M1OLUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1oluomu",
|
|
"dest_type": "text",
|
|
"description": "Outside Length UOM"
|
|
},
|
|
{
|
|
"source_name": "M1IWUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iwuomu",
|
|
"dest_type": "text",
|
|
"description": "Inside Width UOM"
|
|
},
|
|
{
|
|
"source_name": "M1ILUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iluomu",
|
|
"dest_type": "text",
|
|
"description": "Inside Length UOM"
|
|
},
|
|
{
|
|
"source_name": "M1PHUOMU",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1phuomu",
|
|
"dest_type": "text",
|
|
"description": "Pallet Height UOM"
|
|
},
|
|
{
|
|
"source_name": "M1MDCIM",
|
|
"source_type": "NUMERIC(11,5)",
|
|
"dest_name": "m1mdcim",
|
|
"dest_type": "numeric(11,5)",
|
|
"description": "Max Dry"
|
|
},
|
|
{
|
|
"source_name": "M1MLUUM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1mluum",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Max Liquid metric and Unit"
|
|
},
|
|
{
|
|
"source_name": "M1ODM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1odm",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Dimensions"
|
|
},
|
|
{
|
|
"source_name": "M1IDM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1idm",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Dimensions"
|
|
},
|
|
{
|
|
"source_name": "M1HTM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1htm",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Height"
|
|
},
|
|
{
|
|
"source_name": "M1OWIM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1owim",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Width"
|
|
},
|
|
{
|
|
"source_name": "M1OLIM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1olim",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Outside Length"
|
|
},
|
|
{
|
|
"source_name": "M1IWIM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1iwim",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Width"
|
|
},
|
|
{
|
|
"source_name": "M1ILIM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1ilim",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Inside Length"
|
|
},
|
|
{
|
|
"source_name": "M1PSM",
|
|
"source_type": "CHAR(14)",
|
|
"dest_name": "m1psm",
|
|
"dest_type": "text",
|
|
"description": "Pallet Size"
|
|
},
|
|
{
|
|
"source_name": "M1PHM",
|
|
"source_type": "NUMERIC(10,2)",
|
|
"dest_name": "m1phm",
|
|
"dest_type": "numeric(10,2)",
|
|
"description": "Pallet Height"
|
|
},
|
|
{
|
|
"source_name": "M1MDUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1mduomm",
|
|
"dest_type": "text",
|
|
"description": "Max Dry UOM"
|
|
},
|
|
{
|
|
"source_name": "M1MLUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1mluomm",
|
|
"dest_type": "text",
|
|
"description": "Max Liquid UOM"
|
|
},
|
|
{
|
|
"source_name": "M1ODUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1oduomm",
|
|
"dest_type": "text",
|
|
"description": "Outside Dimensions UOM"
|
|
},
|
|
{
|
|
"source_name": "M1IDUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iduomm",
|
|
"dest_type": "text",
|
|
"description": "Inside Dimensions UOM"
|
|
},
|
|
{
|
|
"source_name": "M1HUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1huomm",
|
|
"dest_type": "text",
|
|
"description": "Height UOM"
|
|
},
|
|
{
|
|
"source_name": "M1OLWOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1olwomm",
|
|
"dest_type": "text",
|
|
"description": "Outside Width UOM"
|
|
},
|
|
{
|
|
"source_name": "M1OLUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1oluomm",
|
|
"dest_type": "text",
|
|
"description": "Outside Length UOM"
|
|
},
|
|
{
|
|
"source_name": "M1IWUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iwuomm",
|
|
"dest_type": "text",
|
|
"description": "Inside Width UOM"
|
|
},
|
|
{
|
|
"source_name": "M1ILUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1iluomm",
|
|
"dest_type": "text",
|
|
"description": "Inside Length UOM"
|
|
},
|
|
{
|
|
"source_name": "M1PHUOMM",
|
|
"source_type": "CHAR(5)",
|
|
"dest_name": "m1phuomm",
|
|
"dest_type": "text",
|
|
"description": "Pallet Height UOM"
|
|
},
|
|
{
|
|
"source_name": "M1TCPT",
|
|
"source_type": "CHAR(45)",
|
|
"dest_name": "m1tcpt",
|
|
"dest_type": "text",
|
|
"description": "Tray Compatiblity"
|
|
},
|
|
{
|
|
"source_name": "M1PCPT",
|
|
"source_type": "CHAR(45)",
|
|
"dest_name": "m1pcpt",
|
|
"dest_type": "text",
|
|
"description": "Pot Compatibilty"
|
|
},
|
|
{
|
|
"source_name": "M1HCPT",
|
|
"source_type": "CHAR(45)",
|
|
"dest_name": "m1hcpt",
|
|
"dest_type": "text",
|
|
"description": "Hanger Compatibilty"
|
|
},
|
|
{
|
|
"source_name": "M1SCPT",
|
|
"source_type": "CHAR(45)",
|
|
"dest_name": "m1scpt",
|
|
"dest_type": "text",
|
|
"description": "Saucer Compatibilty"
|
|
},
|
|
{
|
|
"source_name": "M1CBSQ",
|
|
"source_type": "NUMERIC(12,0)",
|
|
"dest_name": "m1cbsq",
|
|
"dest_type": "numeric(12,0)",
|
|
"description": "Case/Bundle/Sleeve Quantity"
|
|
},
|
|
{
|
|
"source_name": "M1BPQ",
|
|
"source_type": "NUMERIC(12,0)",
|
|
"dest_name": "m1bpq",
|
|
"dest_type": "numeric(12,0)",
|
|
"description": "Bulk Pallet Quantity"
|
|
},
|
|
{
|
|
"source_name": "M1CBSP",
|
|
"source_type": "NUMERIC(12,0)",
|
|
"dest_name": "m1cbsp",
|
|
"dest_type": "numeric(12,0)",
|
|
"description": "Case/Bundle/Sleeve per PLT"
|
|
},
|
|
{
|
|
"source_name": "M1PAGE",
|
|
"source_type": "CHAR(32)",
|
|
"dest_name": "m1page",
|
|
"dest_type": "text",
|
|
"description": "Catalog Pages"
|
|
},
|
|
{
|
|
"source_name": "M1STKC",
|
|
"source_type": "CHAR(32)",
|
|
"dest_name": "m1stkc",
|
|
"dest_type": "text",
|
|
"description": "Stocked Colors"
|
|
},
|
|
{
|
|
"source_name": "M1FORMAT",
|
|
"source_type": "CHAR(20)",
|
|
"dest_name": "m1format",
|
|
"dest_type": "text",
|
|
"description": "FORMAT"
|
|
},
|
|
{
|
|
"source_name": "M1FORM_UOM",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "m1form_uom",
|
|
"dest_type": "text",
|
|
"description": "FORMAT_UOM"
|
|
},
|
|
{
|
|
"source_name": "M1SHAPE",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "m1shape",
|
|
"dest_type": "text",
|
|
"description": "SHAPE"
|
|
},
|
|
{
|
|
"source_name": "M1FUNC",
|
|
"source_type": "CHAR(30)",
|
|
"dest_name": "m1func",
|
|
"dest_type": "text",
|
|
"description": "FUNCTION"
|
|
},
|
|
{
|
|
"source_name": "M1PRTGRP",
|
|
"source_type": "CHAR(10)",
|
|
"dest_name": "m1prtgrp",
|
|
"dest_type": "text",
|
|
"description": "Part Group"
|
|
},
|
|
{
|
|
"source_name": "M1FEATURE",
|
|
"source_type": "CHAR(30)",
|
|
"dest_name": "m1feature",
|
|
"dest_type": "text",
|
|
"description": "Feature"
|
|
},
|
|
{
|
|
"source_name": "M1PRICEG",
|
|
"source_type": "CHAR(50)",
|
|
"dest_name": "m1priceg",
|
|
"dest_type": "text",
|
|
"description": "Priceg"
|
|
},
|
|
{
|
|
"source_name": "M1FAMILY",
|
|
"source_type": "CHAR(40)",
|
|
"dest_name": "m1family",
|
|
"dest_type": "text",
|
|
"description": "Profile/Family"
|
|
},
|
|
{
|
|
"source_name": "M1IMGURL",
|
|
"source_type": "CHAR(100)",
|
|
"dest_name": "m1imgurl",
|
|
"dest_type": "text",
|
|
"description": "Image Url"
|
|
},
|
|
{
|
|
"source_name": "M1HEADER",
|
|
"source_type": "CHAR(30)",
|
|
"dest_name": "m1header",
|
|
"dest_type": "text",
|
|
"description": "Header"
|
|
},
|
|
{
|
|
"source_name": "M1BIGGROUP",
|
|
"source_type": "CHAR(25)",
|
|
"dest_name": "m1biggroup",
|
|
"dest_type": "text",
|
|
"description": "Big group"
|
|
},
|
|
{
|
|
"source_name": "M1BASEPART",
|
|
"source_type": "CHAR(8)",
|
|
"dest_name": "m1basepart",
|
|
"dest_type": "text",
|
|
"description": "Base Part"
|
|
},
|
|
{
|
|
"source_name": "M1SPONSOR",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "m1sponsor",
|
|
"dest_type": "text",
|
|
"description": "Sponsor"
|
|
},
|
|
{
|
|
"source_name": "M1COMPAT",
|
|
"source_type": "CHAR(180)",
|
|
"dest_name": "m1compat",
|
|
"dest_type": "text",
|
|
"description": "COMPATIBLES"
|
|
}
|
|
],
|
|
"watermarks": [],
|
|
"hooks": []
|
|
}
|