config_io handled dest_description but never the module's own description field: it was absent from export_config, from both repo.create_module and repo.update_module calls in apply_config, and from the change-detection watch tuple. Descriptions set via the web form were therefore invisible to the config tree — `pipekit apply` silently ignored a description in a module's JSON, and `pipekit export` would have dropped all 127 existing ones on a round-trip. Adding "description" to the watch tuple means a module file without the key now reads as a change to NULL, so backfill the key into all 131 existing module files from the DB. Without this, the next apply would have wiped every description it was meant to preserve. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
640 lines
15 KiB
JSON
640 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)",
|
|
"description": "Dynamics GP item master",
|
|
"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": []
|
|
}
|