@memberjunction/integration-engine 5.40.2 → 5.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +34 -0
  2. package/dist/BaseIntegrationConnector.d.ts +109 -0
  3. package/dist/BaseIntegrationConnector.d.ts.map +1 -1
  4. package/dist/BaseIntegrationConnector.js +308 -93
  5. package/dist/BaseIntegrationConnector.js.map +1 -1
  6. package/dist/BaseRESTIntegrationConnector.d.ts +32 -0
  7. package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
  8. package/dist/BaseRESTIntegrationConnector.js +182 -28
  9. package/dist/BaseRESTIntegrationConnector.js.map +1 -1
  10. package/dist/ContentHash.d.ts +22 -0
  11. package/dist/ContentHash.d.ts.map +1 -1
  12. package/dist/ContentHash.js +35 -0
  13. package/dist/ContentHash.js.map +1 -1
  14. package/dist/CustomColumnPromotion.d.ts +108 -0
  15. package/dist/CustomColumnPromotion.d.ts.map +1 -0
  16. package/dist/CustomColumnPromotion.js +202 -0
  17. package/dist/CustomColumnPromotion.js.map +1 -0
  18. package/dist/CustomOverflow.d.ts +64 -0
  19. package/dist/CustomOverflow.d.ts.map +1 -0
  20. package/dist/CustomOverflow.js +74 -0
  21. package/dist/CustomOverflow.js.map +1 -0
  22. package/dist/FieldMappingEngine.d.ts.map +1 -1
  23. package/dist/FieldMappingEngine.js +22 -3
  24. package/dist/FieldMappingEngine.js.map +1 -1
  25. package/dist/IntegrationConnectorCreationPipeline.d.ts +33 -0
  26. package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
  27. package/dist/IntegrationConnectorCreationPipeline.js +157 -0
  28. package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
  29. package/dist/IntegrationEngine.d.ts +106 -6
  30. package/dist/IntegrationEngine.d.ts.map +1 -1
  31. package/dist/IntegrationEngine.js +874 -170
  32. package/dist/IntegrationEngine.js.map +1 -1
  33. package/dist/IntegrationSchemaSync.d.ts +84 -13
  34. package/dist/IntegrationSchemaSync.d.ts.map +1 -1
  35. package/dist/IntegrationSchemaSync.js +198 -36
  36. package/dist/IntegrationSchemaSync.js.map +1 -1
  37. package/dist/KeySerialization.d.ts +21 -0
  38. package/dist/KeySerialization.d.ts.map +1 -0
  39. package/dist/KeySerialization.js +29 -0
  40. package/dist/KeySerialization.js.map +1 -0
  41. package/dist/MatchEngine.d.ts.map +1 -1
  42. package/dist/MatchEngine.js +12 -4
  43. package/dist/MatchEngine.js.map +1 -1
  44. package/dist/RecordFlatten.d.ts +49 -0
  45. package/dist/RecordFlatten.d.ts.map +1 -0
  46. package/dist/RecordFlatten.js +50 -0
  47. package/dist/RecordFlatten.js.map +1 -0
  48. package/dist/StreamingDiscovery.d.ts +145 -0
  49. package/dist/StreamingDiscovery.d.ts.map +1 -0
  50. package/dist/StreamingDiscovery.js +306 -0
  51. package/dist/StreamingDiscovery.js.map +1 -0
  52. package/dist/SyncLogger.d.ts +1 -1
  53. package/dist/SyncLogger.d.ts.map +1 -1
  54. package/dist/SyncLogger.js +19 -1
  55. package/dist/SyncLogger.js.map +1 -1
  56. package/dist/auth-helpers/BasicAuthHeaderBuilder.d.ts +36 -0
  57. package/dist/auth-helpers/BasicAuthHeaderBuilder.d.ts.map +1 -0
  58. package/dist/auth-helpers/BasicAuthHeaderBuilder.js +38 -0
  59. package/dist/auth-helpers/BasicAuthHeaderBuilder.js.map +1 -0
  60. package/dist/auth-helpers/OAuth1aSigner.d.ts +56 -0
  61. package/dist/auth-helpers/OAuth1aSigner.d.ts.map +1 -0
  62. package/dist/auth-helpers/OAuth1aSigner.js +91 -0
  63. package/dist/auth-helpers/OAuth1aSigner.js.map +1 -0
  64. package/dist/auth-helpers/OAuth2TokenManager.d.ts +103 -0
  65. package/dist/auth-helpers/OAuth2TokenManager.d.ts.map +1 -0
  66. package/dist/auth-helpers/OAuth2TokenManager.js +143 -0
  67. package/dist/auth-helpers/OAuth2TokenManager.js.map +1 -0
  68. package/dist/auth-helpers/index.d.ts +11 -0
  69. package/dist/auth-helpers/index.d.ts.map +1 -0
  70. package/dist/auth-helpers/index.js +8 -0
  71. package/dist/auth-helpers/index.js.map +1 -0
  72. package/dist/index.d.ts +15 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +9 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/types.d.ts +73 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/package.json +7 -7
@@ -1,17 +1,17 @@
1
1
  /**
2
- * @fileoverview Persists dynamically discovered integration objects and fields
3
- * to the IntegrationObject / IntegrationObjectField tables.
4
- *
5
- * Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
6
- * all objects and fields the connector discovered — not just the static ones
7
- * from mj-sync push.
8
- *
9
- * Static records (IsCustom = false) are never overwritten — they are the
10
- * curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
11
- * When a dynamic field overlaps with a static field, the static record wins
12
- * for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
13
- * dynamic wins for type/size columns (Type, Length, Precision, Scale).
14
- */
2
+ * @fileoverview Persists dynamically discovered integration objects and fields
3
+ * to the IntegrationObject / IntegrationObjectField tables.
4
+ *
5
+ * Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
6
+ * all objects and fields the connector discovered — not just the static ones
7
+ * from mj-sync push.
8
+ *
9
+ * Static records (IsCustom = false) are never overwritten — they are the
10
+ * curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
11
+ * When a dynamic field overlaps with a static field, the static record wins
12
+ * for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
13
+ * dynamic wins for type/size columns (Type, Length, Precision, Scale).
14
+ */
15
15
  import { IMetadataProvider, UserInfo } from '@memberjunction/core';
16
16
  import type { SourceSchemaInfo } from './types.js';
17
17
  import { type IntegrationObjectInfo } from './ActionMetadataGenerator.js';
@@ -27,6 +27,17 @@ export interface PersistSchemaOptions {
27
27
  * Default: true.
28
28
  */
29
29
  UseTransactionGroup?: boolean;
30
+ /**
31
+ * When true, declared IntegrationObjects that are ABSENT from this discovery are deactivated
32
+ * (Status='Disabled') so ApplyAll never materializes a table for them — avoiding thousands of
33
+ * phantom empty tables and the per-entity CodeGen/advancedGen cost they incur. Set ONLY by a
34
+ * COMPREHENSIVE refresh that probed every object (endpoint 404/empty = confidently absent); a
35
+ * requested-subset ApplyAll must leave it false, or it would deactivate objects it never checked.
36
+ * Object-level only — field-level absence (a field null across the data sample is NOT proof of
37
+ * absence) is deliberately not deactivated here. Deactivate, never delete: the IO + its column
38
+ * are preserved, and the CustomColumnPromoter reactivates them if the object reappears.
39
+ */
40
+ DeactivateAbsent?: boolean;
30
41
  }
31
42
  /** Per-field provenance recording which source decided each attribute during the merge. */
32
43
  export interface FieldMergeLog {
@@ -75,6 +86,66 @@ export declare function decideBooleanOverlay(declared: boolean | undefined, disc
75
86
  value: boolean | undefined;
76
87
  winner: 'Declared' | 'Discovered';
77
88
  };
89
+ /** §7 — input for {@link decideAbsentDeactivations}. */
90
+ export interface AbsentDeactivationInput {
91
+ /** Caller requested a deactivating (comprehensive) refresh. */
92
+ DeactivateAbsent: boolean;
93
+ /** Discovery is AUTHORITATIVE — it enumerated the FULL gamut the credentials expose. */
94
+ IsAuthoritative: boolean;
95
+ /** ExternalName of every object this discovery returned. */
96
+ DiscoveredObjectNames: string[];
97
+ /** Per discovered object (by ExternalName): the field names it returned. An EMPTY list means the
98
+ * object's fields are NOT authoritative (DiscoverFields found none) → its columns are never disabled. */
99
+ DiscoveredFieldNamesByObject: Record<string, string[]>;
100
+ /** Current ACTIVE objects in the integration. */
101
+ ActiveObjects: Array<{
102
+ ID: string;
103
+ Name: string;
104
+ }>;
105
+ /** persisted IO ID → its current ACTIVE fields. */
106
+ ActiveFieldsByObjectID: Record<string, Array<{
107
+ ID: string;
108
+ Name: string;
109
+ }>>;
110
+ /** discovered ExternalName (any case) → persisted IO ID. */
111
+ ObjectIDByName: Record<string, string>;
112
+ }
113
+ /**
114
+ * §7 — PURE decision of which active objects/fields a comprehensive AUTHORITATIVE discovery should
115
+ * DEACTIVATE (they are ABSENT from the discovery, so the source dropped them). Returns empty unless
116
+ * BOTH `DeactivateAbsent` AND `IsAuthoritative` — a stubbed/empty/cache-driven/scoped discovery
117
+ * (`IsAuthoritative=false`) deactivates NOTHING, because absence proves nothing and disabling would
118
+ * wrongly wipe the Declared metadata that is the only source. Field-level applies only to objects
119
+ * discovered WITH ≥1 field (zero discovered fields ⇒ not authoritative for that object's columns).
120
+ * The inverse — reactivate-on-rediscover (Disabled → Active when it reappears) — is handled in the
121
+ * upserts, not here. Pure ⇒ unit-testable without mocking the engine or provider.
122
+ */
123
+ export declare function decideAbsentDeactivations(input: AbsentDeactivationInput): {
124
+ ObjectIDsToDeactivate: string[];
125
+ FieldIDsToDeactivate: string[];
126
+ };
127
+ /** §B — input for {@link decideSchemaLimitViolations}: the selected table/column counts + the operator caps. */
128
+ export interface SchemaLimitInput {
129
+ /** Number of tables the user selected to materialize. */
130
+ TableCount: number;
131
+ /** Per selected table: its name + the column count it would materialize. */
132
+ ColumnCountByTable: Array<{
133
+ Name: string;
134
+ ColumnCount: number;
135
+ }>;
136
+ /** Operator cap on table count (from MJ_INTEGRATION_MAX_TABLES). null = unbounded. */
137
+ MaxTables: number | null;
138
+ /** Operator cap on columns per table (from MJ_INTEGRATION_MAX_COLUMNS_PER_TABLE). null = unbounded. */
139
+ MaxColumnsPerTable: number | null;
140
+ }
141
+ /**
142
+ * §B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable
143
+ * violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be
144
+ * able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
145
+ * `null` caps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the
146
+ * resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.
147
+ */
148
+ export declare function decideSchemaLimitViolations(input: SchemaLimitInput): string[];
78
149
  /** Per-object provenance summary. */
79
150
  export interface ObjectMergeLog {
80
151
  ObjectName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,19 @@
1
1
  /**
2
- * @fileoverview Persists dynamically discovered integration objects and fields
3
- * to the IntegrationObject / IntegrationObjectField tables.
4
- *
5
- * Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
6
- * all objects and fields the connector discovered — not just the static ones
7
- * from mj-sync push.
8
- *
9
- * Static records (IsCustom = false) are never overwritten — they are the
10
- * curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
11
- * When a dynamic field overlaps with a static field, the static record wins
12
- * for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
13
- * dynamic wins for type/size columns (Type, Length, Precision, Scale).
14
- */
15
- import { Metadata, RunView } from '@memberjunction/core';
2
+ * @fileoverview Persists dynamically discovered integration objects and fields
3
+ * to the IntegrationObject / IntegrationObjectField tables.
4
+ *
5
+ * Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
6
+ * all objects and fields the connector discovered — not just the static ones
7
+ * from mj-sync push.
8
+ *
9
+ * Static records (IsCustom = false) are never overwritten — they are the
10
+ * curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
11
+ * When a dynamic field overlaps with a static field, the static record wins
12
+ * for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
13
+ * dynamic wins for type/size columns (Type, Length, Precision, Scale).
14
+ */
15
+ import { CompositeKey, LogError, Metadata, RunView } from '@memberjunction/core';
16
16
  import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
17
- import { EnrichSchemaConstraints } from './EnrichSchemaConstraints.js';
18
17
  import { ActionMetadataGenerator } from './ActionMetadataGenerator.js';
19
18
  /**
20
19
  * Pure-function overlay rule for a single boolean attribute.
@@ -45,12 +44,77 @@ export function decideBooleanOverlay(declared, discovered) {
45
44
  }
46
45
  return { value: discovered, winner: 'Discovered' };
47
46
  }
47
+ /**
48
+ * §7 — PURE decision of which active objects/fields a comprehensive AUTHORITATIVE discovery should
49
+ * DEACTIVATE (they are ABSENT from the discovery, so the source dropped them). Returns empty unless
50
+ * BOTH `DeactivateAbsent` AND `IsAuthoritative` — a stubbed/empty/cache-driven/scoped discovery
51
+ * (`IsAuthoritative=false`) deactivates NOTHING, because absence proves nothing and disabling would
52
+ * wrongly wipe the Declared metadata that is the only source. Field-level applies only to objects
53
+ * discovered WITH ≥1 field (zero discovered fields ⇒ not authoritative for that object's columns).
54
+ * The inverse — reactivate-on-rediscover (Disabled → Active when it reappears) — is handled in the
55
+ * upserts, not here. Pure ⇒ unit-testable without mocking the engine or provider.
56
+ */
57
+ export function decideAbsentDeactivations(input) {
58
+ if (!input.DeactivateAbsent || !input.IsAuthoritative) {
59
+ return { ObjectIDsToDeactivate: [], FieldIDsToDeactivate: [] };
60
+ }
61
+ const discovered = new Set(input.DiscoveredObjectNames.map((n) => n.toLowerCase()));
62
+ const ObjectIDsToDeactivate = input.ActiveObjects.filter((o) => !discovered.has(o.Name.toLowerCase())).map((o) => o.ID);
63
+ const FieldIDsToDeactivate = [];
64
+ for (const [objName, fieldNames] of Object.entries(input.DiscoveredFieldNamesByObject)) {
65
+ if (fieldNames.length === 0)
66
+ continue; // not authoritative for this object's columns — never disable them
67
+ const objID = input.ObjectIDByName[objName.toLowerCase()];
68
+ if (!objID)
69
+ continue;
70
+ const discoveredFields = new Set(fieldNames.map((f) => f.toLowerCase()));
71
+ for (const f of input.ActiveFieldsByObjectID[objID] ?? []) {
72
+ if (!discoveredFields.has(f.Name.toLowerCase()))
73
+ FieldIDsToDeactivate.push(f.ID);
74
+ }
75
+ }
76
+ return { ObjectIDsToDeactivate, FieldIDsToDeactivate };
77
+ }
78
+ /**
79
+ * §B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable
80
+ * violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be
81
+ * able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
82
+ * `null` caps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the
83
+ * resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.
84
+ */
85
+ export function decideSchemaLimitViolations(input) {
86
+ const violations = [];
87
+ if (input.MaxTables !== null && input.TableCount > input.MaxTables) {
88
+ violations.push(`Selected ${input.TableCount} tables, which exceeds the deployment's MJ_INTEGRATION_MAX_TABLES limit (${input.MaxTables}). ` +
89
+ `The apply was REJECTED — no tables were created. Narrow the selection (the cap is an operator/env setting).`);
90
+ }
91
+ if (input.MaxColumnsPerTable !== null) {
92
+ const max = input.MaxColumnsPerTable;
93
+ const offenders = input.ColumnCountByTable.filter((t) => t.ColumnCount > max);
94
+ if (offenders.length > 0) {
95
+ violations.push(`These selected table(s) exceed the deployment's MJ_INTEGRATION_MAX_COLUMNS_PER_TABLE limit (${max}): ` +
96
+ `${offenders.map((o) => `${o.Name} (${o.ColumnCount} columns)`).join(', ')}. ` +
97
+ `The apply was REJECTED — no tables were created. Narrow the columns (the cap is an operator/env setting).`);
98
+ }
99
+ }
100
+ return violations;
101
+ }
48
102
  /**
49
103
  * Maps generic source types (from connectors) to MJ EntityField-compatible type strings.
50
104
  */
51
105
  function MapSourceType(sourceType) {
52
106
  const t = (sourceType ?? '').toLowerCase();
53
- if (t === 'string' || t === 'text' || t === 'richtext')
107
+ // LARGE-text modalities → NVARCHAR(MAX). A serialized json/array/object value (and free-form
108
+ // text) routinely exceeds the unsized-string floor (255); mapping these to a bounded `nvarchar`
109
+ // makes the schema builder size them at 255, and the skip-on-overflow policy then DROPS every
110
+ // record whose value is wider than 255 (the OpenWater `Program.rounds` / Path LMS `details`
111
+ // class of bug — a nested array's JSON is ~287 chars). 'nvarchar(MAX)' is a valid IOF.Type and is
112
+ // self-describing (no separate Length needed). Bounded scalar `string` keeps the 255 floor.
113
+ if (t === 'text' || t === 'richtext' || t === 'json' || t === 'object' || t === 'array')
114
+ return 'nvarchar(MAX)';
115
+ if (t === 'nvarchar(max)' || t === 'ntext')
116
+ return 'nvarchar(MAX)'; // already-MAX → preserve on re-discovery
117
+ if (t === 'string')
54
118
  return 'nvarchar';
55
119
  if (t === 'integer' || t === 'int' || t === 'number')
56
120
  return 'nvarchar'; // stored as nvarchar in integration schemas
@@ -97,23 +161,22 @@ export class IntegrationSchemaSync {
97
161
  ObjectMergeLog: [],
98
162
  FieldMergeLog: [],
99
163
  };
100
- // Lightweight constraint discovery: deterministically infer the FKs the source
101
- // did NOT declare (naming-based, provable-only) so discovered objects gain proper
102
- // relationships before the Declared/Discovered merge below resolves them. No AI
103
- // dependency — safe on AI-less BI instances.
104
- EnrichSchemaConstraints.InferForeignKeys(SourceSchema.Objects);
164
+ // §D — NO runtime FK-from-stream inference. Foreign keys come ONLY from (a) declared metadata
165
+ // (the curated .<vendor>.integration.json) or (b) the connector's own DiscoverFields/DiscoverObjects
166
+ // (which read a real describe/schema endpoint and set IsForeignKey + ForeignKeyTarget). Discovery is a
167
+ // lightweight PK-only guess; a naming-heuristic FK guess over the sampled stream produced false edges that
168
+ // skewed the sync DAG, so it was removed. Whatever FK info SourceSchema.Objects already carries flows
169
+ // through the Declared/Discovered merge as-is. (EnrichSchemaConstraints remains exported for offline use.)
105
170
  // Load existing objects for this integration from cache
106
171
  const existingObjects = engine.GetIntegrationObjectsByIntegrationID(IntegrationID);
107
172
  // Phase 1: upsert objects. Object upserts must complete before field upserts
108
173
  // (fields need ObjectID). Within this phase, upserts are independent so we
109
174
  // batch-execute via Promise.all (concurrency cap to avoid hammering the DB).
110
- const objectUpserts = SourceSchema.Objects.map(srcObj => async () => {
175
+ const objectUpserts = SourceSchema.Objects.map((srcObj) => async () => {
111
176
  const objResult = await IntegrationSchemaSync.UpsertObject(md, IntegrationID, srcObj, existingObjects, ContextUser);
112
177
  return { srcObj, ...objResult };
113
178
  });
114
- const objectResults = useBatch
115
- ? await IntegrationSchemaSync.batchExec(objectUpserts, 8)
116
- : await IntegrationSchemaSync.serialExec(objectUpserts);
179
+ const objectResults = useBatch ? await IntegrationSchemaSync.batchExec(objectUpserts, 8) : await IntegrationSchemaSync.serialExec(objectUpserts);
117
180
  for (const r of objectResults) {
118
181
  result.ObjectsCreated += r.Created ? 1 : 0;
119
182
  result.ObjectsUpdated += r.Updated ? 1 : 0;
@@ -140,8 +203,8 @@ export class IntegrationSchemaSync {
140
203
  // Phase 2: upsert fields per object. Across objects is parallelizable; within
141
204
  // an object the field set is sequential against the cached field list.
142
205
  const fieldUpsertJobs = objectResults
143
- .filter(r => r.ObjectID)
144
- .map(r => async () => {
206
+ .filter((r) => r.ObjectID)
207
+ .map((r) => async () => {
145
208
  const existingFields = engine.GetIntegrationObjectFields(r.ObjectID);
146
209
  const perObjectLogs = [];
147
210
  const perObjectStats = { created: 0, updated: 0 };
@@ -170,14 +233,69 @@ export class IntegrationSchemaSync {
170
233
  }));
171
234
  return { stats: perObjectStats, logs: perObjectLogs };
172
235
  });
173
- const fieldResults = useBatch
174
- ? await IntegrationSchemaSync.batchExec(fieldUpsertJobs, 8)
175
- : await IntegrationSchemaSync.serialExec(fieldUpsertJobs);
236
+ const fieldResults = useBatch ? await IntegrationSchemaSync.batchExec(fieldUpsertJobs, 8) : await IntegrationSchemaSync.serialExec(fieldUpsertJobs);
176
237
  for (const fr of fieldResults) {
177
238
  result.FieldsCreated += fr.stats.created;
178
239
  result.FieldsUpdated += fr.stats.updated;
179
240
  result.FieldMergeLog.push(...fr.logs);
180
241
  }
242
+ // Phase 3 (gated): deactivate phantom objects/fields — declared IOs/IOFs ABSENT from this discovery,
243
+ // so ApplyAll never materializes them (the phantom-table / advancedGen-cost problem). Runs ONLY when
244
+ // BOTH (a) the caller requested it (DeactivateAbsent) AND (b) the discovery is AUTHORITATIVE — it
245
+ // enumerated the FULL gamut the credentials expose (SourceSchema.IsAuthoritative). A stubbed/empty or
246
+ // cache-driven discovery has IsAuthoritative=false, so absence proves NOTHING and nothing is disabled
247
+ // (else it would wrongly wipe the Declared metadata that is the only source). Deactivate, never delete.
248
+ if (opts.DeactivateAbsent && SourceSchema.IsAuthoritative) {
249
+ // Gather the active set + per-discovered-object fields, then let the PURE decision
250
+ // (decideAbsentDeactivations — unit-tested) choose what to Disable. The EFFECT (load + Save) is
251
+ // applied here; the CHOICE lives in the pure function so it is testable without mocking the engine.
252
+ const discoveredFieldNamesByObject = {};
253
+ const objectIDByName = {};
254
+ const activeFieldsByObjectID = {};
255
+ for (const r of objectResults) {
256
+ if (!r.ObjectID)
257
+ continue;
258
+ discoveredFieldNamesByObject[r.srcObj.ExternalName] = r.srcObj.Fields.map((f) => f.Name);
259
+ objectIDByName[r.srcObj.ExternalName.toLowerCase()] = r.ObjectID;
260
+ activeFieldsByObjectID[r.ObjectID] = engine
261
+ .GetIntegrationObjectFields(r.ObjectID)
262
+ .filter((iof) => iof.Status === 'Active')
263
+ .map((iof) => ({ ID: iof.ID, Name: iof.Name }));
264
+ }
265
+ const decision = decideAbsentDeactivations({
266
+ DeactivateAbsent: true,
267
+ IsAuthoritative: true,
268
+ DiscoveredObjectNames: SourceSchema.Objects.map((o) => o.ExternalName),
269
+ DiscoveredFieldNamesByObject: discoveredFieldNamesByObject,
270
+ ActiveObjects: engine.GetActiveIntegrationObjects(IntegrationID).map((io) => ({ ID: io.ID, Name: io.Name })),
271
+ ActiveFieldsByObjectID: activeFieldsByObjectID,
272
+ ObjectIDByName: objectIDByName,
273
+ });
274
+ let deactivated = 0;
275
+ for (const id of decision.ObjectIDsToDeactivate) {
276
+ const obj = await md.GetEntityObject('MJ: Integration Objects', ContextUser);
277
+ if (await obj.InnerLoad(CompositeKey.FromID(id))) {
278
+ obj.Status = 'Disabled'; // deactivate (Active|Deprecated|Disabled enum); never delete
279
+ if (await obj.Save())
280
+ deactivated++;
281
+ else
282
+ LogError(`[IntegrationSchemaSync] Failed to deactivate phantom object ${id}: ${obj.LatestResult?.CompleteMessage ?? 'unknown'}`);
283
+ }
284
+ }
285
+ let fieldsDeactivated = 0;
286
+ for (const id of decision.FieldIDsToDeactivate) {
287
+ const f = await md.GetEntityObject('MJ: Integration Object Fields', ContextUser);
288
+ if (await f.InnerLoad(CompositeKey.FromID(id))) {
289
+ f.Status = 'Disabled'; // deactivate, never delete
290
+ if (await f.Save())
291
+ fieldsDeactivated++;
292
+ else
293
+ LogError(`[IntegrationSchemaSync] Failed to deactivate phantom field ${id}: ${f.LatestResult?.CompleteMessage ?? 'unknown'}`);
294
+ }
295
+ }
296
+ if (deactivated > 0 || fieldsDeactivated > 0)
297
+ console.log(`[IntegrationSchemaSync] Deactivated ${deactivated} object(s) + ${fieldsDeactivated} field(s) absent from authoritative discovery for ${IntegrationID} (not materialized, not deleted).`);
298
+ }
181
299
  console.log(`[IntegrationSchemaSync] Persisted schema for ${IntegrationID}: ${result.ObjectsCreated} objects created, ${result.ObjectsUpdated} updated, ${result.FieldsCreated} fields created, ${result.FieldsUpdated} updated`);
182
300
  return result;
183
301
  }
@@ -211,7 +329,7 @@ export class IntegrationSchemaSync {
211
329
  }
212
330
  // ── Object upsert ────────────────────────────────────────────────
213
331
  static async UpsertObject(md, integrationID, srcObj, existingObjects, contextUser) {
214
- const existing = existingObjects.find(o => o.Name.toLowerCase() === srcObj.ExternalName.toLowerCase());
332
+ const existing = existingObjects.find((o) => o.Name.toLowerCase() === srcObj.ExternalName.toLowerCase());
215
333
  if (existing) {
216
334
  // Declared row exists. Discovery may enrich (e.g. Description if empty,
217
335
  // IncrementalWatermarkField if newly observed). Curated values win for
@@ -233,11 +351,22 @@ export class IntegrationSchemaSync {
233
351
  dirty = true;
234
352
  changes.push('IncrementalWatermarkField');
235
353
  }
354
+ // §7 REACTIVATE-on-rediscover: an object the source dropped (and we Disabled) that REAPPEARS in a
355
+ // later discovery flips back to Active — deactivation is reversible, the active set always tracks
356
+ // the live source. Matched against ALL rows (GetIntegrationObjectsByIntegrationID), so a Disabled
357
+ // row is found and reactivated rather than duplicated (UQ_IntegrationObject_Name).
358
+ if (existing.Status !== 'Active') {
359
+ existing.Status = 'Active';
360
+ dirty = true;
361
+ changes.push('Status:reactivated');
362
+ }
236
363
  if (dirty) {
237
364
  try {
238
365
  await existing.Save();
239
366
  }
240
- catch { /* ignore save failures on declared records */ }
367
+ catch {
368
+ /* ignore save failures on declared records */
369
+ }
241
370
  console.log(JSON.stringify({
242
371
  ts: new Date().toISOString(),
243
372
  event: 'persist.object.updated',
@@ -268,6 +397,12 @@ export class IntegrationSchemaSync {
268
397
  obj.NewRecord();
269
398
  obj.IntegrationID = integrationID;
270
399
  obj.Name = srcObj.ExternalName;
400
+ // APIPath is NOT NULL with no DB default. Declared objects get it from the metadata file;
401
+ // a runtime-DISCOVERED object has no source APIPath (ExternalObjectSchema carries none),
402
+ // so default it to the object name. Path-driven connectors read APIPath; runtime-discovery
403
+ // connectors (e.g. a file feed) key off the object name and ignore it. Without this,
404
+ // Save() fails the NOT-NULL check and the discovered object is silently lost.
405
+ obj.APIPath = srcObj.ExternalName;
271
406
  obj.DisplayName = srcObj.ExternalLabel || srcObj.ExternalName;
272
407
  if (srcObj.Description)
273
408
  obj.Description = srcObj.Description;
@@ -289,6 +424,9 @@ export class IntegrationSchemaSync {
289
424
  }));
290
425
  return { ObjectID: obj.ID, Created: true, Updated: false, EffectiveSource: 'Discovered' };
291
426
  }
427
+ // Save() returned false (validation/constraint failure) WITHOUT throwing — SURFACE it.
428
+ // A silent false here is exactly how discovered objects vanished with zero signal.
429
+ console.warn(`[IntegrationSchemaSync] Save() returned false creating IntegrationObject '${srcObj.ExternalName}': ${obj.LatestResult?.CompleteMessage ?? 'unknown validation failure'}`);
292
430
  }
293
431
  catch (err) {
294
432
  console.warn(`[IntegrationSchemaSync] Failed to create IntegrationObject '${srcObj.ExternalName}': ${err instanceof Error ? err.message : err}`);
@@ -302,7 +440,7 @@ export class IntegrationSchemaSync {
302
440
  return undefined;
303
441
  return siblingNameToID.get(target.toLowerCase());
304
442
  };
305
- const existing = existingFields.find(f => f.Name.toLowerCase() === srcField.Name.toLowerCase());
443
+ const existing = existingFields.find((f) => f.Name.toLowerCase() === srcField.Name.toLowerCase());
306
444
  const winners = {};
307
445
  if (existing) {
308
446
  // Declared row exists. Overlay rule:
@@ -314,6 +452,12 @@ export class IntegrationSchemaSync {
314
452
  // attribute so the caller (progress emitter, UI) can show structural
315
453
  // transparency on the merge.
316
454
  let dirty = false;
455
+ // §7 REACTIVATE-on-rediscover: a field the source dropped (and we Disabled) that REAPPEARS flips
456
+ // back to Active. existingFields includes Disabled rows, so it is reactivated, not duplicated.
457
+ if (existing.Status !== 'Active') {
458
+ existing.Status = 'Active';
459
+ dirty = true;
460
+ }
317
461
  const mappedType = MapSourceType(srcField.SourceType);
318
462
  const describedAllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
319
463
  if (existing.Type !== mappedType) {
@@ -324,6 +468,13 @@ export class IntegrationSchemaSync {
324
468
  else {
325
469
  winners.Type = 'Declared';
326
470
  }
471
+ // Length is DDL-affecting (describe wins): seed it so the column is sized
472
+ // nvarchar(N) instead of defaulting to NVARCHAR(MAX) downstream. (Large-text types carry
473
+ // their MAX in the Type itself — 'nvarchar(MAX)' — via MapSourceType, so no length here.)
474
+ if (srcField.MaxLength != null && existing.Length !== srcField.MaxLength) {
475
+ existing.Length = srcField.MaxLength;
476
+ dirty = true;
477
+ }
327
478
  if (existing.AllowsNull !== describedAllowsNull) {
328
479
  existing.AllowsNull = describedAllowsNull;
329
480
  dirty = true;
@@ -408,6 +559,11 @@ export class IntegrationSchemaSync {
408
559
  if (srcField.Description)
409
560
  field.Description = srcField.Description;
410
561
  field.Type = MapSourceType(srcField.SourceType);
562
+ // Persist the discovered length onto IOF.Length so the schema builder sizes the column
563
+ // (nvarchar(N)). Large-text types carry their MAX in the Type ('nvarchar(MAX)') via
564
+ // MapSourceType, so no length is set for them here.
565
+ if (srcField.MaxLength != null)
566
+ field.Length = srcField.MaxLength;
411
567
  field.AllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
412
568
  field.IsPrimaryKey = srcField.IsPrimaryKey;
413
569
  field.IsRequired = srcField.IsRequired;
@@ -424,9 +580,15 @@ export class IntegrationSchemaSync {
424
580
  }
425
581
  const saved = await field.Save();
426
582
  const initialWinners = {
427
- Type: 'Initial', Length: 'Initial', AllowsNull: 'Initial',
428
- IsRequired: 'Initial', IsPrimaryKey: 'Initial', IsUniqueKey: 'Initial',
429
- IsReadOnly: 'Initial', Description: 'Initial', ForeignKey: 'Initial',
583
+ Type: 'Initial',
584
+ Length: 'Initial',
585
+ AllowsNull: 'Initial',
586
+ IsRequired: 'Initial',
587
+ IsPrimaryKey: 'Initial',
588
+ IsUniqueKey: 'Initial',
589
+ IsReadOnly: 'Initial',
590
+ Description: 'Initial',
591
+ ForeignKey: 'Initial',
430
592
  };
431
593
  return { Created: saved, Updated: false, EffectiveSource: 'Discovered', AttributeWinners: initialWinners };
432
594
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Key-value serialization for record identity.
3
+ *
4
+ * `serializeKeyValue` mirrors the engine's write-side value coercion (see
5
+ * `IntegrationEngine` value-handling: object/array → `JSON.stringify`, NOT the JS default
6
+ * `"[object Object]"`). It is used to build a record's composite ExternalID / load key from
7
+ * its primary-key field VALUES, so the key derived at load time equals the value persisted in
8
+ * the column for object-valued PKs — without this, every object-valued PK would collapse to
9
+ * `"[object Object]"` and all such records would share one identity (the duplicate-row class
10
+ * of bug).
11
+ *
12
+ * Contract (pinned by call sites in `BaseRESTIntegrationConnector`, `MatchEngine`,
13
+ * `IntegrationEngine.extractMappedPrimaryKey`):
14
+ * - `null` / `undefined` → `''` (empty string). Callers treat `''` as a missing key component
15
+ * (`if (s === '') return null` / `serializeKeyValue(v).length > 0`), which routes genuinely
16
+ * keyless / partial-key rows to the content-hash identity fallback rather than a bogus key.
17
+ * - plain object / array (anything `typeof === 'object'` that is not a `Date`) → `JSON.stringify`.
18
+ * - everything else (string / number / boolean / Date / bigint / symbol) → `String(value)`.
19
+ */
20
+ export declare function serializeKeyValue(value: unknown): string;
21
+ //# sourceMappingURL=KeySerialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeySerialization.d.ts","sourceRoot":"","sources":["../src/KeySerialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQxD"}