@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,3 +1,6 @@
1
+ import { discoverFromStream, pickKeyFromStats, pickPrimaryKeyFromStats, } from './StreamingDiscovery.js';
2
+ import { AdaptiveConcurrencyController, RunAdaptive } from './AdaptiveConcurrency.js';
3
+ import { flattenRecord, hasNestedObject } from './RecordFlatten.js';
1
4
  /** Default timeout values for connector operations */
2
5
  export const DEFAULT_OPERATION_TIMEOUTS = {
3
6
  TestConnectionMs: 5000,
@@ -141,6 +144,20 @@ export class BaseIntegrationConnector {
141
144
  * Override to push to the source's real limits.
142
145
  */
143
146
  get RateLimitPolicy() { return null; }
147
+ /**
148
+ * Whether the watermark this connector returns (`FetchBatchResult.NewWatermarkValue`) is a
149
+ * RELIABLE, monotonically-increasing global maximum — i.e. the connector fetches in watermark
150
+ * order so the last batch's value IS the true high-water mark, and an updated record always
151
+ * re-surfaces at a NEW (higher) watermark. When `true`, the engine uses that watermark to NARROW
152
+ * the next incremental (instead of advancing a full sync to wall-clock "now", and instead of the
153
+ * keyset clear-and-re-scan), so incrementals fetch only what's new.
154
+ *
155
+ * Default `false` — the safe, backwards-compatible choice: a connector whose source returns
156
+ * records out of watermark order (e.g. HubSpot's creation-ordered list API, where the last batch
157
+ * can carry old modstamps) MUST stay false so the engine keeps advancing to "now" and never saves
158
+ * a stale watermark. Override to `true` ONLY when the source guarantees monotonic ordering.
159
+ */
160
+ get MonotonicWatermark() { return false; }
144
161
  /**
145
162
  * Parse a Retry-After / rate-limit signal out of a failed response or thrown error into
146
163
  * milliseconds so the engine can back off precisely. Return `undefined` when the error is not a
@@ -185,6 +202,197 @@ export class BaseIntegrationConnector {
185
202
  * applies target-type constraint enforcement; this is the connector-side complement.
186
203
  */
187
204
  PostProcessRecord(record) { return record; }
205
+ /**
206
+ * Stage-2 field discovery for sources WITHOUT a describe/introspection endpoint (file feeds,
207
+ * undocumented JSON list endpoints): stream the source's actual records — READ-ONLY, no save,
208
+ * no ack — and derive the full field set + data-informed PK/uniqueness/nullability from the
209
+ * gathered statistics. The connector supplies whatever read-only fetch yields the records; this
210
+ * helper turns that stream into `ExternalFieldSchema[]`.
211
+ *
212
+ * Why data-informed: streaming the real values lets `pickPrimaryKeyFromStats` pick the PK from
213
+ * evidence (uniqueness/non-null statistics) COMBINED with the naming convention, rather than a
214
+ * name guess alone. The PK is a SOFT key, so the pick is best-available, not strict-significance:
215
+ * a confident unique+non-null column wins outright; otherwise a near-unique / convention-named
216
+ * column is taken as a soft key (a PK-less object would stall CodeGen). The scan is time-bounded —
217
+ * it stops on exhaustion OR `opts.Discovery.TimeBudgetMs`; more rows simply mean stronger claims.
218
+ *
219
+ * Provable-only encoding into the standard flags:
220
+ * - `IsPrimaryKey` — set ONLY on the single statistics-first pick. Multiple equally-ranked unique
221
+ * columns leave PK unset here (ambiguous → the pipeline's `SoftPKClassifier` LLM tiebreaker
222
+ * decides, fed these same stats). Zero unique columns → no PK is fabricated.
223
+ * - `IsUniqueKey` — set when the column was all-distinct over the scan AND uniqueness was provable
224
+ * (the distinct-cap wasn't hit).
225
+ * - `AllowsNull` — asserted `true` ONLY when a null/absent value was actually observed; otherwise
226
+ * left undefined (permissive default). Never fabricates NOT NULL — critical under a time-capped
227
+ * partial scan where unseen rows could still be null.
228
+ *
229
+ * The PK emitted here is SOFT (it rides additionalSchemaInfo via the persist + DDL path; it is
230
+ * NEVER a hard DB key), so a wrong inference can never reject a valid row — the engine dedupes via
231
+ * the record-map. `IsReadOnly` defaults to true (stream discovery targets read feeds); a writable
232
+ * source overrides via `opts.ReadOnly`.
233
+ *
234
+ * @param records - A read-only sync/async iterable of source records (the caller's fetch yields them).
235
+ * @param opts.Discovery - Time budget / sample caps for the scan (see {@link StreamDiscoveryOptions}).
236
+ * @param opts.Pk - Significance threshold + naming-rank tiebreaker (see {@link PkPickOptions}).
237
+ * @param opts.ReadOnly - Whether discovered fields are read-only. Default true.
238
+ */
239
+ async DiscoverFieldsViaStream(records, opts = {}) {
240
+ // Flatten nested objects so the column corpus + PK pick see SCALAR fields (e.g.
241
+ // checkin_question.id → checkin_question_id) instead of an object-valued blob being chosen
242
+ // as the key. Mirrors the sync-intake flatten (FieldMappingEngine) EXACTLY, so the field
243
+ // names discovered here match what sync produces. A flat record passes through unchanged.
244
+ async function* flattenRecords() {
245
+ for await (const r of records)
246
+ yield hasNestedObject(r) ? flattenRecord(r) : r;
247
+ }
248
+ const scan = await discoverFromStream(flattenRecords(), opts.Discovery);
249
+ // Provable-only identity in ONE pass: best contender per subset size (1,2,3…) → the SMALLEST
250
+ // size whose best contender is a provable key (single OR composite), decided by the Chao1
251
+ // domain-saturation test on the streamed sample. No fabricated keys; a genuinely-keyless object
252
+ // simply gets no PK and is honestly not added downstream.
253
+ const key = pickKeyFromStats(scan.Columns, scan.RowSamples, opts.Pk);
254
+ let pkFieldNames = key.Fields ?? [];
255
+ let pkReason = key.Reason;
256
+ if (pkFieldNames.length === 0) {
257
+ // No PROVABLE key (Chao1 saturated, or sub-significance sample). Fall back to a SOFT
258
+ // best-available SINGLE-column pick: a convention-named column ('id'-like) carrying an
259
+ // identity signal (non-null on every row + near-unique/distinct-capped). Rationale: a
260
+ // PK-less entity STALLS CodeGen — it skips spCreate/Update/Delete + views for that table,
261
+ // exits non-zero, and aborts ApplyAll. A soft key is dedup-only (can NEVER reject a row),
262
+ // so "all keys are soft, best-available" keeps the table syncable. Genuinely-signal-less
263
+ // objects still get no PK (content-hash identity handles dedup).
264
+ // #A4 — tell the PK picker whether the scan saw the WHOLE stream; a time-budget-truncated scan
265
+ // must not yield a confident soft key from a partial prefix.
266
+ const soft = pickPrimaryKeyFromStats(scan.Columns, { ...opts.Pk, ScanComplete: scan.StoppedReason !== 'time-budget' });
267
+ if (soft.Field) {
268
+ pkFieldNames = [soft.Field];
269
+ pkReason = `[soft-fallback] ${soft.Reason}`;
270
+ }
271
+ }
272
+ const pkFields = new Set(pkFieldNames);
273
+ // Diagnostic: the verdict + per-column stats, so a keyless object is an explained decision.
274
+ const stats = scan.Columns.map(c => `${c.Key}(occ=${c.Occurrences}/${c.TotalRows},distinct=${c.DistinctNonNull}${c.DistinctCapped ? ',capped' : ''})`).join(', ');
275
+ console.log(`[DiscoverFieldsViaStream] key pick — rows=${scan.RowSamples.length} | ${pkReason} | cols: [${stats}]`);
276
+ const readOnly = opts.ReadOnly ?? true;
277
+ return scan.Columns.map(c => {
278
+ const provablyUnique = !c.DistinctCapped && c.Occurrences > 0 && c.DistinctNonNull === c.Occurrences;
279
+ const isKey = pkFields.has(c.Key);
280
+ const field = {
281
+ Name: c.Key,
282
+ Label: c.Key,
283
+ DataType: c.Inferred.SchemaFieldType,
284
+ IsRequired: false,
285
+ IsUniqueKey: provablyUnique,
286
+ IsReadOnly: readOnly,
287
+ };
288
+ // §10 — discovered columns default NULLABLE. A sample can prove a value CAN be null but can
289
+ // NEVER prove NOT NULL, and a wrong NOT NULL rejects real rows. So always permit null here;
290
+ // a genuine NOT NULL only ever comes from an explicit source-declared "required".
291
+ field.AllowsNull = true;
292
+ // Statistics-first PK: mark each component of the chosen identity (single column or the
293
+ // greedy composite set). Empty set = genuinely keyless → content-hash identity handles dedup.
294
+ if (isKey)
295
+ field.IsPrimaryKey = true;
296
+ // §11 — ALWAYS size with generous headroom: a streamed-sample max is NOT the true max, so pad
297
+ // well above it (≥2×, rounded up to a standard bucket) so the next-larger record never
298
+ // truncates. Key columns stay capped at the 450-byte index-key limit so they remain
299
+ // PK-eligible (and never NVARCHAR(MAX), which can't be a key); unproven length uses that cap.
300
+ field.MaxLength = (() => {
301
+ const m = c.Inferred.MaxLength;
302
+ if (m == null || m <= 0) {
303
+ // Unknown length (#A5): a KEY must stay within the index-key limit (≤450, never MAX) so it
304
+ // remains PK-eligible. But a NON-key field of unknown length must size GENEROUSLY — defaulting
305
+ // it to 450 too silently TRUNCATED long descriptions / URLs / blobs. Err large + bounded.
306
+ return isKey ? 450 : 4000;
307
+ }
308
+ const padded = [32, 64, 128, 256, 512, 1024, 2048, 4000].find(b => b >= m * 2) ?? 4000;
309
+ return isKey ? Math.min(padded, 450) : padded;
310
+ })();
311
+ return field;
312
+ });
313
+ }
314
+ /**
315
+ * Discovery via the connector's READ PATH ({@link FetchChanges}), TIME-BOUNDED — the way to gather
316
+ * a statistically-significant sample when a single {@link DiscoverFields} sample is too small to
317
+ * PROVE a key. "Discovery is the sync read path with the save removed."
318
+ *
319
+ * Loops FetchChanges as a read-only FULL fetch (WatermarkValue=null, nothing persisted), threading
320
+ * pagination/keyset cursors across batches, and streams every record through the data-informed
321
+ * field + provable-PK inference. It stops at the discovery TIME BUDGET (default 5 min), or a record
322
+ * cap, or source exhaustion — whichever comes first — so the provable-PK decision is made on as much
323
+ * real data as the budget allows. It NEVER fabricates a key: if even this larger sample yields no
324
+ * provable single/composite PK, the field set comes back PK-less and the object is honestly not added.
325
+ *
326
+ * Falls back to the single-sample {@link DiscoverFields} if the read path can't run for this object
327
+ * (e.g. a connector whose FetchChanges needs an already-persisted IO row that doesn't exist yet).
328
+ */
329
+ async DiscoverFieldsViaFetch(companyIntegration, objectName, contextUser, opts = {}) {
330
+ // Discovery budgets are operator-tunable via env (time- or record-count-based — either bounds it);
331
+ // explicit opts win, then env, then the sensible defaults. The record cap usually hits before time.
332
+ const envInt = (name, fb) => {
333
+ const v = parseInt(process.env[name] ?? '', 10);
334
+ return Number.isFinite(v) && v > 0 ? v : fb;
335
+ };
336
+ // §A — per-connection overrides via Configuration (set over GraphQL through IntegrationSetSyncConfig).
337
+ // Precedence: explicit opts > per-connection Configuration > operator env > default.
338
+ let cfg = {};
339
+ try {
340
+ if (companyIntegration.Configuration)
341
+ cfg = JSON.parse(companyIntegration.Configuration);
342
+ }
343
+ catch { /* malformed → defaults */ }
344
+ const cfgInt = (v) => (typeof v === 'number' && Number.isFinite(v) && v > 0 ? Math.floor(v) : undefined);
345
+ const timeBudgetMs = opts.TimeBudgetMs ?? cfgInt(cfg.discoveryTimeBudgetMs) ?? envInt('MJ_INTEGRATION_DISCOVERY_TIME_BUDGET_MS', 5 * 60 * 1000);
346
+ const batchSize = opts.BatchSize ?? cfgInt(cfg.discoveryBatchSize) ?? envInt('MJ_INTEGRATION_DISCOVERY_BATCH_SIZE', 500);
347
+ // §C — default sample is SMALL (one batch). Discovery only needs a column corpus + a lightweight
348
+ // PK guess + type inference — NOT a full scan. The old 5000 default caused a 100-objects × 5000-rows
349
+ // read storm on no-describe (file-feed) sources for zero added schema fidelity (the runtime soft-PK
350
+ // classifier judges uniqueness on the live data, not this sample; custom-column overflow captures any
351
+ // late-appearing field). Operator-tunable via env or, per-connection, the IntegrationSetSyncConfig
352
+ // `discoveryMaxRecords` knob. Sampling itself is the FALLBACK path — used only when the source lacks a
353
+ // describe endpoint that yields pk+type+columns; a describe-capable connector returns here-unused.
354
+ const maxRecords = opts.MaxRecords ?? envInt('MJ_INTEGRATION_DISCOVERY_MAX_RECORDS', 500);
355
+ const self = this;
356
+ async function* readPathStream() {
357
+ let ctx = {
358
+ CompanyIntegration: companyIntegration,
359
+ ObjectName: objectName,
360
+ WatermarkValue: null, // FULL fetch — discovery wants breadth, not the incremental delta
361
+ BatchSize: batchSize,
362
+ ContextUser: contextUser,
363
+ };
364
+ let yielded = 0;
365
+ for (;;) {
366
+ const batch = await self.FetchChanges(ctx);
367
+ for (const rec of batch.Records) {
368
+ yield rec.Fields;
369
+ if (++yielded >= maxRecords)
370
+ return;
371
+ }
372
+ if (!batch.HasMore)
373
+ break;
374
+ ctx = {
375
+ ...ctx,
376
+ WatermarkValue: null,
377
+ CurrentPage: batch.NextPage,
378
+ CurrentOffset: batch.NextOffset,
379
+ CurrentCursor: batch.NextCursor,
380
+ AfterKeyValue: batch.NextAfterKeyValue ?? ctx.AfterKeyValue,
381
+ };
382
+ }
383
+ }
384
+ try {
385
+ return await this.DiscoverFieldsViaStream(readPathStream(), {
386
+ Discovery: { TimeBudgetMs: timeBudgetMs },
387
+ ReadOnly: true,
388
+ });
389
+ }
390
+ catch (err) {
391
+ const msg = err instanceof Error ? err.message : String(err);
392
+ console.warn(`[DiscoverFieldsViaFetch] read-path discovery failed for "${objectName}" (${msg}); falling back to single-sample DiscoverFields.`);
393
+ return this.DiscoverFields(companyIntegration, objectName, contextUser);
394
+ }
395
+ }
188
396
  /**
189
397
  * Returns suggested default field mappings for an external object to MJ entity.
190
398
  * Override in subclasses to provide intelligent defaults.
@@ -264,113 +472,120 @@ export class BaseIntegrationConnector {
264
472
  * @param options - Optional filter to restrict introspection to a subset of objects
265
473
  * @returns Full schema info for all (or the requested subset of) source objects
266
474
  */
475
+ /**
476
+ * §7 — does this connector's discovery (DiscoverObjects/DiscoverFields → IntrospectSchema) return the
477
+ * AUTHORITATIVE, COMPLETE gamut of objects/fields the credentials expose? Default **false** (safe):
478
+ * a connector must explicitly affirm this. Override to `true` ONLY when DiscoverObjects hits a real
479
+ * list/describe endpoint that returns EVERYTHING accessible — so an object/field absent from a refresh
480
+ * genuinely means the source dropped it (and may be deactivated). Leave false for stubbed discovery
481
+ * (returns nothing → static metadata is all we have), a cache-driven IntrospectSchema, or any
482
+ * partial/scoped enumeration — there, absence proves nothing and MUST NOT deactivate.
483
+ */
484
+ get DiscoveryIsAuthoritative() {
485
+ return false;
486
+ }
267
487
  async IntrospectSchema(companyIntegration, contextUser, options) {
268
488
  const allObjects = await this.DiscoverObjects(companyIntegration, contextUser);
269
489
  const wanted = options?.ObjectNames && options.ObjectNames.length > 0
270
490
  ? new Set(options.ObjectNames)
271
491
  : null;
272
492
  const objects = wanted ? allObjects.filter(o => wanted.has(o.Name)) : allObjects;
273
- const result = { Objects: [] };
274
- // Parallel describe — sequential is brutal when a connector has
275
- // hundreds of objects to introspect (Sage Intacct can run ~30 minutes
276
- // sequentially on a large catalog). 8-way is a safe default that
277
- // mirrors the Salesforce override and respects most APIs' rate limits.
278
- const CONCURRENCY = 8;
493
+ // §7 — a SCOPED introspection (ObjectNames filter) is never authoritative over the whole surface,
494
+ // so it can never drive deactivation even if the connector affirms authoritative discovery.
495
+ const result = { Objects: [], IsAuthoritative: this.DiscoveryIsAuthoritative && !wanted };
496
+ // Parallel describe via the SAME control law the sync engine uses for its layers —
497
+ // `RunAdaptive` + `AdaptiveConcurrencyController` (AIMD). Discovery IS the sync read path with
498
+ // the save removed, so it shares the concurrency machinery rather than a separate fixed pool:
499
+ // it ramps UP on clean describes and CUTS on a throttle (detected via the connector's
500
+ // `ExtractRetryAfterMs`). The cap honors the connector's `MaxConcurrencyHint` + a per-connection
501
+ // `Configuration.maxConcurrency` override (the same `IntegrationSetSyncConfig` knob that tunes
502
+ // sync). Default start is 8 — a read-only introspection sweep tolerates more parallelism than
503
+ // the write path's default of 1; sequential introspection is brutal (Sage Intacct ~30 min).
279
504
  const total = objects.length;
280
505
  const startMs = Date.now();
281
- let nextIdx = 0;
282
506
  let succeeded = 0;
283
507
  let skipped = 0;
284
- const worker = async () => {
285
- while (true) {
286
- const myIdx = nextIdx++;
287
- if (myIdx >= total)
288
- return;
289
- const obj = objects[myIdx];
290
- const objStart = Date.now();
291
- console.log(JSON.stringify({
292
- ts: new Date().toISOString(),
293
- event: 'introspect.object.start',
294
- objectIndex: myIdx + 1,
295
- total,
296
- objectName: obj.Name,
297
- }));
298
- let fields;
299
- try {
300
- fields = await this.DiscoverFields(companyIntegration, obj.Name, contextUser);
301
- }
302
- catch (err) {
303
- const msg = err instanceof Error ? err.message : String(err);
304
- console.warn(`WARNING: Skipping object "${obj.Name}" — DiscoverFields failed: ${msg}`);
305
- console.log(JSON.stringify({
306
- ts: new Date().toISOString(),
307
- event: 'introspect.object.skipped',
308
- objectIndex: myIdx + 1,
309
- total,
310
- objectName: obj.Name,
311
- error: msg,
312
- durationMs: Date.now() - objStart,
313
- }));
314
- skipped++;
315
- continue;
316
- }
508
+ const DEFAULT_DISCOVERY_CONCURRENCY = 8;
509
+ let maxConcurrency = Math.max(DEFAULT_DISCOVERY_CONCURRENCY, this.MaxConcurrencyHint ?? 0);
510
+ try {
511
+ const raw = companyIntegration.Configuration;
512
+ if (raw) {
513
+ const m = JSON.parse(raw).maxConcurrency;
514
+ if (typeof m === 'number' && Number.isFinite(m) && m >= 1)
515
+ maxConcurrency = Math.floor(m);
516
+ }
517
+ }
518
+ catch { /* malformed Configuration → defaults */ }
519
+ const controller = new AdaptiveConcurrencyController({
520
+ start: Math.min(DEFAULT_DISCOVERY_CONCURRENCY, Math.max(1, maxConcurrency)),
521
+ min: 1,
522
+ max: Math.max(1, maxConcurrency),
523
+ });
524
+ const introspectOne = async (obj) => {
525
+ const objStart = Date.now();
526
+ console.log(JSON.stringify({
527
+ ts: new Date().toISOString(), event: 'introspect.object.start', objectName: obj.Name, total,
528
+ }));
529
+ let fields;
530
+ try {
531
+ fields = await this.DiscoverFields(companyIntegration, obj.Name, contextUser);
532
+ }
533
+ catch (err) {
534
+ const msg = err instanceof Error ? err.message : String(err);
535
+ console.warn(`WARNING: Skipping object "${obj.Name}" — DiscoverFields failed: ${msg}`);
317
536
  console.log(JSON.stringify({
318
- ts: new Date().toISOString(),
319
- event: 'introspect.object.complete',
320
- objectIndex: myIdx + 1,
321
- total,
322
- objectName: obj.Name,
323
- fieldsDiscovered: fields.length,
324
- primaryKeyFields: fields.filter(f => f.IsPrimaryKey).map(f => f.Name),
325
- foreignKeyFields: fields.filter(f => f.IsForeignKey).length,
326
- durationMs: Date.now() - objStart,
537
+ ts: new Date().toISOString(), event: 'introspect.object.skipped',
538
+ objectName: obj.Name, total, error: msg, durationMs: Date.now() - objStart,
327
539
  }));
328
- result.Objects.push({
329
- ExternalName: obj.Name,
330
- ExternalLabel: obj.Label,
331
- Description: obj.Description,
332
- Fields: fields.map(f => ({
333
- Name: f.Name,
334
- Label: f.Label,
335
- Description: f.Description,
336
- SourceType: f.DataType,
337
- IsRequired: f.IsRequired,
338
- AllowsNull: f.AllowsNull,
339
- MaxLength: f.MaxLength ?? null,
340
- Precision: f.Precision ?? null,
341
- Scale: f.Scale ?? null,
342
- DefaultValue: f.DefaultValue ?? null,
343
- IsPrimaryKey: f.IsPrimaryKey ?? false,
344
- IsUniqueKey: f.IsUniqueKey,
345
- IsReadOnly: f.IsReadOnly,
346
- IsForeignKey: f.IsForeignKey ?? false,
347
- ForeignKeyTarget: f.ForeignKeyTarget ?? null,
348
- })),
349
- // Honest PK selection: only IsPrimaryKey=true fields qualify.
350
- // Prior behavior used IsUniqueKey which is wrong — an object
351
- // can have multiple unique fields (e.g. email + phone) of which
352
- // only one is the PK. Connectors that don't yet set IsPrimaryKey
353
- // on their DiscoverFields output will return an empty PrimaryKeyFields;
354
- // the runtime PK classifier (Phase 0 D2/D4) handles the residual.
355
- PrimaryKeyFields: fields.filter(f => f.IsPrimaryKey).map(f => f.Name),
356
- Relationships: fields
357
- .filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
358
- .map(f => ({
359
- FieldName: f.Name,
360
- TargetObject: f.ForeignKeyTarget,
361
- TargetField: 'ID',
362
- })),
363
- });
364
- succeeded++;
365
- const done = succeeded + skipped;
366
- if (done % 100 === 0 || done === total) {
367
- const elapsedSec = ((Date.now() - startMs) / 1000).toFixed(1);
368
- console.log(`[IntrospectSchema] progress: ${done}/${total} (ok=${succeeded}, skipped=${skipped}) — ${elapsedSec}s elapsed`);
369
- }
540
+ skipped++;
541
+ // A real rate-limit failure cuts the in-flight cap (AIMD); a plain describe error does not.
542
+ return { ok: false, throttled: this.ExtractRetryAfterMs(err) !== undefined };
543
+ }
544
+ console.log(JSON.stringify({
545
+ ts: new Date().toISOString(), event: 'introspect.object.complete',
546
+ objectName: obj.Name, total, fieldsDiscovered: fields.length,
547
+ primaryKeyFields: fields.filter(f => f.IsPrimaryKey).map(f => f.Name),
548
+ foreignKeyFields: fields.filter(f => f.IsForeignKey).length, durationMs: Date.now() - objStart,
549
+ }));
550
+ // Single-threaded async → these mutations are atomic across concurrent introspectOne calls
551
+ // (same safety the sync engine's per-map aggregate mutations rely on).
552
+ result.Objects.push({
553
+ ExternalName: obj.Name,
554
+ ExternalLabel: obj.Label,
555
+ Description: obj.Description,
556
+ Fields: fields.map(f => ({
557
+ Name: f.Name,
558
+ Label: f.Label,
559
+ Description: f.Description,
560
+ SourceType: f.DataType,
561
+ IsRequired: f.IsRequired,
562
+ AllowsNull: f.AllowsNull,
563
+ MaxLength: f.MaxLength ?? null,
564
+ Precision: f.Precision ?? null,
565
+ Scale: f.Scale ?? null,
566
+ DefaultValue: f.DefaultValue ?? null,
567
+ IsPrimaryKey: f.IsPrimaryKey ?? false,
568
+ IsUniqueKey: f.IsUniqueKey,
569
+ IsReadOnly: f.IsReadOnly,
570
+ IsForeignKey: f.IsForeignKey ?? false,
571
+ ForeignKeyTarget: f.ForeignKeyTarget ?? null,
572
+ })),
573
+ // Honest PK selection: only IsPrimaryKey=true fields qualify (an object can have several
574
+ // unique fields of which only one is the PK). Connectors that don't set IsPrimaryKey
575
+ // return an empty PrimaryKeyFields; the runtime PK classifier (D2/D4) handles the residual.
576
+ PrimaryKeyFields: fields.filter(f => f.IsPrimaryKey).map(f => f.Name),
577
+ Relationships: fields
578
+ .filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
579
+ .map(f => ({ FieldName: f.Name, TargetObject: f.ForeignKeyTarget, TargetField: 'ID' })),
580
+ });
581
+ succeeded++;
582
+ const done = succeeded + skipped;
583
+ if (done % 100 === 0 || done === total) {
584
+ console.log(`[IntrospectSchema] progress: ${done}/${total} (ok=${succeeded}, skipped=${skipped}) — ${((Date.now() - startMs) / 1000).toFixed(1)}s elapsed`);
370
585
  }
586
+ return { ok: true, throttled: false };
371
587
  };
372
- const workerCount = Math.min(CONCURRENCY, total);
373
- await Promise.all(Array.from({ length: workerCount }, () => worker()));
588
+ await RunAdaptive(objects, introspectOne, controller);
374
589
  return result;
375
590
  }
376
591
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,23 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
102
102
  * needs vendor-specific shape changes.
103
103
  */
104
104
  protected TransformRecord(raw: Record<string, unknown>, _obj: MJIntegrationObjectEntity, _fields: MJIntegrationObjectFieldEntity[]): Record<string, unknown>;
105
+ /**
106
+ * Source keys a connector DELIBERATELY removes in its {@link TransformRecord} override
107
+ * (vendor noise, a flattened parent blob, a nested child collection emitted as its own object).
108
+ * These are the only sanctioned drops — excluded from the {@link applyTransformPreservingKeys}
109
+ * re-add. Default: none. Override per-object to declare intentional removals.
110
+ */
111
+ protected ExcludedSourceKeys(_objectName: string): string[];
112
+ /**
113
+ * Runs {@link TransformRecord}, then RE-ADDS any source key the transform dropped (present in
114
+ * `raw`, absent from the output) unless declared in {@link ExcludedSourceKeys}. This makes the
115
+ * base-fetch path structurally full-record (§0 forward-compat contract): a TransformRecord
116
+ * override may reshape/coerce but cannot SILENTLY drop a source key from `ExternalRecord.Fields`,
117
+ * so the framework's custom-column capture sees everything the source returned. The default
118
+ * identity transform returns `raw` unchanged → fast-path no-op (zero overhead, zero behavior
119
+ * change for connectors that don't override TransformRecord).
120
+ */
121
+ protected applyTransformPreservingKeys(raw: Record<string, unknown>, obj: MJIntegrationObjectEntity, fields: MJIntegrationObjectFieldEntity[]): Record<string, unknown>;
105
122
  /**
106
123
  * Discovers available objects from the IntegrationEngineBase cache.
107
124
  */
@@ -168,6 +185,19 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
168
185
  * already uses for sync ORDER. A single-var path behaves exactly as before.
169
186
  */
170
187
  private FetchWithTemplateVars;
188
+ /**
189
+ * Per-call cap on how many PARENTS a parent-iterated object processes before yielding a resumable
190
+ * batch (the engine loops on HasMore). Kept conservative so a single FetchChanges call fits the
191
+ * engine's op-timeout even at a slow initial adaptive rate; the AIMD bucket ramps up over batches.
192
+ * Override in a concrete connector if a vendor tolerates larger per-call parent runs.
193
+ */
194
+ protected TemplateVarParentBatchSize(): number;
195
+ /** Stable total order over ID strings — numeric when ALL are integer-like, else lexical. */
196
+ private SortIdsStable;
197
+ /** Total-order comparator matching SortIdsStable, used for keyset resume (id > AfterKeyValue). */
198
+ private CompareIds;
199
+ /** Runs `worker` over `items` with at most `concurrency` in flight. Rejects on the first worker error. */
200
+ private RunBounded;
171
201
  /**
172
202
  * Recursive descent over the ordered template-var resolutions, one layer per level.
173
203
  *
@@ -192,6 +222,8 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
192
222
  *
193
223
  * Returns null when neither strategy matches.
194
224
  */
225
+ /** Reads a trimmed string value from an IntegrationObject's Configuration JSON (tolerant of absent/invalid). */
226
+ private ReadObjectConfigString;
195
227
  private ResolveParentForVar;
196
228
  /**
197
229
  * Finds the FK column on `innerObjectID` that points at `outerObjectID` — used to
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRESTIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRESTIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}