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>
639 lines
15 KiB
JSON
639 lines
15 KiB
JSON
{
|
|
"name": "iv00101",
|
|
"source_connection": "sqlserver",
|
|
"dest_connection": "usmidsap02",
|
|
"dest_table": "gp.iv00101",
|
|
"staging_table": "pipekit_staging.iv00101",
|
|
"merge_strategy": "full",
|
|
"merge_key": null,
|
|
"enabled": 1,
|
|
"dest_description": "GP customer/salesperson/item master (broadened, migrated from /opt/sync 2026-07-21)",
|
|
"columns": [
|
|
{
|
|
"source_name": "ITEMNMBR",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "itemnmbr",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITEMDESC",
|
|
"source_type": "CHAR(101)",
|
|
"dest_name": "itemdesc",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMSHNAM",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "itmshnam",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMCLSCD",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "itmclscd",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "UOMSCHDL",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uomschdl",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CURRCOST",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "currcost",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STNDCOST",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "stndcost",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "NOTEINDX",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "noteindx",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITEMTYPE",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "itemtype",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMGEDSC",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "itmgedsc",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITEMSHWT",
|
|
"source_type": "INT",
|
|
"dest_name": "itemshwt",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DECPLQTY",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "decplqty",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DECPLCUR",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "decplcur",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMTSHID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "itmtshid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TAXOPTNS",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "taxoptns",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVIVINDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivivindx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVIVOFIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivivofix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVCOGSIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivcogsix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVSLSIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivslsidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVSLDSIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivsldsix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVSLRNIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivslrnix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVINUSIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivinusix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVINSVIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivinsvix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVDMGIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivdmgidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVVARIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivvaridx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DPSHPIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "dpshpidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PURPVIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "purpvidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "UPPVIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "uppvidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVRETIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivretidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ASMVRIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "asmvridx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMTRKOP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "itmtrkop",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LOTTYPE",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "lottype",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPERHIST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kperhist",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPTRXHST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kptrxhst",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPCALHST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kpcalhst",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPDSTHST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kpdsthst",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ALWBKORD",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "alwbkord",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "VCTNMTHD",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "vctnmthd",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ALTITEM1",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "altitem1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ALTITEM2",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "altitem2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_1",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_2",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_3",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_3",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_4",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_4",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_5",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_5",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USCATVLS_6",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "uscatvls_6",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MSTRCDTY",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "mstrcdty",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MODIFDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "modifdt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CREATDDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "creatddt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "WRNTYDYS",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "wrntydys",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRCLEVEL",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "prclevel",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LOCNCODE",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "locncode",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PINFLIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "pinflidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PURMCIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "purmcidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVINFIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivinfidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INVMCIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "invmcidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CGSINFLX",
|
|
"source_type": "INT",
|
|
"dest_name": "cgsinflx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CGSMCIDX",
|
|
"source_type": "INT",
|
|
"dest_name": "cgsmcidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITEMCODE",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "itemcode",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TCC",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "tcc",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PriceGroup",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "pricegroup",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRICMTHD",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "pricmthd",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRCHSUOM",
|
|
"source_type": "CHAR(9)",
|
|
"dest_name": "prchsuom",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SELNGUOM",
|
|
"source_type": "CHAR(9)",
|
|
"dest_name": "selnguom",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KTACCTSR",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "ktacctsr",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LASTGENSN",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "lastgensn",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ABCCODE",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "abccode",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Revalue_Inventory",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "revalue_inventory",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Tolerance_Percentage",
|
|
"source_type": "INT",
|
|
"dest_name": "tolerance_percentage",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Purchase_Item_Tax_Schedu",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "purchase_item_tax_schedu",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Purchase_Tax_Options",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "purchase_tax_options",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ITMPLNNNGTYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "itmplnnngtyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STTSTCLVLPRCNTG",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "sttstclvlprcntg",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CNTRYORGN",
|
|
"source_type": "CHAR(7)",
|
|
"dest_name": "cntryorgn",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INACTIVE",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "inactive",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MINSHELF1",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "minshelf1",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MINSHELF2",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "minshelf2",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INCLUDEINDP",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "includeindp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LOTEXPWARN",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "lotexpwarn",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LOTEXPWARNDAYS",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "lotexpwarndays",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "LASTGENLOT",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "lastgenlot",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Lot_Split_Quantity",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "lot_split_quantity",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "UseQtyOverageTolerance",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "useqtyoveragetolerance",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "UseQtyShortageTolerance",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "useqtyshortagetolerance",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "QtyOverTolerancePercent",
|
|
"source_type": "INT",
|
|
"dest_name": "qtyovertolerancepercent",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "QtyShortTolerancePercent",
|
|
"source_type": "INT",
|
|
"dest_name": "qtyshorttolerancepercent",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "IVSCRVIX",
|
|
"source_type": "INT",
|
|
"dest_name": "ivscrvix",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DEX_ROW_TS",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "dex_row_ts",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DEX_ROW_ID",
|
|
"source_type": "INT",
|
|
"dest_name": "dex_row_id",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
}
|
|
],
|
|
"watermarks": [],
|
|
"hooks": []
|
|
}
|