pipekit/config/modules/osm_fc.json
Paul Trowbridge dd9f89f4b5 feat: version-control pipeline definitions via export/apply
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>
2026-07-22 10:56:55 -04:00

1059 lines
24 KiB
JSON

{
"name": "osm_fc",
"source_connection": "usmidsap02",
"dest_connection": "sqlserver",
"dest_table": "rlarp.osm_fc",
"staging_table": "pipekit_staging.osm_fc",
"merge_strategy": "full",
"merge_key": null,
"enabled": 1,
"dest_description": null,
"columns": [
{
"source_name": "origin_system",
"source_type": "text",
"dest_name": "origin_system",
"dest_type": "text",
"description": null
},
{
"source_name": "version",
"source_type": "text",
"dest_name": "version",
"dest_type": "text",
"description": null
},
{
"source_name": "voseas",
"source_type": "text",
"dest_name": "voseas",
"dest_type": "text",
"description": null
},
{
"source_name": "iter",
"source_type": "text",
"dest_name": "iter",
"dest_type": "text",
"description": null
},
{
"source_name": "oseas",
"source_type": "integer",
"dest_name": "oseas",
"dest_type": "integer",
"description": null
},
{
"source_name": "omon",
"source_type": "text",
"dest_name": "omon",
"dest_type": "text",
"description": null
},
{
"source_name": "odate",
"source_type": "date",
"dest_name": "odate",
"dest_type": "date",
"description": null
},
{
"source_name": "oday",
"source_type": "text",
"dest_name": "oday",
"dest_type": "text",
"description": null
},
{
"source_name": "om",
"source_type": "text",
"dest_name": "om",
"dest_type": "text",
"description": null
},
{
"source_name": "oy",
"source_type": "text",
"dest_name": "oy",
"dest_type": "text",
"description": null
},
{
"source_name": "oytd",
"source_type": "text",
"dest_name": "oytd",
"dest_type": "text",
"description": null
},
{
"source_name": "rseas",
"source_type": "integer",
"dest_name": "rseas",
"dest_type": "integer",
"description": null
},
{
"source_name": "rmon",
"source_type": "text",
"dest_name": "rmon",
"dest_type": "text",
"description": null
},
{
"source_name": "rdate",
"source_type": "date",
"dest_name": "rdate",
"dest_type": "date",
"description": null
},
{
"source_name": "rday",
"source_type": "text",
"dest_name": "rday",
"dest_type": "text",
"description": null
},
{
"source_name": "rm",
"source_type": "text",
"dest_name": "rm",
"dest_type": "text",
"description": null
},
{
"source_name": "ry",
"source_type": "text",
"dest_name": "ry",
"dest_type": "text",
"description": null
},
{
"source_name": "rytd",
"source_type": "text",
"dest_name": "rytd",
"dest_type": "text",
"description": null
},
{
"source_name": "sseas",
"source_type": "integer",
"dest_name": "sseas",
"dest_type": "integer",
"description": null
},
{
"source_name": "smon",
"source_type": "text",
"dest_name": "smon",
"dest_type": "text",
"description": null
},
{
"source_name": "sdate",
"source_type": "date",
"dest_name": "sdate",
"dest_type": "date",
"description": null
},
{
"source_name": "sday",
"source_type": "text",
"dest_name": "sday",
"dest_type": "text",
"description": null
},
{
"source_name": "sm",
"source_type": "text",
"dest_name": "sm",
"dest_type": "text",
"description": null
},
{
"source_name": "sy",
"source_type": "text",
"dest_name": "sy",
"dest_type": "text",
"description": null
},
{
"source_name": "sytd",
"source_type": "text",
"dest_name": "sytd",
"dest_type": "text",
"description": null
},
{
"source_name": "sseas_e",
"source_type": "integer",
"dest_name": "sseas_e",
"dest_type": "integer",
"description": null
},
{
"source_name": "smon_e",
"source_type": "text",
"dest_name": "smon_e",
"dest_type": "text",
"description": null
},
{
"source_name": "pseas",
"source_type": "integer",
"dest_name": "pseas",
"dest_type": "integer",
"description": null
},
{
"source_name": "pmon",
"source_type": "text",
"dest_name": "pmon",
"dest_type": "text",
"description": null
},
{
"source_name": "pdate",
"source_type": "date",
"dest_name": "pdate",
"dest_type": "date",
"description": null
},
{
"source_name": "pday",
"source_type": "text",
"dest_name": "pday",
"dest_type": "text",
"description": null
},
{
"source_name": "pm",
"source_type": "text",
"dest_name": "pm",
"dest_type": "text",
"description": null
},
{
"source_name": "py",
"source_type": "text",
"dest_name": "py",
"dest_type": "text",
"description": null
},
{
"source_name": "pytd",
"source_type": "text",
"dest_name": "pytd",
"dest_type": "text",
"description": null
},
{
"source_name": "ostatus",
"source_type": "text",
"dest_name": "ostatus",
"dest_type": "text",
"description": null
},
{
"source_name": "flag_s",
"source_type": "text",
"dest_name": "flag_s",
"dest_type": "text",
"description": null
},
{
"source_name": "flag_o",
"source_type": "text",
"dest_name": "flag_o",
"dest_type": "text",
"description": null
},
{
"source_name": "ordnum",
"source_type": "text",
"dest_name": "ordnum",
"dest_type": "text",
"description": null
},
{
"source_name": "ordline",
"source_type": "text",
"dest_name": "ordline",
"dest_type": "text",
"description": null
},
{
"source_name": "invnum",
"source_type": "text",
"dest_name": "invnum",
"dest_type": "text",
"description": null
},
{
"source_name": "invline",
"source_type": "text",
"dest_name": "invline",
"dest_type": "text",
"description": null
},
{
"source_name": "quoten",
"source_type": "text",
"dest_name": "quoten",
"dest_type": "text",
"description": null
},
{
"source_name": "quotel",
"source_type": "text",
"dest_name": "quotel",
"dest_type": "text",
"description": null
},
{
"source_name": "ordquote",
"source_type": "text",
"dest_name": "ordquote",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_dba",
"source_type": "text",
"dest_name": "bill_dba",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_cust",
"source_type": "text",
"dest_name": "bill_cust",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_class",
"source_type": "text",
"dest_name": "bill_class",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_ctry",
"source_type": "text",
"dest_name": "bill_ctry",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_prov",
"source_type": "text",
"dest_name": "bill_prov",
"dest_type": "text",
"description": null
},
{
"source_name": "bill_post",
"source_type": "text",
"dest_name": "bill_post",
"dest_type": "text",
"description": null
},
{
"source_name": "ship_dba",
"source_type": "text",
"dest_name": "ship_dba",
"dest_type": "text",
"description": null
},
{
"source_name": "ship_cust",
"source_type": "text",
"dest_name": "ship_cust",
"dest_type": "text",
"description": null
},
{
"source_name": "ship_class",
"source_type": "text",
"dest_name": "ship_class",
"dest_type": "text",
"description": null
},
{
"source_name": "dest_ctry",
"source_type": "text",
"dest_name": "dest_ctry",
"dest_type": "text",
"description": null
},
{
"source_name": "dest_prov",
"source_type": "text",
"dest_name": "dest_prov",
"dest_type": "text",
"description": null
},
{
"source_name": "dest_post",
"source_type": "text",
"dest_name": "dest_post",
"dest_type": "text",
"description": null
},
{
"source_name": "chan",
"source_type": "text",
"dest_name": "chan",
"dest_type": "text",
"description": null
},
{
"source_name": "chansub",
"source_type": "text",
"dest_name": "chansub",
"dest_type": "text",
"description": null
},
{
"source_name": "chanretail",
"source_type": "text",
"dest_name": "chanretail",
"dest_type": "text",
"description": null
},
{
"source_name": "chanwide",
"source_type": "text",
"dest_name": "chanwide",
"dest_type": "text",
"description": null
},
{
"source_name": "customer",
"source_type": "text",
"dest_name": "customer",
"dest_type": "text",
"description": null
},
{
"source_name": "customer_tier",
"source_type": "text",
"dest_name": "customer_tier",
"dest_type": "text",
"description": null
},
{
"source_name": "dsm",
"source_type": "text",
"dest_name": "dsm",
"dest_type": "text",
"description": null
},
{
"source_name": "csr",
"source_type": "text",
"dest_name": "csr",
"dest_type": "text",
"description": null
},
{
"source_name": "director",
"source_type": "text",
"dest_name": "director",
"dest_type": "text",
"description": null
},
{
"source_name": "quota_rep",
"source_type": "text",
"dest_name": "quota_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "default_rep",
"source_type": "text",
"dest_name": "default_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "retail_rep",
"source_type": "text",
"dest_name": "retail_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "inside_rep",
"source_type": "text",
"dest_name": "inside_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "keyaccount_rep",
"source_type": "text",
"dest_name": "keyaccount_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "geo",
"source_type": "text",
"dest_name": "geo",
"dest_type": "text",
"description": null
},
{
"source_name": "nursery_region",
"source_type": "text",
"dest_name": "nursery_region",
"dest_type": "text",
"description": null
},
{
"source_name": "greenhouse_region",
"source_type": "text",
"dest_name": "greenhouse_region",
"dest_type": "text",
"description": null
},
{
"source_name": "general_region",
"source_type": "text",
"dest_name": "general_region",
"dest_type": "text",
"description": null
},
{
"source_name": "promo",
"source_type": "text",
"dest_name": "promo",
"dest_type": "text",
"description": null
},
{
"source_name": "glec",
"source_type": "text",
"dest_name": "glec",
"dest_type": "text",
"description": null
},
{
"source_name": "segm",
"source_type": "text",
"dest_name": "segm",
"dest_type": "text",
"description": null
},
{
"source_name": "fs_line",
"source_type": "text",
"dest_name": "fs_line",
"dest_type": "text",
"description": null
},
{
"source_name": "plnt",
"source_type": "text",
"dest_name": "plnt",
"dest_type": "text",
"description": null
},
{
"source_name": "part",
"source_type": "text",
"dest_name": "part",
"dest_type": "text",
"description": null
},
{
"source_name": "partd",
"source_type": "text",
"dest_name": "partd",
"dest_type": "text",
"description": null
},
{
"source_name": "stlc",
"source_type": "text",
"dest_name": "stlc",
"dest_type": "text",
"description": null
},
{
"source_name": "stlcd",
"source_type": "text",
"dest_name": "stlcd",
"dest_type": "text",
"description": null
},
{
"source_name": "partgroup",
"source_type": "text",
"dest_name": "partgroup",
"dest_type": "text",
"description": null
},
{
"source_name": "partgroupd",
"source_type": "text",
"dest_name": "partgroupd",
"dest_type": "text",
"description": null
},
{
"source_name": "pricegroup",
"source_type": "text",
"dest_name": "pricegroup",
"dest_type": "text",
"description": null
},
{
"source_name": "product",
"source_type": "text",
"dest_name": "product",
"dest_type": "text",
"description": null
},
{
"source_name": "listg",
"source_type": "text",
"dest_name": "listg",
"dest_type": "text",
"description": null
},
{
"source_name": "biggroup",
"source_type": "text",
"dest_name": "biggroup",
"dest_type": "text",
"description": null
},
{
"source_name": "leadtime",
"source_type": "text",
"dest_name": "leadtime",
"dest_type": "text",
"description": null
},
{
"source_name": "colc",
"source_type": "text",
"dest_name": "colc",
"dest_type": "text",
"description": null
},
{
"source_name": "colcd",
"source_type": "text",
"dest_name": "colcd",
"dest_type": "text",
"description": null
},
{
"source_name": "colgrp",
"source_type": "text",
"dest_name": "colgrp",
"dest_type": "text",
"description": null
},
{
"source_name": "coltierd",
"source_type": "text",
"dest_name": "coltierd",
"dest_type": "text",
"description": null
},
{
"source_name": "sizc",
"source_type": "text",
"dest_name": "sizc",
"dest_type": "text",
"description": null
},
{
"source_name": "uomp",
"source_type": "text",
"dest_name": "uomp",
"dest_type": "text",
"description": null
},
{
"source_name": "suffix",
"source_type": "text",
"dest_name": "suffix",
"dest_type": "text",
"description": null
},
{
"source_name": "suffixd",
"source_type": "text",
"dest_name": "suffixd",
"dest_type": "text",
"description": null
},
{
"source_name": "accs_ps",
"source_type": "text",
"dest_name": "accs_ps",
"dest_type": "text",
"description": null
},
{
"source_name": "brnd",
"source_type": "text",
"dest_name": "brnd",
"dest_type": "text",
"description": null
},
{
"source_name": "programd",
"source_type": "text",
"dest_name": "programd",
"dest_type": "text",
"description": null
},
{
"source_name": "program",
"source_type": "text",
"dest_name": "program",
"dest_type": "text",
"description": null
},
{
"source_name": "cgbrand",
"source_type": "text",
"dest_name": "cgbrand",
"dest_type": "text",
"description": null
},
{
"source_name": "v0dataseg",
"source_type": "text",
"dest_name": "v0dataseg",
"dest_type": "text",
"description": null
},
{
"source_name": "dataseg",
"source_type": "text",
"dest_name": "dataseg",
"dest_type": "text",
"description": null
},
{
"source_name": "majgd",
"source_type": "text",
"dest_name": "majgd",
"dest_type": "text",
"description": null
},
{
"source_name": "mingd",
"source_type": "text",
"dest_name": "mingd",
"dest_type": "text",
"description": null
},
{
"source_name": "majsd",
"source_type": "text",
"dest_name": "majsd",
"dest_type": "text",
"description": null
},
{
"source_name": "minsd",
"source_type": "text",
"dest_name": "minsd",
"dest_type": "text",
"description": null
},
{
"source_name": "assc",
"source_type": "text",
"dest_name": "assc",
"dest_type": "text",
"description": null
},
{
"source_name": "clss",
"source_type": "text",
"dest_name": "clss",
"dest_type": "text",
"description": null
},
{
"source_name": "plcd",
"source_type": "text",
"dest_name": "plcd",
"dest_type": "text",
"description": null
},
{
"source_name": "c_currency",
"source_type": "text",
"dest_name": "c_currency",
"dest_type": "text",
"description": null
},
{
"source_name": "c_rate",
"source_type": "numeric",
"dest_name": "c_rate",
"dest_type": "numeric",
"description": null
},
{
"source_name": "r_currency",
"source_type": "text",
"dest_name": "r_currency",
"dest_type": "text",
"description": null
},
{
"source_name": "r_rate",
"source_type": "numeric",
"dest_name": "r_rate",
"dest_type": "numeric",
"description": null
},
{
"source_name": "unit",
"source_type": "text",
"dest_name": "unit",
"dest_type": "text",
"description": null
},
{
"source_name": "qty",
"source_type": "numeric(38,2)",
"dest_name": "qty",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "qtyord",
"source_type": "numeric(38,2)",
"dest_name": "qtyord",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "pltq",
"source_type": "numeric(38,2)",
"dest_name": "pltq",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "pallets",
"source_type": "numeric(38,2)",
"dest_name": "pallets",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "pounds",
"source_type": "numeric(38,2)",
"dest_name": "pounds",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "sales_usd",
"source_type": "numeric(38,2)",
"dest_name": "sales_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "sales_local",
"source_type": "numeric(38,2)",
"dest_name": "sales_local",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "quoted_usd",
"source_type": "numeric(38,2)",
"dest_name": "quoted_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "target_usd",
"source_type": "numeric(38,2)",
"dest_name": "target_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "list_usd",
"source_type": "numeric(38,2)",
"dest_name": "list_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_loc",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_loc",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_cur_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_cur_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_cur_loc",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_cur_loc",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_curm_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_curm_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_curl_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_curl_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_curv_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_curv_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_curf_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_curf_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_fut_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_fut_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_fut_loc",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_fut_loc",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_futm_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_futm_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_futl_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_futl_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_futv_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_futv_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "stdcost_futf_usd",
"source_type": "numeric(38,2)",
"dest_name": "stdcost_futf_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "margin_hist_usd",
"source_type": "numeric(38,2)",
"dest_name": "margin_hist_usd",
"dest_type": "numeric(38,2)",
"description": null
},
{
"source_name": "calc_status",
"source_type": "text",
"dest_name": "calc_status",
"dest_type": "text",
"description": null
},
{
"source_name": "flag",
"source_type": "text",
"dest_name": "flag",
"dest_type": "text",
"description": null
},
{
"source_name": "pricing",
"source_type": "jsonb",
"dest_name": "pricing",
"dest_type": "jsonb",
"description": null
},
{
"source_name": "pending_rep",
"source_type": "text",
"dest_name": "pending_rep",
"dest_type": "text",
"description": null
},
{
"source_name": "pending_director",
"source_type": "text",
"dest_name": "pending_director",
"dest_type": "text",
"description": null
},
{
"source_name": "channel_new",
"source_type": "text",
"dest_name": "channel_new",
"dest_type": "text",
"description": null
},
{
"source_name": "segment_new",
"source_type": "text",
"dest_name": "segment_new",
"dest_type": "text",
"description": null
}
],
"watermarks": [],
"hooks": []
}