@memberjunction/integration-engine 5.38.0 → 5.40.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.
- package/dist/ActionMetadataGenerator.d.ts +8 -1
- package/dist/ActionMetadataGenerator.d.ts.map +1 -1
- package/dist/ActionMetadataGenerator.js +22 -3
- package/dist/ActionMetadataGenerator.js.map +1 -1
- package/dist/AdaptiveConcurrency.d.ts +85 -0
- package/dist/AdaptiveConcurrency.d.ts.map +1 -0
- package/dist/AdaptiveConcurrency.js +148 -0
- package/dist/AdaptiveConcurrency.js.map +1 -0
- package/dist/BaseIntegrationConnector.d.ts +127 -3
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +126 -11
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +80 -15
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +314 -64
- package/dist/BaseRESTIntegrationConnector.js.map +1 -1
- package/dist/ConflictRecency.d.ts +24 -0
- package/dist/ConflictRecency.d.ts.map +1 -0
- package/dist/ConflictRecency.js +25 -0
- package/dist/ConflictRecency.js.map +1 -0
- package/dist/ContentHash.d.ts +28 -0
- package/dist/ContentHash.d.ts.map +1 -0
- package/dist/ContentHash.js +54 -0
- package/dist/ContentHash.js.map +1 -0
- package/dist/EnrichSchemaConstraints.d.ts +59 -0
- package/dist/EnrichSchemaConstraints.d.ts.map +1 -0
- package/dist/EnrichSchemaConstraints.js +168 -0
- package/dist/EnrichSchemaConstraints.js.map +1 -0
- package/dist/FieldMappingEngine.d.ts +22 -0
- package/dist/FieldMappingEngine.d.ts.map +1 -1
- package/dist/FieldMappingEngine.js +66 -5
- package/dist/FieldMappingEngine.js.map +1 -1
- package/dist/HashDiff.d.ts +68 -0
- package/dist/HashDiff.d.ts.map +1 -0
- package/dist/HashDiff.js +108 -0
- package/dist/HashDiff.js.map +1 -0
- package/dist/IntegrationActionGenerator.d.ts +93 -0
- package/dist/IntegrationActionGenerator.d.ts.map +1 -0
- package/dist/IntegrationActionGenerator.js +313 -0
- package/dist/IntegrationActionGenerator.js.map +1 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts +86 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -0
- package/dist/IntegrationConnectorCreationPipeline.js +226 -0
- package/dist/IntegrationConnectorCreationPipeline.js.map +1 -0
- package/dist/IntegrationEngine.d.ts +199 -1
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +1592 -109
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/IntegrationSchemaSync.d.ts +82 -0
- package/dist/IntegrationSchemaSync.d.ts.map +1 -1
- package/dist/IntegrationSchemaSync.js +289 -42
- package/dist/IntegrationSchemaSync.js.map +1 -1
- package/dist/MatchEngine.d.ts.map +1 -1
- package/dist/MatchEngine.js +4 -0
- package/dist/MatchEngine.js.map +1 -1
- package/dist/RateLimiter.d.ts +117 -0
- package/dist/RateLimiter.d.ts.map +1 -0
- package/dist/RateLimiter.js +159 -0
- package/dist/RateLimiter.js.map +1 -0
- package/dist/SyncLogger.d.ts +106 -0
- package/dist/SyncLogger.d.ts.map +1 -0
- package/dist/SyncLogger.js +176 -0
- package/dist/SyncLogger.js.map +1 -0
- package/dist/WatermarkService.d.ts +36 -1
- package/dist/WatermarkService.d.ts.map +1 -1
- package/dist/WatermarkService.js +113 -3
- package/dist/WatermarkService.js.map +1 -1
- package/dist/index.d.ts +23 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +52 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -6
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RunView } from '@memberjunction/core';
|
|
2
2
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
3
3
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
4
|
+
import { computeContentHash } from './ContentHash.js';
|
|
4
5
|
import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
|
|
5
6
|
/** Maximum number of pages to fetch before stopping (safety limit to prevent infinite loops) */
|
|
6
7
|
// ─── BaseRESTIntegrationConnector ────────────────────────────────────
|
|
@@ -16,6 +17,22 @@ import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
|
|
|
16
17
|
* this class and implement only auth, HTTP transport, and response normalization.
|
|
17
18
|
*/
|
|
18
19
|
export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
20
|
+
/**
|
|
21
|
+
* Optional per-record CUSTOMIZATION hook called between NormalizeResponse
|
|
22
|
+
* (vendor envelope-stripping) and ToExternalRecord (composite-PK assembly).
|
|
23
|
+
*
|
|
24
|
+
* Distinct from NormalizeResponse — that strips the vendor's response envelope
|
|
25
|
+
* to expose individual records. This hook is for vendor-specific record-level
|
|
26
|
+
* customization the standard pipeline shouldn't carry: nested-field flattening,
|
|
27
|
+
* empty-string→null coercion for date columns, computed fields, removing vendor
|
|
28
|
+
* metadata blobs (e.g. Salesforce 'attributes'), etc.
|
|
29
|
+
*
|
|
30
|
+
* Default is identity (no transform). Override only when a concrete connector
|
|
31
|
+
* needs vendor-specific shape changes.
|
|
32
|
+
*/
|
|
33
|
+
TransformRecord(raw, _obj, _fields) {
|
|
34
|
+
return raw;
|
|
35
|
+
}
|
|
19
36
|
// ── BaseIntegrationConnector implementations ─────────────────────
|
|
20
37
|
/**
|
|
21
38
|
* Discovers available objects from the IntegrationEngineBase cache.
|
|
@@ -70,6 +87,190 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
70
87
|
}
|
|
71
88
|
return this.FetchFlat(auth, baseURL, obj, fields, ctx);
|
|
72
89
|
}
|
|
90
|
+
// ── Generic metadata-driven CRUD ─────────────────────────────────
|
|
91
|
+
//
|
|
92
|
+
// These implementations read per-operation columns from IntegrationObject
|
|
93
|
+
// (CreateAPIPath/Method/BodyShape/BodyKey/IDLocation, Update*, Delete*) and
|
|
94
|
+
// execute generically. Concrete connectors should only override when the API
|
|
95
|
+
// is genuinely idiosyncratic (multi-step writes, custom body envelopes that
|
|
96
|
+
// don't fit flat/wrapped, etc.) — the metadata-driven path handles the
|
|
97
|
+
// common case for ~all REST connectors and removes the duplicate write logic
|
|
98
|
+
// that previously lived in every concrete class.
|
|
99
|
+
//
|
|
100
|
+
// Null-capability honesty: if a metadata column is null, the corresponding
|
|
101
|
+
// verb is NOT supported via the generic path. SupportsCreate/Update/Delete
|
|
102
|
+
// capability getters on BaseIntegrationConnector should be overridden to
|
|
103
|
+
// reflect the actual column population.
|
|
104
|
+
/** Generic create: reads CreateAPIPath/Method/BodyShape/BodyKey/IDLocation from the IO row. */
|
|
105
|
+
async CreateRecord(ctx) {
|
|
106
|
+
const ci = ctx.CompanyIntegration;
|
|
107
|
+
const contextUser = ctx.ContextUser;
|
|
108
|
+
const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
|
|
109
|
+
if (!obj.CreateAPIPath || !obj.CreateMethod) {
|
|
110
|
+
throw new Error(`CreateRecord not supported for "${ctx.ObjectName}": ` +
|
|
111
|
+
`CreateAPIPath / CreateMethod not configured on IntegrationObject. ` +
|
|
112
|
+
`Either populate metadata or override CreateRecord in the concrete connector.`);
|
|
113
|
+
}
|
|
114
|
+
const auth = await this.Authenticate(ci, contextUser);
|
|
115
|
+
const baseURL = this.GetBaseURL(ci, auth);
|
|
116
|
+
const headers = this.BuildHeaders(auth);
|
|
117
|
+
const url = this.BuildFullURL(baseURL, obj.CreateAPIPath);
|
|
118
|
+
const body = this.BuildOperationBody(ctx.Attributes, obj.CreateBodyShape, obj.CreateBodyKey);
|
|
119
|
+
const response = await this.MakeHTTPRequest(auth, url, obj.CreateMethod, headers, body);
|
|
120
|
+
if (response.Status >= 200 && response.Status < 300) {
|
|
121
|
+
const externalID = this.ExtractIDFromResponse(response, obj.CreateIDLocation);
|
|
122
|
+
return this.BuildCreatedResult(externalID, response.Status, ctx.ObjectName);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
Success: false,
|
|
126
|
+
StatusCode: response.Status,
|
|
127
|
+
ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on create`,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/** Generic update: reads UpdateAPIPath/Method/BodyShape/BodyKey/IDLocation from the IO row. */
|
|
131
|
+
async UpdateRecord(ctx) {
|
|
132
|
+
const ci = ctx.CompanyIntegration;
|
|
133
|
+
const contextUser = ctx.ContextUser;
|
|
134
|
+
const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
|
|
135
|
+
if (!obj.UpdateAPIPath || !obj.UpdateMethod) {
|
|
136
|
+
throw new Error(`UpdateRecord not supported for "${ctx.ObjectName}": ` +
|
|
137
|
+
`UpdateAPIPath / UpdateMethod not configured on IntegrationObject.`);
|
|
138
|
+
}
|
|
139
|
+
const auth = await this.Authenticate(ci, contextUser);
|
|
140
|
+
const baseURL = this.GetBaseURL(ci, auth);
|
|
141
|
+
const headers = this.BuildHeaders(auth);
|
|
142
|
+
const url = this.BuildFullURL(baseURL, this.SubstituteIDInPath(obj.UpdateAPIPath, ctx.ExternalID, obj.UpdateIDLocation));
|
|
143
|
+
const body = this.BuildOperationBody(ctx.Attributes, obj.UpdateBodyShape, obj.UpdateBodyKey);
|
|
144
|
+
const response = await this.MakeHTTPRequest(auth, url, obj.UpdateMethod, headers, body);
|
|
145
|
+
if (response.Status >= 200 && response.Status < 300) {
|
|
146
|
+
return { Success: true, StatusCode: response.Status, ExternalID: ctx.ExternalID };
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
Success: false,
|
|
150
|
+
StatusCode: response.Status,
|
|
151
|
+
ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on update`,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** Generic delete: reads DeleteAPIPath/DeleteMethod/DeleteIDLocation from the IO row. */
|
|
155
|
+
async DeleteRecord(ctx) {
|
|
156
|
+
const ci = ctx.CompanyIntegration;
|
|
157
|
+
const contextUser = ctx.ContextUser;
|
|
158
|
+
const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
|
|
159
|
+
if (!obj.DeleteAPIPath || !obj.DeleteMethod) {
|
|
160
|
+
throw new Error(`DeleteRecord not supported for "${ctx.ObjectName}": ` +
|
|
161
|
+
`DeleteAPIPath / DeleteMethod not configured on IntegrationObject.`);
|
|
162
|
+
}
|
|
163
|
+
const auth = await this.Authenticate(ci, contextUser);
|
|
164
|
+
const baseURL = this.GetBaseURL(ci, auth);
|
|
165
|
+
const headers = this.BuildHeaders(auth);
|
|
166
|
+
const url = this.BuildFullURL(baseURL, this.SubstituteIDInPath(obj.DeleteAPIPath, ctx.ExternalID, obj.DeleteIDLocation));
|
|
167
|
+
const response = await this.MakeHTTPRequest(auth, url, obj.DeleteMethod, headers);
|
|
168
|
+
if (response.Status >= 200 && response.Status < 300) {
|
|
169
|
+
return { Success: true, StatusCode: response.Status, ExternalID: ctx.ExternalID };
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
Success: false,
|
|
173
|
+
StatusCode: response.Status,
|
|
174
|
+
ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on delete`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/** Generic get-one: hits APIPath/{ID} via GET. Override if API uses non-standard get shape. */
|
|
178
|
+
async GetRecord(ctx) {
|
|
179
|
+
const ci = ctx.CompanyIntegration;
|
|
180
|
+
const contextUser = ctx.ContextUser;
|
|
181
|
+
const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
|
|
182
|
+
const fields = this.GetCachedFields(obj.ID);
|
|
183
|
+
const auth = await this.Authenticate(ci, contextUser);
|
|
184
|
+
const baseURL = this.GetBaseURL(ci, auth);
|
|
185
|
+
const headers = this.BuildHeaders(auth);
|
|
186
|
+
// Reuse UpdateAPIPath when present (typically same as get-one path); fall back to APIPath + /{id}
|
|
187
|
+
const getPath = obj.UpdateAPIPath
|
|
188
|
+
? this.SubstituteIDInPath(obj.UpdateAPIPath, ctx.ExternalID, obj.UpdateIDLocation)
|
|
189
|
+
: `${obj.APIPath.replace(/\/+$/, '')}/${encodeURIComponent(ctx.ExternalID)}`;
|
|
190
|
+
const url = this.BuildFullURL(baseURL, getPath);
|
|
191
|
+
const response = await this.MakeHTTPRequest(auth, url, 'GET', headers);
|
|
192
|
+
if (response.Status === 404)
|
|
193
|
+
return null;
|
|
194
|
+
if (response.Status < 200 || response.Status >= 300) {
|
|
195
|
+
throw new Error(`GetRecord failed for "${ctx.ObjectName}" id "${ctx.ExternalID}": HTTP ${response.Status}`);
|
|
196
|
+
}
|
|
197
|
+
const records = this.NormalizeResponse(response.Body, obj.ResponseDataKey);
|
|
198
|
+
if (records.length === 0)
|
|
199
|
+
return null;
|
|
200
|
+
const transformed = this.TransformRecord(records[0], obj, fields);
|
|
201
|
+
return this.ToExternalRecord(transformed, ctx.ObjectName, this.FindPrimaryKeyFieldNames(fields));
|
|
202
|
+
}
|
|
203
|
+
// ── CRUD helpers ─────────────────────────────────────────────────
|
|
204
|
+
/**
|
|
205
|
+
* Build the operation request body per BodyShape:
|
|
206
|
+
* - 'flat' → body = attributes verbatim
|
|
207
|
+
* - 'wrapped' → body = { [BodyKey]: attributes }
|
|
208
|
+
* - 'literal' → connector should have overridden the operation; fall back to flat as safety net
|
|
209
|
+
* - null → default to flat (most common shape)
|
|
210
|
+
*/
|
|
211
|
+
BuildOperationBody(attributes, bodyShape, bodyKey) {
|
|
212
|
+
if (bodyShape === 'wrapped' && bodyKey) {
|
|
213
|
+
return { [bodyKey]: attributes };
|
|
214
|
+
}
|
|
215
|
+
return attributes;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Substitute the ExternalID into a URL path template at runtime. Path templates
|
|
219
|
+
* may use {ID}, {id}, or {ExternalID} as the placeholder; for symmetry with
|
|
220
|
+
* FetchChanges template-var handling, any unsubstituted {var} in the template
|
|
221
|
+
* is left in place (caller's responsibility to ensure consistency).
|
|
222
|
+
*
|
|
223
|
+
* For IDLocation='body' or 'header' the ID is not substituted into the path
|
|
224
|
+
* (caller must handle separately); we just return the raw path.
|
|
225
|
+
*/
|
|
226
|
+
SubstituteIDInPath(path, externalID, idLocation) {
|
|
227
|
+
if (idLocation && idLocation !== 'path')
|
|
228
|
+
return path;
|
|
229
|
+
const encoded = encodeURIComponent(externalID);
|
|
230
|
+
return path
|
|
231
|
+
.replace(/\{ID\}/g, encoded)
|
|
232
|
+
.replace(/\{id\}/g, encoded)
|
|
233
|
+
.replace(/\{ExternalID\}/g, encoded);
|
|
234
|
+
}
|
|
235
|
+
/** Best-effort error message extraction from a vendor response. Override for vendor-specific shapes. */
|
|
236
|
+
ExtractErrorMessage(response) {
|
|
237
|
+
if (!response.Body || typeof response.Body !== 'object')
|
|
238
|
+
return undefined;
|
|
239
|
+
const b = response.Body;
|
|
240
|
+
if (typeof b.message === 'string')
|
|
241
|
+
return b.message;
|
|
242
|
+
if (typeof b.error === 'string')
|
|
243
|
+
return b.error;
|
|
244
|
+
if (b.errors && Array.isArray(b.errors) && b.errors.length > 0) {
|
|
245
|
+
return JSON.stringify(b.errors);
|
|
246
|
+
}
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
249
|
+
/** Extract the new record's external ID from a create response per IDLocation. */
|
|
250
|
+
ExtractIDFromResponse(response, idLocation) {
|
|
251
|
+
// Default: parse from response body — most APIs return the new object with its ID at root
|
|
252
|
+
if (!idLocation || idLocation === 'body') {
|
|
253
|
+
if (response.Body && typeof response.Body === 'object') {
|
|
254
|
+
const b = response.Body;
|
|
255
|
+
// Try common ID field names; concrete connectors can override for vendor-specific shapes
|
|
256
|
+
for (const k of ['id', 'ID', 'Id', 'externalID', 'ExternalID']) {
|
|
257
|
+
if (typeof b[k] === 'string' || typeof b[k] === 'number')
|
|
258
|
+
return String(b[k]);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return undefined;
|
|
262
|
+
}
|
|
263
|
+
if (idLocation === 'header') {
|
|
264
|
+
// Location header is the most common; concrete connectors override for non-standard headers
|
|
265
|
+
const loc = response.Headers?.['location'] ?? response.Headers?.['Location'];
|
|
266
|
+
if (typeof loc === 'string') {
|
|
267
|
+
const m = loc.match(/[/=]([^/?&#]+)$/);
|
|
268
|
+
return m ? m[1] : loc;
|
|
269
|
+
}
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
73
274
|
// ── Flat fetch (no template variables) ───────────────────────────
|
|
74
275
|
/**
|
|
75
276
|
* Fetches records from a flat endpoint (no template variable substitution).
|
|
@@ -79,7 +280,7 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
79
280
|
const result = await this.FetchWithPagination(auth, fullPath, obj, ctx);
|
|
80
281
|
const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
|
|
81
282
|
return {
|
|
82
|
-
Records: result.Records.map(r => this.ToExternalRecord(r, ctx.ObjectName, pkFieldNames)),
|
|
283
|
+
Records: result.Records.map(r => this.ToExternalRecord(this.TransformRecord(r, obj, fields), ctx.ObjectName, pkFieldNames)),
|
|
83
284
|
HasMore: result.HasMore,
|
|
84
285
|
NextPage: result.NextPage,
|
|
85
286
|
NextOffset: result.NextOffset,
|
|
@@ -88,91 +289,129 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
88
289
|
}
|
|
89
290
|
// ── Per-parent fetch (template variables) ────────────────────────
|
|
90
291
|
/**
|
|
91
|
-
* Fetches records from a template-variable endpoint
|
|
92
|
-
*
|
|
93
|
-
*
|
|
292
|
+
* Fetches records from a template-variable endpoint, generalized to MULTI-LEVEL
|
|
293
|
+
* (nested / chained) paths such as `/orgs/{OrgID}/depts/{DeptID}/employees`.
|
|
294
|
+
*
|
|
295
|
+
* Each `{var}` is resolved to a parent IntegrationObject; the engine then walks the
|
|
296
|
+
* FK dependency graph in path order (outermost first), loading each level's parent
|
|
297
|
+
* IDs — filtered by the OUTER parent via FK when one links them (true nested
|
|
298
|
+
* semantics, avoids a cartesian 404 storm), or unfiltered when the vars are
|
|
299
|
+
* independent — substituting them into the path until it is flat, then fetching.
|
|
300
|
+
* This is the connector-side realization of the topological traversal the engine
|
|
301
|
+
* already uses for sync ORDER. A single-var path behaves exactly as before.
|
|
94
302
|
*/
|
|
95
303
|
async FetchWithTemplateVars(auth, baseURL, obj, fields, templateVars, ctx) {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
304
|
+
const resolutions = [];
|
|
305
|
+
const seenParents = new Set();
|
|
306
|
+
for (const tVar of templateVars) {
|
|
307
|
+
const info = this.ResolveParentForVar(fields, tVar, ctx.CompanyIntegration.IntegrationID);
|
|
308
|
+
if (!info) {
|
|
309
|
+
console.warn(`[BaseRESTIntegrationConnector] Skipping "${obj.Name}": template variable ` +
|
|
310
|
+
`{${tVar}} could not be resolved to a parent object.`);
|
|
311
|
+
return { Records: [], HasMore: false };
|
|
312
|
+
}
|
|
313
|
+
// Cycle guard: a parent chain that revisits an object is a metadata error —
|
|
314
|
+
// name the offending edge instead of looping forever.
|
|
315
|
+
if (seenParents.has(info.parentObjectID)) {
|
|
316
|
+
console.warn(`[BaseRESTIntegrationConnector] Skipping "${obj.Name}": template-var dependency ` +
|
|
317
|
+
`cycle at {${tVar}} → a parent object already present in the chain.`);
|
|
318
|
+
return { Records: [], HasMore: false };
|
|
319
|
+
}
|
|
320
|
+
seenParents.add(info.parentObjectID);
|
|
321
|
+
resolutions.push(info);
|
|
101
322
|
}
|
|
102
|
-
const parentIDs = await this.LoadParentIDs(parentInfo.parentObjectID, ctx.ContextUser);
|
|
103
323
|
const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
324
|
+
const out = [];
|
|
325
|
+
await this.DescendTemplateVars(auth, baseURL, obj, fields, resolutions, 0, obj.APIPath, {}, [], ctx, pkFieldNames, out);
|
|
326
|
+
return { Records: out, HasMore: false };
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Recursive descent over the ordered template-var resolutions, one layer per level.
|
|
330
|
+
*
|
|
331
|
+
* Each layer's records are constrained to the valid SUBSET of the combinations of
|
|
332
|
+
* ALL prior layers: this level's parent is filtered by an FK to EVERY prior-layer
|
|
333
|
+
* parent it links to (AND-combined). A prior layer this parent has no FK to leaves
|
|
334
|
+
* that axis unconstrained (cartesian). So `outerStack` carries every prior layer's
|
|
335
|
+
* (objectID, idValue) — not just the immediate parent — which is what makes a
|
|
336
|
+
* layer-2 endpoint depending on both layer-0 and layer-1 prune correctly. At the leaf
|
|
337
|
+
* (all vars substituted) it fetches with pagination and tags each record with the
|
|
338
|
+
* resolved parent FK values.
|
|
339
|
+
*/
|
|
340
|
+
async DescendTemplateVars(auth, baseURL, obj, fields, resolutions, level, path, fkTags, outerStack, ctx, pkFieldNames, out) {
|
|
341
|
+
if (level >= resolutions.length) {
|
|
342
|
+
const fullURL = this.BuildFullURL(baseURL, path);
|
|
108
343
|
const result = await this.FetchWithPagination(auth, fullURL, obj, ctx);
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
344
|
+
for (const r of result.Records) {
|
|
345
|
+
for (const [k, v] of Object.entries(fkTags))
|
|
346
|
+
r[k] = v;
|
|
347
|
+
const transformed = this.TransformRecord(r, obj, fields);
|
|
348
|
+
out.push(this.ToExternalRecord(transformed, ctx.ObjectName, pkFieldNames));
|
|
349
|
+
}
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const res = resolutions[level];
|
|
353
|
+
// Prune to the valid subset: one AND-filter per prior layer this parent has an FK to.
|
|
354
|
+
const filters = [];
|
|
355
|
+
for (const prior of outerStack) {
|
|
356
|
+
const fkCol = this.FindFKColumnToParent(res.parentObjectID, prior.objectID);
|
|
357
|
+
if (fkCol)
|
|
358
|
+
filters.push({ column: fkCol, value: prior.idValue });
|
|
359
|
+
}
|
|
360
|
+
const parentIDs = await this.LoadParentIDs(res.parentObjectID, ctx.ContextUser, filters);
|
|
361
|
+
for (const parentID of parentIDs) {
|
|
362
|
+
const nextPath = this.SubstituteTemplateVars(path, res.templateVar, parentID);
|
|
363
|
+
const nextTags = { ...fkTags, [res.fkFieldName]: parentID };
|
|
364
|
+
await this.DescendTemplateVars(auth, baseURL, obj, fields, resolutions, level + 1, nextPath, nextTags, [...outerStack, { objectID: res.parentObjectID, idValue: parentID }], ctx, pkFieldNames, out);
|
|
114
365
|
}
|
|
115
|
-
return { Records: allRecords, HasMore: false };
|
|
116
366
|
}
|
|
117
367
|
/**
|
|
118
|
-
* Resolves
|
|
368
|
+
* Resolves a SINGLE template variable to its parent object + FK field.
|
|
119
369
|
*
|
|
120
|
-
*
|
|
121
|
-
* 1. Explicit: FK field
|
|
122
|
-
* 2. PK fallback:
|
|
123
|
-
*
|
|
370
|
+
* Strategy (in order):
|
|
371
|
+
* 1. Explicit: an FK field (RelatedIntegrationObjectID) whose name matches the var.
|
|
372
|
+
* 2. PK fallback: a sibling integration object whose primary-key field name matches
|
|
373
|
+
* the var (e.g. {ProfileID} → the Members object whose PK field is "ProfileID"),
|
|
374
|
+
* allowing resolution without explicit FK metadata.
|
|
124
375
|
*
|
|
125
|
-
* Returns null
|
|
376
|
+
* Returns null when neither strategy matches.
|
|
126
377
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
378
|
+
ResolveParentForVar(fields, templateVar, integrationID) {
|
|
379
|
+
const tVarLower = templateVar.toLowerCase();
|
|
380
|
+
// Strategy 1: explicit FK field whose name matches this var.
|
|
129
381
|
for (const field of fields) {
|
|
130
382
|
if (!field.RelatedIntegrationObjectID)
|
|
131
383
|
continue;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return {
|
|
135
|
-
templateVar: tVar,
|
|
136
|
-
fkFieldName: field.Name,
|
|
137
|
-
parentObjectID: field.RelatedIntegrationObjectID,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
384
|
+
if (field.Name.toLowerCase().includes(tVarLower)) {
|
|
385
|
+
return { templateVar, fkFieldName: field.Name, parentObjectID: field.RelatedIntegrationObjectID };
|
|
140
386
|
}
|
|
141
387
|
}
|
|
142
|
-
// Strategy 2:
|
|
143
|
-
return this.ResolveParentByPKMatch(templateVars, integrationID);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Fallback resolution: finds a sibling integration object whose primary key
|
|
147
|
-
* field name matches one of the template variables (case-insensitive).
|
|
148
|
-
* E.g., {ProfileID} matches Members object which has PK field "ProfileID".
|
|
149
|
-
*/
|
|
150
|
-
ResolveParentByPKMatch(templateVars, integrationID) {
|
|
388
|
+
// Strategy 2: sibling object whose PK field name equals this var.
|
|
151
389
|
const siblingObjects = IntegrationEngineBase.Instance.GetActiveIntegrationObjects(integrationID);
|
|
152
|
-
for (const
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (!pkField)
|
|
158
|
-
continue;
|
|
159
|
-
if (pkField.Name.toLowerCase() === tVarLower) {
|
|
160
|
-
return {
|
|
161
|
-
templateVar: tVar,
|
|
162
|
-
fkFieldName: tVar, // Use the template var name as the FK field name
|
|
163
|
-
parentObjectID: sibling.ID,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
390
|
+
for (const sibling of siblingObjects) {
|
|
391
|
+
const siblingFields = IntegrationEngineBase.Instance.GetIntegrationObjectFields(sibling.ID);
|
|
392
|
+
const pkField = siblingFields.find(f => f.IsPrimaryKey);
|
|
393
|
+
if (pkField && pkField.Name.toLowerCase() === tVarLower) {
|
|
394
|
+
return { templateVar, fkFieldName: templateVar, parentObjectID: sibling.ID };
|
|
166
395
|
}
|
|
167
396
|
}
|
|
168
397
|
return null;
|
|
169
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Finds the FK column on `innerObjectID` that points at `outerObjectID` — used to
|
|
401
|
+
* filter a child level by its parent in a nested path. Returns null when no FK links
|
|
402
|
+
* them, in which case that level loads unfiltered (independent vars / cartesian).
|
|
403
|
+
*/
|
|
404
|
+
FindFKColumnToParent(innerObjectID, outerObjectID) {
|
|
405
|
+
const innerFields = IntegrationEngineBase.Instance.GetIntegrationObjectFields(innerObjectID);
|
|
406
|
+
const fk = innerFields.find(f => f.RelatedIntegrationObjectID && UUIDsEqual(f.RelatedIntegrationObjectID, outerObjectID));
|
|
407
|
+
return fk ? fk.Name : null;
|
|
408
|
+
}
|
|
170
409
|
/**
|
|
171
410
|
* Loads parent record IDs from the local MJ database.
|
|
172
411
|
* Uses IntegrationEngineBase cache for object/field metadata lookups,
|
|
173
412
|
* then queries the MJ entity via RunView for actual synced record IDs.
|
|
174
413
|
*/
|
|
175
|
-
async LoadParentIDs(parentObjectID, contextUser) {
|
|
414
|
+
async LoadParentIDs(parentObjectID, contextUser, filters) {
|
|
176
415
|
// Use engine cache for metadata lookups
|
|
177
416
|
const parentObj = IntegrationEngineBase.Instance.GetIntegrationObjectByID(parentObjectID);
|
|
178
417
|
if (!parentObj) {
|
|
@@ -194,9 +433,15 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
194
433
|
return [];
|
|
195
434
|
}
|
|
196
435
|
const entityName = entityMapResult.Results[0].Entity;
|
|
436
|
+
// Constrain to the rows satisfying every prior-layer FK (AND). Bare identifiers →
|
|
437
|
+
// the PG provider auto-quotes them; values are single-quote-escaped.
|
|
438
|
+
const extraFilter = filters && filters.length > 0
|
|
439
|
+
? filters.map(f => `${f.column}='${String(f.value).replace(/'/g, "''")}'`).join(' AND ')
|
|
440
|
+
: undefined;
|
|
197
441
|
const idResult = await rv.RunView({
|
|
198
442
|
EntityName: entityName,
|
|
199
443
|
Fields: [pkFieldName],
|
|
444
|
+
ExtraFilter: extraFilter,
|
|
200
445
|
ResultType: 'simple',
|
|
201
446
|
}, contextUser);
|
|
202
447
|
if (!idResult.Success)
|
|
@@ -412,11 +657,16 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
412
657
|
* For composite primary keys, joins all PK values with '|' to form a unique ExternalID.
|
|
413
658
|
*/
|
|
414
659
|
ToExternalRecord(raw, objectType, pkFieldNames) {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
660
|
+
// §4 synthetic-PK fallback: only treat the PK as usable when EVERY component is present
|
|
661
|
+
// (a composite key with a missing part — e.g. "abc|" — is not a stable identity). When any
|
|
662
|
+
// part is missing, fall back to a deterministic content-derived identity (identity hash) so
|
|
663
|
+
// PK-less / partial-key tables are still syncable + dedupable. Stable while content is unchanged.
|
|
664
|
+
const allPkPresent = pkFieldNames.length > 0
|
|
665
|
+
&& pkFieldNames.every(name => raw[name] != null && String(raw[name]).length > 0);
|
|
666
|
+
const externalID = pkFieldNames.map(name => String(raw[name] ?? '')).join('|');
|
|
667
|
+
const resolvedID = allPkPresent ? externalID : computeContentHash(raw);
|
|
418
668
|
return {
|
|
419
|
-
ExternalID:
|
|
669
|
+
ExternalID: resolvedID,
|
|
420
670
|
ObjectType: objectType,
|
|
421
671
|
Fields: raw,
|
|
422
672
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "MostRecent" conflict resolution helper.
|
|
3
|
+
*
|
|
4
|
+
* When a field changed on BOTH sides since the last sync (a true bidirectional
|
|
5
|
+
* conflict) and the entity map's ConflictResolution policy is `MostRecent`, the side
|
|
6
|
+
* that was modified more recently wins. This compares the MJ row's last-update time
|
|
7
|
+
* against the external record's modified time at RECORD granularity (most sources
|
|
8
|
+
* don't expose per-field timestamps), and returns null when either timestamp is
|
|
9
|
+
* missing/unparseable so the caller can fall back to DestWins — a conflict is never
|
|
10
|
+
* silently dropped on missing data.
|
|
11
|
+
*
|
|
12
|
+
* Pure + dependency-free so it is cheaply unit-testable; the engine wires it to
|
|
13
|
+
* `__mj_UpdatedAt` (MJ side) and `ExternalRecord.ModifiedAt` (external side).
|
|
14
|
+
*/
|
|
15
|
+
export type RecencyWinner = 'mj' | 'external';
|
|
16
|
+
/** Parses a Date / epoch-number / ISO-string into epoch ms; null if not a usable timestamp. */
|
|
17
|
+
export declare function parseTimestamp(v: unknown): number | null;
|
|
18
|
+
/**
|
|
19
|
+
* Returns which side wins under MostRecent, or null when the comparison can't be made.
|
|
20
|
+
* Ties go to 'mj' (DestWins-style tiebreak) — the local edit is assumed authoritative
|
|
21
|
+
* when both stamps are equal.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mostRecentWinner(mjUpdatedAt: unknown, externalModifiedAt: unknown): RecencyWinner | null;
|
|
24
|
+
//# sourceMappingURL=ConflictRecency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictRecency.d.ts","sourceRoot":"","sources":["../src/ConflictRecency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,CAAC;AAE9C,+FAA+F;AAC/F,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAKxG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Parses a Date / epoch-number / ISO-string into epoch ms; null if not a usable timestamp. */
|
|
2
|
+
export function parseTimestamp(v) {
|
|
3
|
+
if (v instanceof Date)
|
|
4
|
+
return Number.isNaN(v.getTime()) ? null : v.getTime();
|
|
5
|
+
if (typeof v === 'number')
|
|
6
|
+
return Number.isFinite(v) ? v : null;
|
|
7
|
+
if (typeof v === 'string' && v.length > 0) {
|
|
8
|
+
const t = Date.parse(v);
|
|
9
|
+
return Number.isNaN(t) ? null : t;
|
|
10
|
+
}
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns which side wins under MostRecent, or null when the comparison can't be made.
|
|
15
|
+
* Ties go to 'mj' (DestWins-style tiebreak) — the local edit is assumed authoritative
|
|
16
|
+
* when both stamps are equal.
|
|
17
|
+
*/
|
|
18
|
+
export function mostRecentWinner(mjUpdatedAt, externalModifiedAt) {
|
|
19
|
+
const mjTs = parseTimestamp(mjUpdatedAt);
|
|
20
|
+
const extTs = parseTimestamp(externalModifiedAt);
|
|
21
|
+
if (mjTs == null || extTs == null)
|
|
22
|
+
return null;
|
|
23
|
+
return mjTs >= extTs ? 'mj' : 'external';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ConflictRecency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictRecency.js","sourceRoot":"","sources":["../src/ConflictRecency.ts"],"names":[],"mappings":"AAgBA,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,CAAU;IACrC,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7E,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAoB,EAAE,kBAA2B;IAC9E,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACjD,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7C,CAAC"}
|