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>
737 lines
17 KiB
JSON
737 lines
17 KiB
JSON
{
|
|
"name": "rm00101",
|
|
"source_connection": "sqlserver",
|
|
"dest_connection": "usmidsap02",
|
|
"dest_table": "gp.rm00101",
|
|
"staging_table": "pipekit_staging.rm00101",
|
|
"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": "CUSTNMBR",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "custnmbr",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CUSTNAME",
|
|
"source_type": "CHAR(65)",
|
|
"dest_name": "custname",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "COUNTRY",
|
|
"source_type": "CHAR(61)",
|
|
"dest_name": "country",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STATE",
|
|
"source_type": "CHAR(29)",
|
|
"dest_name": "state",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CITY",
|
|
"source_type": "CHAR(35)",
|
|
"dest_name": "city",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USERDEF1",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "userdef1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RATETPID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "ratetpid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRCLEVEL",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "prclevel",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SLPRSNID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "slprsnid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CUSTCLAS",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "custclas",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CPRCSTNM",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "cprcstnm",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CNTCPRSN",
|
|
"source_type": "CHAR(61)",
|
|
"dest_name": "cntcprsn",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STMTNAME",
|
|
"source_type": "CHAR(65)",
|
|
"dest_name": "stmtname",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SHRTNAME",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "shrtname",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ADRSCODE",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "adrscode",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "UPSZONE",
|
|
"source_type": "CHAR(3)",
|
|
"dest_name": "upszone",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SHIPMTHD",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "shipmthd",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TAXSCHID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "taxschid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ADDRESS1",
|
|
"source_type": "CHAR(61)",
|
|
"dest_name": "address1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ADDRESS2",
|
|
"source_type": "CHAR(61)",
|
|
"dest_name": "address2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ADDRESS3",
|
|
"source_type": "CHAR(61)",
|
|
"dest_name": "address3",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ZIP",
|
|
"source_type": "CHAR(11)",
|
|
"dest_name": "zip",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PHONE1",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "phone1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PHONE2",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "phone2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PHONE3",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "phone3",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FAX",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "fax",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRBTADCD",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "prbtadcd",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PRSTADCD",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "prstadcd",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STADDRCD",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "staddrcd",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CHEKBKID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "chekbkid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "PYMTRMID",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "pymtrmid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRLMTTYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "crlmttyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRLMTAMT",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "crlmtamt",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRLMTPER",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "crlmtper",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRLMTPAM",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "crlmtpam",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CURNCYID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "curncyid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CUSTDISC",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "custdisc",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MINPYTYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "minpytyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MINPYDLR",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "minpydlr",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MINPYPCT",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "minpypct",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FNCHATYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "fnchatyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FNCHPCNT",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "fnchpcnt",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FINCHDLR",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "finchdlr",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MXWOFTYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "mxwoftyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MXWROFAM",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "mxwrofam",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "COMMENT1",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "comment1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "COMMENT2",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "comment2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USERDEF2",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "userdef2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TAXEXMT1",
|
|
"source_type": "CHAR(25)",
|
|
"dest_name": "taxexmt1",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TAXEXMT2",
|
|
"source_type": "CHAR(25)",
|
|
"dest_name": "taxexmt2",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "TXRGNNUM",
|
|
"source_type": "CHAR(25)",
|
|
"dest_name": "txrgnnum",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "BALNCTYP",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "balnctyp",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "STMTCYCL",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "stmtcycl",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "BANKNAME",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "bankname",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "BNKBRNCH",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "bnkbrnch",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SALSTERR",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "salsterr",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DEFCACTY",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "defcacty",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMCSHACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmcshacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMARACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmaracc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMSLSACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmslsacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMIVACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmivacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMCOSACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmcosacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMTAKACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmtakacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMAVACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmavacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMFCGACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmfcgacc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMWRACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmwracc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMSORACC",
|
|
"source_type": "INT",
|
|
"dest_name": "rmsoracc",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FRSTINDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "frstindt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INACTIVE",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "inactive",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "HOLD",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "hold",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRCARDID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "crcardid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CRCRDNUM",
|
|
"source_type": "CHAR(21)",
|
|
"dest_name": "crcrdnum",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CCRDXPDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "ccrdxpdt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPDSTHST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kpdsthst",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "KPCALHST",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "kpcalhst",
|
|
"dest_type": "smallint",
|
|
"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": "NOTEINDX",
|
|
"source_type": "NUMERIC(19,5)",
|
|
"dest_name": "noteindx",
|
|
"dest_type": "numeric",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CREATDDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "creatddt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "MODIFDT",
|
|
"source_type": "DATETIME",
|
|
"dest_name": "modifdt",
|
|
"dest_type": "timestamp without time zone",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Revalue_Customer",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "revalue_customer",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Post_Results_To",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "post_results_to",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "FINCHID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "finchid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "GOVCRPID",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "govcrpid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "GOVINDID",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "govindid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DISGRPER",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "disgrper",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DUEGRPER",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "duegrper",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DOCFMTID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "docfmtid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "Send_Email_Statements",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "send_email_statements",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "USERLANG",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "userlang",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "GPSFOINTEGRATIONID",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "gpsfointegrationid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INTEGRATIONSOURCE",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "integrationsource",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INTEGRATIONID",
|
|
"source_type": "CHAR(31)",
|
|
"dest_name": "integrationid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "ORDERFULFILLDEFAULT",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "orderfulfilldefault",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CUSTPRIORITY",
|
|
"source_type": "SMALLINT",
|
|
"dest_name": "custpriority",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CCode",
|
|
"source_type": "CHAR(7)",
|
|
"dest_name": "ccode",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "DECLID",
|
|
"source_type": "CHAR(15)",
|
|
"dest_name": "declid",
|
|
"dest_type": "text",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "RMOvrpymtWrtoffAcctIdx",
|
|
"source_type": "INT",
|
|
"dest_name": "rmovrpymtwrtoffacctidx",
|
|
"dest_type": "integer",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "SHIPCOMPLETE",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "shipcomplete",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "CBVAT",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "cbvat",
|
|
"dest_type": "smallint",
|
|
"description": null
|
|
},
|
|
{
|
|
"source_name": "INCLUDEINDP",
|
|
"source_type": "TINYINT",
|
|
"dest_name": "includeindp",
|
|
"dest_type": "smallint",
|
|
"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": []
|
|
}
|