pipekit/config/modules/rm30101.json
Paul Trowbridge 217177b3a7 Carry module description through config export/apply
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>
2026-09-04 00:05:57 -04:00

507 lines
12 KiB
JSON

{
"name": "rm30101",
"source_connection": "sqlserver",
"dest_connection": "usmidsap02",
"dest_table": "gp.rm30101",
"staging_table": "pipekit_staging.rm30101",
"merge_strategy": "incremental",
"merge_key": "docnumbr, rmdtypal",
"enabled": 1,
"dest_description": null,
"description": "Dynamics GP receivables history",
"columns": [
{
"source_name": "CUSTNMBR",
"source_type": "CHAR(15)",
"dest_name": "custnmbr",
"dest_type": "text",
"description": null
},
{
"source_name": "CPRCSTNM",
"source_type": "CHAR(15)",
"dest_name": "cprcstnm",
"dest_type": "text",
"description": null
},
{
"source_name": "DOCNUMBR",
"source_type": "CHAR(21)",
"dest_name": "docnumbr",
"dest_type": "text",
"description": null
},
{
"source_name": "CHEKNMBR",
"source_type": "CHAR(21)",
"dest_name": "cheknmbr",
"dest_type": "text",
"description": null
},
{
"source_name": "BACHNUMB",
"source_type": "CHAR(15)",
"dest_name": "bachnumb",
"dest_type": "text",
"description": null
},
{
"source_name": "BCHSOURC",
"source_type": "CHAR(15)",
"dest_name": "bchsourc",
"dest_type": "text",
"description": null
},
{
"source_name": "TRXSORCE",
"source_type": "CHAR(13)",
"dest_name": "trxsorce",
"dest_type": "text",
"description": null
},
{
"source_name": "RMDTYPAL",
"source_type": "SMALLINT",
"dest_name": "rmdtypal",
"dest_type": "smallint",
"description": null
},
{
"source_name": "DUEDATE",
"source_type": "DATETIME",
"dest_name": "duedate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "DOCDATE",
"source_type": "DATETIME",
"dest_name": "docdate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "POSTDATE",
"source_type": "DATETIME",
"dest_name": "postdate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "PSTUSRID",
"source_type": "CHAR(15)",
"dest_name": "pstusrid",
"dest_type": "text",
"description": null
},
{
"source_name": "GLPOSTDT",
"source_type": "DATETIME",
"dest_name": "glpostdt",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "LSTEDTDT",
"source_type": "DATETIME",
"dest_name": "lstedtdt",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "LSTUSRED",
"source_type": "CHAR(15)",
"dest_name": "lstusred",
"dest_type": "text",
"description": null
},
{
"source_name": "ORTRXAMT",
"source_type": "NUMERIC(19,5)",
"dest_name": "ortrxamt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "CURTRXAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "curtrxam",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "SLSAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "slsamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "COSTAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "costamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "FRTAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "frtamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "MISCAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "miscamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "TAXAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "taxamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "COMDLRAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "comdlram",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "CASHAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "cashamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DISTKNAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "distknam",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DISAVAMT",
"source_type": "NUMERIC(19,5)",
"dest_name": "disavamt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DISCRTND",
"source_type": "NUMERIC(19,5)",
"dest_name": "discrtnd",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DISCDATE",
"source_type": "DATETIME",
"dest_name": "discdate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "DSCDLRAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "dscdlram",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DSCPCTAM",
"source_type": "SMALLINT",
"dest_name": "dscpctam",
"dest_type": "smallint",
"description": null
},
{
"source_name": "WROFAMNT",
"source_type": "NUMERIC(19,5)",
"dest_name": "wrofamnt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "TRXDSCRN",
"source_type": "CHAR(31)",
"dest_name": "trxdscrn",
"dest_type": "text",
"description": null
},
{
"source_name": "CSPORNBR",
"source_type": "CHAR(21)",
"dest_name": "cspornbr",
"dest_type": "text",
"description": null
},
{
"source_name": "SLPRSNID",
"source_type": "CHAR(15)",
"dest_name": "slprsnid",
"dest_type": "text",
"description": null
},
{
"source_name": "SLSTERCD",
"source_type": "CHAR(15)",
"dest_name": "slstercd",
"dest_type": "text",
"description": null
},
{
"source_name": "DINVPDOF",
"source_type": "DATETIME",
"dest_name": "dinvpdof",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "PPSAMDED",
"source_type": "NUMERIC(19,5)",
"dest_name": "ppsamded",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "GSTDSAMT",
"source_type": "NUMERIC(19,5)",
"dest_name": "gstdsamt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "DELETE1",
"source_type": "TINYINT",
"dest_name": "delete1",
"dest_type": "smallint",
"description": null
},
{
"source_name": "TAXSCHID",
"source_type": "CHAR(15)",
"dest_name": "taxschid",
"dest_type": "text",
"description": null
},
{
"source_name": "SLSCHDID",
"source_type": "CHAR(15)",
"dest_name": "slschdid",
"dest_type": "text",
"description": null
},
{
"source_name": "FRTSCHID",
"source_type": "CHAR(15)",
"dest_name": "frtschid",
"dest_type": "text",
"description": null
},
{
"source_name": "MSCSCHID",
"source_type": "CHAR(15)",
"dest_name": "mscschid",
"dest_type": "text",
"description": null
},
{
"source_name": "CURNCYID",
"source_type": "CHAR(15)",
"dest_name": "curncyid",
"dest_type": "text",
"description": null
},
{
"source_name": "SHIPMTHD",
"source_type": "CHAR(15)",
"dest_name": "shipmthd",
"dest_type": "text",
"description": null
},
{
"source_name": "PYMTRMID",
"source_type": "CHAR(21)",
"dest_name": "pymtrmid",
"dest_type": "text",
"description": null
},
{
"source_name": "TRDISAMT",
"source_type": "NUMERIC(19,5)",
"dest_name": "trdisamt",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "NOTEINDX",
"source_type": "NUMERIC(19,5)",
"dest_name": "noteindx",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "VOIDSTTS",
"source_type": "SMALLINT",
"dest_name": "voidstts",
"dest_type": "smallint",
"description": null
},
{
"source_name": "VOIDDATE",
"source_type": "DATETIME",
"dest_name": "voiddate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "BALFWDNM",
"source_type": "CHAR(21)",
"dest_name": "balfwdnm",
"dest_type": "text",
"description": null
},
{
"source_name": "CSHRCTYP",
"source_type": "SMALLINT",
"dest_name": "cshrctyp",
"dest_type": "smallint",
"description": null
},
{
"source_name": "Tax_Date",
"source_type": "DATETIME",
"dest_name": "tax_date",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "APLYWITH",
"source_type": "TINYINT",
"dest_name": "aplywith",
"dest_type": "smallint",
"description": null
},
{
"source_name": "SALEDATE",
"source_type": "DATETIME",
"dest_name": "saledate",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "CORRCTN",
"source_type": "TINYINT",
"dest_name": "corrctn",
"dest_type": "smallint",
"description": null
},
{
"source_name": "SIMPLIFD",
"source_type": "TINYINT",
"dest_name": "simplifd",
"dest_type": "smallint",
"description": null
},
{
"source_name": "Electronic",
"source_type": "TINYINT",
"dest_name": "electronic",
"dest_type": "smallint",
"description": null
},
{
"source_name": "ECTRX",
"source_type": "TINYINT",
"dest_name": "ectrx",
"dest_type": "smallint",
"description": null
},
{
"source_name": "BKTSLSAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "bktslsam",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "BackoutTradeDisc",
"source_type": "NUMERIC(19,5)",
"dest_name": "backouttradedisc",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "BKTFRTAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "bktfrtam",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "BKTMSCAM",
"source_type": "NUMERIC(19,5)",
"dest_name": "bktmscam",
"dest_type": "numeric(19,5)",
"description": null
},
{
"source_name": "Factoring",
"source_type": "TINYINT",
"dest_name": "factoring",
"dest_type": "smallint",
"description": null
},
{
"source_name": "DIRECTDEBIT",
"source_type": "TINYINT",
"dest_name": "directdebit",
"dest_type": "smallint",
"description": null
},
{
"source_name": "ADRSCODE",
"source_type": "CHAR(15)",
"dest_name": "adrscode",
"dest_type": "text",
"description": null
},
{
"source_name": "EFTFLAG",
"source_type": "TINYINT",
"dest_name": "eftflag",
"dest_type": "smallint",
"description": null
},
{
"source_name": "DEX_ROW_TS",
"source_type": "DATETIME",
"dest_name": "dex_row_ts",
"dest_type": "timestamp",
"description": null
},
{
"source_name": "DEX_ROW_ID",
"source_type": "INT",
"dest_name": "dex_row_id",
"dest_type": "integer",
"description": null
}
],
"watermarks": [
{
"name": "rm30101_ts",
"connection": "usmidsap02",
"resolver_sql": "SELECT COALESCE(MAX(dex_row_ts) - INTERVAL '1 day', '1900-01-01') FROM gp.rm30101",
"default_value": "1900-01-01"
}
],
"hooks": []
}