@memberjunction/integration-engine 6.1.0-edge.2 → 6.1.0-edge.4
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/LICENSE +180 -4
- package/dist/BaseIntegrationConnector.d.ts +115 -4
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +191 -24
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +14 -1
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +50 -3
- package/dist/BaseRESTIntegrationConnector.js.map +1 -1
- package/dist/BatchIdentity.d.ts +47 -0
- package/dist/BatchIdentity.d.ts.map +1 -0
- package/dist/BatchIdentity.js +78 -0
- package/dist/BatchIdentity.js.map +1 -0
- package/dist/DiscoveryWatchdog.d.ts +103 -0
- package/dist/DiscoveryWatchdog.d.ts.map +1 -0
- package/dist/DiscoveryWatchdog.js +166 -0
- package/dist/DiscoveryWatchdog.js.map +1 -0
- package/dist/FieldMapValidation.d.ts +40 -0
- package/dist/FieldMapValidation.d.ts.map +1 -0
- package/dist/FieldMapValidation.js +58 -0
- package/dist/FieldMapValidation.js.map +1 -0
- package/dist/FieldMappingEngine.d.ts +1 -13
- package/dist/FieldMappingEngine.d.ts.map +1 -1
- package/dist/FieldMappingEngine.js +18 -3
- package/dist/FieldMappingEngine.js.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.d.ts +92 -1
- package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.js +186 -11
- package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
- package/dist/IntegrationEngine.d.ts +198 -21
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +1092 -165
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/IntegrationSchemaSync.d.ts +8 -0
- package/dist/IntegrationSchemaSync.d.ts.map +1 -1
- package/dist/IntegrationSchemaSync.js +39 -2
- package/dist/IntegrationSchemaSync.js.map +1 -1
- package/dist/KeylessRecordGuard.d.ts +56 -0
- package/dist/KeylessRecordGuard.d.ts.map +1 -0
- package/dist/KeylessRecordGuard.js +80 -0
- package/dist/KeylessRecordGuard.js.map +1 -0
- package/dist/ResumeConcurrency.d.ts +46 -0
- package/dist/ResumeConcurrency.d.ts.map +1 -0
- package/dist/ResumeConcurrency.js +74 -0
- package/dist/ResumeConcurrency.js.map +1 -0
- package/dist/RetryAfter.d.ts +50 -0
- package/dist/RetryAfter.d.ts.map +1 -0
- package/dist/RetryAfter.js +127 -0
- package/dist/RetryAfter.js.map +1 -0
- package/dist/RetryRunner.d.ts +26 -2
- package/dist/RetryRunner.d.ts.map +1 -1
- package/dist/RetryRunner.js +11 -3
- package/dist/RetryRunner.js.map +1 -1
- package/dist/RunOwnershipService.d.ts +177 -0
- package/dist/RunOwnershipService.d.ts.map +1 -0
- package/dist/RunOwnershipService.js +279 -0
- package/dist/RunOwnershipService.js.map +1 -0
- package/dist/SyncDirectives.d.ts +66 -0
- package/dist/SyncDirectives.d.ts.map +1 -0
- package/dist/SyncDirectives.js +123 -0
- package/dist/SyncDirectives.js.map +1 -0
- package/dist/SyncLogger.d.ts +1 -1
- package/dist/SyncLogger.d.ts.map +1 -1
- package/dist/SyncLogger.js.map +1 -1
- package/dist/WatermarkService.d.ts +8 -0
- package/dist/WatermarkService.d.ts.map +1 -1
- package/dist/WatermarkService.js +18 -0
- package/dist/WatermarkService.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +66 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { ClassifyError } from './types.js';
|
|
2
|
+
import { ExtractRetryAfterFromError } from './RetryAfter.js';
|
|
1
3
|
import { discoverFromStream, pickKeyFromStats, pickPrimaryKeyFromStats, } from './StreamingDiscovery.js';
|
|
2
4
|
import { AdaptiveConcurrencyController, RunAdaptive } from './AdaptiveConcurrency.js';
|
|
3
5
|
import { flattenRecord, hasNestedObject } from './RecordFlatten.js';
|
|
6
|
+
import { DiscoveryWatchdog } from './DiscoveryWatchdog.js';
|
|
4
7
|
/** Default timeout values for connector operations */
|
|
5
8
|
export const DEFAULT_OPERATION_TIMEOUTS = {
|
|
6
9
|
TestConnectionMs: 5000,
|
|
@@ -9,20 +12,48 @@ export const DEFAULT_OPERATION_TIMEOUTS = {
|
|
|
9
12
|
FetchChangesMs: 30000,
|
|
10
13
|
};
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
15
|
+
* The error {@link WithTimeout} rejects with when ITS OWN budget expires — as distinct from an error
|
|
16
|
+
* the wrapped operation itself produced.
|
|
17
|
+
*
|
|
18
|
+
* That distinction is the whole point of the class. `ClassifyError` maps anything matching "timeout"
|
|
19
|
+
* to `NETWORK_TIMEOUT`, which `IsRetryableError` treats as transient — correct for a socket that
|
|
20
|
+
* dropped, wrong for "we gave this operation N ms and it wanted more." Retrying the latter re-runs
|
|
21
|
+
* the same work under the same budget, so it fails the same way, having spent the budget again.
|
|
22
|
+
*
|
|
23
|
+
* The message is deliberately UNCHANGED from the plain `Error` this replaced: `ClassifyError` reads
|
|
24
|
+
* message text, so existing classification, logging and the run-event stream all behave exactly as
|
|
25
|
+
* before. Only callers that explicitly check `instanceof` see any difference.
|
|
26
|
+
*/
|
|
27
|
+
export class OperationTimeoutError extends Error {
|
|
28
|
+
constructor(operationName, timeoutMs) {
|
|
29
|
+
super(`Operation '${operationName}' timed out after ${timeoutMs}ms`);
|
|
30
|
+
this.name = 'OperationTimeoutError';
|
|
31
|
+
this.OperationName = operationName;
|
|
32
|
+
this.TimeoutMs = timeoutMs;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Wraps a promise with a timeout. Rejects with {@link OperationTimeoutError} if the
|
|
13
37
|
* promise does not resolve within the specified duration.
|
|
14
38
|
*
|
|
39
|
+
* CAVEAT — this does NOT cancel the wrapped operation. It is a `Promise.race`, so on timeout the
|
|
40
|
+
* underlying work keeps running to completion (or its own failure) with nobody awaiting it. A caller
|
|
41
|
+
* that retries a timed-out operation therefore stacks a second copy on top of the first, still
|
|
42
|
+
* in-flight — which is why `IntegrationEngine`'s fetch path does not retry
|
|
43
|
+
* {@link OperationTimeoutError}. Real cancellation needs an `AbortSignal` threaded into the
|
|
44
|
+
* connector contract; until then, treat a timeout as terminal for that attempt.
|
|
45
|
+
*
|
|
15
46
|
* @param promise - The promise to wrap
|
|
16
47
|
* @param timeoutMs - Timeout in milliseconds
|
|
17
48
|
* @param operationName - Name of the operation for error messaging
|
|
18
49
|
* @returns The result of the promise
|
|
19
|
-
* @throws
|
|
50
|
+
* @throws OperationTimeoutError if the operation times out
|
|
20
51
|
*/
|
|
21
52
|
export async function WithTimeout(promise, timeoutMs, operationName) {
|
|
22
53
|
let timeoutHandle;
|
|
23
54
|
const timeoutPromise = new Promise((_resolve, reject) => {
|
|
24
55
|
timeoutHandle = setTimeout(() => {
|
|
25
|
-
reject(new
|
|
56
|
+
reject(new OperationTimeoutError(operationName, timeoutMs));
|
|
26
57
|
}, timeoutMs);
|
|
27
58
|
});
|
|
28
59
|
try {
|
|
@@ -162,13 +193,53 @@ export class BaseIntegrationConnector {
|
|
|
162
193
|
* Parse a Retry-After / rate-limit signal out of a failed response or thrown error into
|
|
163
194
|
* milliseconds so the engine can back off precisely. Return `undefined` when the error is not a
|
|
164
195
|
* throttle (or carries no hint).
|
|
196
|
+
*
|
|
197
|
+
* The default reads the standard `Retry-After` header (RFC 9110 §10.2.3 — the header a 429 and a
|
|
198
|
+
* 503 carry), in both its delay-seconds and HTTP-date forms, from wherever the HTTP client put
|
|
199
|
+
* it. That is not a heuristic and not vendor-specific: there is one correct reading of it, and
|
|
200
|
+
* every HTTP connector benefits from having it read.
|
|
201
|
+
*
|
|
202
|
+
* This used to return `undefined` unconditionally, and no connector in this repo overrode it —
|
|
203
|
+
* so the engine's limiter never learned a delay any vendor had actually stated, and discovery's
|
|
204
|
+
* throttle check (which asked this and only this) concluded "not a throttle" for every 429 MJ
|
|
205
|
+
* ever received.
|
|
206
|
+
*
|
|
207
|
+
* Override when the vendor signals its delay somewhere non-standard — in the response body, or
|
|
208
|
+
* in prose (PheedLoop's "Expected available in N second"). Deliberately not parsed here:
|
|
209
|
+
* guessing a duration out of message text risks inventing one, and a wrong Retry-After is worse
|
|
210
|
+
* than none, since it freezes the token bucket for a made-up interval.
|
|
165
211
|
*/
|
|
166
|
-
ExtractRetryAfterMs(
|
|
212
|
+
ExtractRetryAfterMs(error) {
|
|
213
|
+
return ExtractRetryAfterFromError(error);
|
|
214
|
+
}
|
|
167
215
|
/**
|
|
168
216
|
* Highest SAFE per-layer concurrency the source tolerates (plan.md §7 peak parallelization) — the
|
|
169
217
|
* ceiling the engine's adaptive controller ramps toward. `null` → use configured syncConcurrency.
|
|
170
218
|
*/
|
|
171
219
|
get MaxConcurrencyHint() { return null; }
|
|
220
|
+
/**
|
|
221
|
+
* Per-connector override for the `FetchChanges` timeout, in milliseconds. `null` → use
|
|
222
|
+
* `DEFAULT_OPERATION_TIMEOUTS.FetchChangesMs` (30s).
|
|
223
|
+
*
|
|
224
|
+
* Raise this when a single page is legitimately slow: a connector that fans out one request per
|
|
225
|
+
* parent (ORCID's per-iD `/record`, any second-layer object) does N requests inside ONE
|
|
226
|
+
* `FetchChanges` call, so its page time scales with `BatchSize` — and with how much concurrency
|
|
227
|
+
* the engine's adaptive controller currently allows. Under the fixed 30s, a page that comfortably
|
|
228
|
+
* fit when parallel no longer fit once the controller had cut concurrency, which forced connector
|
|
229
|
+
* authors to shrink `BatchSize` for the sequential worst case and waste the parallel headroom the
|
|
230
|
+
* rest of the time.
|
|
231
|
+
*
|
|
232
|
+
* Note the timeout does NOT itself cut concurrency: `ClassifyError` gives it `NETWORK_TIMEOUT`,
|
|
233
|
+
* and only `RATE_LIMIT_EXCEEDED` feeds the adaptive limiter. A timing-out page simply never ramps
|
|
234
|
+
* the rate UP (the ramp needs a clean fetch), and the object ends incomplete — reported as
|
|
235
|
+
* `FETCH_ABORTED_INCOMPLETE`. Earlier revisions of this comment described a self-reinforcing
|
|
236
|
+
* timeout→concurrency-cut spiral; that is not what the code does.
|
|
237
|
+
*
|
|
238
|
+
* Precedence (highest first): `CompanyIntegration.Configuration.fetchTimeoutMs` → this property
|
|
239
|
+
* → `DEFAULT_OPERATION_TIMEOUTS.FetchChangesMs`. Deployments therefore keep the last word without
|
|
240
|
+
* a code change, while a connector that KNOWS it is slow ships a sane default.
|
|
241
|
+
*/
|
|
242
|
+
get FetchChangesTimeoutMs() { return null; }
|
|
172
243
|
/**
|
|
173
244
|
* Name of a stable, monotonic ordering key (PK/identity) usable for KEYSET/seek resume on
|
|
174
245
|
* watermark-less objects (plan.md §7 — resume from last-seen key, robust to mid-stream
|
|
@@ -351,15 +422,50 @@ export class BaseIntegrationConnector {
|
|
|
351
422
|
// late-appearing field). Operator-tunable via env or, per-connection, the IntegrationSetSyncConfig
|
|
352
423
|
// `discoveryMaxRecords` knob. Sampling itself is the FALLBACK path — used only when the source lacks a
|
|
353
424
|
// describe endpoint that yields pk+type+columns; a describe-capable connector returns here-unused.
|
|
354
|
-
|
|
425
|
+
// The Configuration read was MISSING from this line. `discoveryMaxRecords` is declared in the cfg
|
|
426
|
+
// type above, documented directly above as a per-connection knob, accepted and persisted by
|
|
427
|
+
// MJServer's IntegrationSetSyncConfig, returned by IntegrationGetSyncConfig, and surfaced in the
|
|
428
|
+
// product as a settings field ("Max records" - cap on records sampled during discovery). All of
|
|
429
|
+
// that worked. Nothing read the value back, so setting it saved a number and changed nothing.
|
|
430
|
+
//
|
|
431
|
+
// Its two siblings immediately above both read Configuration. This one did not, which made the one
|
|
432
|
+
// discovery budget an operator actually wants to lower for a slow source the ONLY one that needed
|
|
433
|
+
// an app setting and a process restart. Same precedence as the others now:
|
|
434
|
+
// explicit opts > per-connection Configuration > operator env > default.
|
|
435
|
+
const maxRecords = opts.MaxRecords ?? cfgInt(cfg.discoveryMaxRecords) ?? envInt('MJ_INTEGRATION_DISCOVERY_MAX_RECORDS', 500);
|
|
436
|
+
// Announce intent AND cost. Until now only the FAILURE branch below said anything, so a
|
|
437
|
+
// healthy-but-slow object, an object grinding out its whole time budget, and one that will
|
|
438
|
+
// never return were indistinguishable from outside the process. The watchdog names whatever
|
|
439
|
+
// is still in flight while it runs; the budget marker on the way out separates "slow source"
|
|
440
|
+
// from "this object can never satisfy its stop condition".
|
|
441
|
+
const watchdog = DiscoveryWatchdog.Instance;
|
|
442
|
+
const startedMs = Date.now();
|
|
443
|
+
const deadlineMs = startedMs + timeBudgetMs;
|
|
444
|
+
const watchKey = watchdog.Start(objectName, deadlineMs);
|
|
445
|
+
console.log(`[DiscoverFieldsViaFetch] -> "${objectName}" budget=${timeBudgetMs}ms maxRecords=${maxRecords} batch=${batchSize}`);
|
|
355
446
|
try {
|
|
356
|
-
|
|
447
|
+
const fields = await this.DiscoverFieldsViaStream(this.DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords,
|
|
448
|
+
// The SAME budget the stream consumer is given, now also reaching the producer —
|
|
449
|
+
// the consumer can only act between FetchChanges calls, which is no help at all
|
|
450
|
+
// when one call fans out into thousands of requests internally.
|
|
451
|
+
deadlineMs, watchKey), { Discovery: { TimeBudgetMs: timeBudgetMs }, ReadOnly: true });
|
|
452
|
+
const tookMs = Date.now() - startedMs;
|
|
453
|
+
const seen = watchdog.Peek(watchKey);
|
|
454
|
+
console.log(`[DiscoverFieldsViaFetch] <- "${objectName}" ${tookMs}ms fields=${fields.length} ` +
|
|
455
|
+
`records=${seen?.Records ?? '?'} pages=${seen?.Pages ?? '?'}` +
|
|
456
|
+
(tookMs >= timeBudgetMs * 0.9
|
|
457
|
+
? ' *** EXHAUSTED ITS TIME BUDGET — the source never yielded enough for it to stop on ***'
|
|
458
|
+
: ''));
|
|
459
|
+
return fields;
|
|
357
460
|
}
|
|
358
461
|
catch (err) {
|
|
359
462
|
const msg = err instanceof Error ? err.message : String(err);
|
|
360
|
-
console.warn(`[DiscoverFieldsViaFetch]
|
|
463
|
+
console.warn(`[DiscoverFieldsViaFetch] <- FAILED "${objectName}" after ${Date.now() - startedMs}ms (${msg}); falling back to single-sample DiscoverFields.`);
|
|
361
464
|
return this.DiscoverFields(companyIntegration, objectName, contextUser);
|
|
362
465
|
}
|
|
466
|
+
finally {
|
|
467
|
+
watchdog.End(watchKey);
|
|
468
|
+
}
|
|
363
469
|
}
|
|
364
470
|
/**
|
|
365
471
|
* The record source `DiscoverFieldsViaFetch` streams for field/PK inference. Default: loop
|
|
@@ -367,32 +473,71 @@ export class BaseIntegrationConnector {
|
|
|
367
473
|
* (e.g. REST) overrides this to sample a template-var CHILD with the correct record-constrained,
|
|
368
474
|
* recursive stream. Yields plain field maps; the caller stops it at `maxRecords`.
|
|
369
475
|
*/
|
|
370
|
-
async *DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords
|
|
476
|
+
async *DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords,
|
|
477
|
+
/**
|
|
478
|
+
* Epoch ms this sample must not outlive, forwarded to the connector as `FetchContext.DeadlineMs`.
|
|
479
|
+
* Optional so existing overrides of this method keep compiling and keep their current behaviour.
|
|
480
|
+
*/
|
|
481
|
+
deadlineMs,
|
|
482
|
+
/** Watchdog key for this sample, when the caller registered one. Diagnostics only. */
|
|
483
|
+
watchKey) {
|
|
371
484
|
let ctx = {
|
|
372
485
|
CompanyIntegration: companyIntegration,
|
|
373
486
|
ObjectName: objectName,
|
|
374
487
|
WatermarkValue: null, // FULL fetch — discovery wants breadth, not the incremental delta
|
|
375
488
|
BatchSize: batchSize,
|
|
376
489
|
ContextUser: contextUser,
|
|
490
|
+
// TELL THE CONNECTOR WHAT THIS CALL IS FOR. Stopping after `maxRecords` here only works
|
|
491
|
+
// when one FetchChanges is one page; a connector that fans out internally (one request
|
|
492
|
+
// per parent) never hands control back for us to stop it. See FetchContext.DeadlineMs.
|
|
493
|
+
IsDiscoverySample: true,
|
|
494
|
+
SampleTargetRecords: maxRecords,
|
|
495
|
+
DeadlineMs: deadlineMs,
|
|
377
496
|
};
|
|
497
|
+
const watchdog = DiscoveryWatchdog.Instance;
|
|
378
498
|
let yielded = 0;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
for (
|
|
382
|
-
|
|
383
|
-
|
|
499
|
+
let page = 0;
|
|
500
|
+
try {
|
|
501
|
+
for (;;) {
|
|
502
|
+
page++;
|
|
503
|
+
watchdog.Note(watchKey, { Stage: `FetchChanges#${page}` });
|
|
504
|
+
const pageStartedMs = Date.now();
|
|
505
|
+
const batch = await this.FetchChanges(ctx);
|
|
506
|
+
console.log(`[DiscoverySampleStream] "${objectName}" page ${page} -> ${batch.Records.length} record(s) ` +
|
|
507
|
+
`in ${Date.now() - pageStartedMs}ms (HasMore=${!!batch.HasMore}, yieldedSoFar=${yielded}/${maxRecords})`);
|
|
508
|
+
watchdog.Note(watchKey, { Stage: 'inferring', Pages: page, Records: yielded + batch.Records.length });
|
|
509
|
+
for (const rec of batch.Records) {
|
|
510
|
+
yield rec.Fields;
|
|
511
|
+
if (++yielded >= maxRecords) {
|
|
512
|
+
console.log(`[DiscoverySampleStream] "${objectName}" stop=SAMPLE_TARGET_MET at ${yielded} record(s) after ${page} page(s)`);
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
if (!batch.HasMore) {
|
|
517
|
+
console.log(`[DiscoverySampleStream] "${objectName}" stop=SOURCE_EXHAUSTED at ${yielded} record(s) after ${page} page(s)`);
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
520
|
+
// STOP AT THE DEADLINE. The deadline is handed to the connector so it can bound its own
|
|
521
|
+
// internal fan-out, but a connector that ignores it (every connector predating the
|
|
522
|
+
// marker) keeps returning HasMore=true and this loop keeps asking — the budget the
|
|
523
|
+
// caller set is then enforced by nothing at all. This is the one place the sampler can
|
|
524
|
+
// always honour it: between pages, having kept everything collected so far.
|
|
525
|
+
if (deadlineMs !== undefined && Date.now() >= deadlineMs) {
|
|
526
|
+
console.log(`[DiscoverySampleStream] "${objectName}" stop=DEADLINE at ${yielded} record(s) after ${page} page(s)`);
|
|
384
527
|
return;
|
|
528
|
+
}
|
|
529
|
+
ctx = {
|
|
530
|
+
...ctx,
|
|
531
|
+
WatermarkValue: null,
|
|
532
|
+
CurrentPage: batch.NextPage,
|
|
533
|
+
CurrentOffset: batch.NextOffset,
|
|
534
|
+
CurrentCursor: batch.NextCursor,
|
|
535
|
+
AfterKeyValue: batch.NextAfterKeyValue ?? ctx.AfterKeyValue,
|
|
536
|
+
};
|
|
385
537
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
...ctx,
|
|
390
|
-
WatermarkValue: null,
|
|
391
|
-
CurrentPage: batch.NextPage,
|
|
392
|
-
CurrentOffset: batch.NextOffset,
|
|
393
|
-
CurrentCursor: batch.NextCursor,
|
|
394
|
-
AfterKeyValue: batch.NextAfterKeyValue ?? ctx.AfterKeyValue,
|
|
395
|
-
};
|
|
538
|
+
}
|
|
539
|
+
finally {
|
|
540
|
+
watchdog.Note(watchKey, { Stage: 'stream-closed' });
|
|
396
541
|
}
|
|
397
542
|
}
|
|
398
543
|
/**
|
|
@@ -546,7 +691,29 @@ export class BaseIntegrationConnector {
|
|
|
546
691
|
}
|
|
547
692
|
catch { /* progress must never break introspection */ }
|
|
548
693
|
// A real rate-limit failure cuts the in-flight cap (AIMD); a plain describe error does not.
|
|
549
|
-
|
|
694
|
+
//
|
|
695
|
+
// `ExtractRetryAfterMs` alone is not enough to make that distinction. Its base
|
|
696
|
+
// implementation returns `undefined`, and NO connector in this repo overrides it — so
|
|
697
|
+
// asking only that question answered "not a throttle" for every connector MJ ships, and
|
|
698
|
+
// discovery kept all 8 describes in flight straight through a vendor's 429s. That is the
|
|
699
|
+
// shape of a brittle discovery: the source says slow down, the fan-out doesn't, more
|
|
700
|
+
// objects fail, and the enumeration comes back short for a reason that was transient.
|
|
701
|
+
//
|
|
702
|
+
// `ClassifyError` reads the error's own text ('rate limit' / 'throttl' / '429'), which
|
|
703
|
+
// costs a connector nothing to benefit from — the same classifier the sync fetch path at
|
|
704
|
+
// IntegrationEngine already uses for exactly this decision. Keep `ExtractRetryAfterMs`
|
|
705
|
+
// first: a connector that DOES parse the vendor's header gives a precise signal, and this
|
|
706
|
+
// is a fallback under it, not a replacement for it.
|
|
707
|
+
const retryAfterMs = this.ExtractRetryAfterMs(err);
|
|
708
|
+
const throttled = retryAfterMs !== undefined || ClassifyError(err).Code === 'RATE_LIMIT_EXCEEDED';
|
|
709
|
+
if (throttled) {
|
|
710
|
+
console.log(JSON.stringify({
|
|
711
|
+
ts: new Date().toISOString(), event: 'introspect.object.throttled',
|
|
712
|
+
objectName: obj.Name, total, retryAfterMs: retryAfterMs ?? null,
|
|
713
|
+
source: retryAfterMs !== undefined ? 'connector' : 'classifier',
|
|
714
|
+
}));
|
|
715
|
+
}
|
|
716
|
+
return { ok: false, throttled };
|
|
550
717
|
}
|
|
551
718
|
console.log(JSON.stringify({
|
|
552
719
|
ts: new Date().toISOString(), event: 'introspect.object.complete',
|
|
@@ -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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"}
|
|
@@ -206,7 +206,7 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
206
206
|
* FetchChanges loop; MULTI-var (composition) children are deferred — {@link StreamRecordsForDiscovery}
|
|
207
207
|
* adjourns them (declared-only until first sync) rather than fire malformed URLs.
|
|
208
208
|
*/
|
|
209
|
-
protected DiscoverySampleRecordStream(companyIntegration: MJCompanyIntegrationEntity, objectName: string, contextUser: UserInfo, batchSize: number, maxRecords: number): AsyncGenerator<Record<string, unknown>>;
|
|
209
|
+
protected DiscoverySampleRecordStream(companyIntegration: MJCompanyIntegrationEntity, objectName: string, contextUser: UserInfo, batchSize: number, maxRecords: number, deadlineMs?: number, watchKey?: string): AsyncGenerator<Record<string, unknown>>;
|
|
210
210
|
/**
|
|
211
211
|
* DISCOVERY-ONLY recursive lazy sampler. Yields records of `objectID` for field/PK analysis by
|
|
212
212
|
* STREAMING — never bulk. A top-level object paginates its endpoint directly. A template-var CHILD
|
|
@@ -335,8 +335,21 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
335
335
|
/**
|
|
336
336
|
* Gets IntegrationObjectField records from the engine's cache for a given object ID.
|
|
337
337
|
* Returns only active fields sorted by Sequence.
|
|
338
|
+
*
|
|
339
|
+
* MEMOISED. This sits on per-record paths — `RawToExternalRecord` / `TransformRecord` resolve
|
|
340
|
+
* an object's fields for every record transformed, and several callers then run a `.find()` for
|
|
341
|
+
* the primary key over the freshly-sorted result — so the filter and sort were being repeated
|
|
342
|
+
* per record over a list that only changes when the engine reloads its metadata.
|
|
343
|
+
*
|
|
344
|
+
* Invalidation is the ARRAY IDENTITY of the engine's field cache: it is replaced wholesale on
|
|
345
|
+
* load/refresh, so a new array yields a new memo automatically, including after a schema
|
|
346
|
+
* refresh. A fresh copy is returned per call, preserving the previous contract for callers that
|
|
347
|
+
* sort or splice the result.
|
|
338
348
|
*/
|
|
339
349
|
protected GetCachedFields(objectID: string): MJIntegrationObjectFieldEntity[];
|
|
350
|
+
/** Memo backing {@link GetCachedFields}, keyed on the engine field cache's array identity. */
|
|
351
|
+
private __cachedFieldsByObject;
|
|
352
|
+
private __cachedFieldsSource;
|
|
340
353
|
/**
|
|
341
354
|
* Converts a raw API record object to the ExternalRecord format.
|
|
342
355
|
* For composite primary keys, joins all PK values with '|' to form a unique ExternalID.
|
|
@@ -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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"}
|
|
@@ -18,6 +18,13 @@ import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
|
|
|
18
18
|
* this class and implement only auth, HTTP transport, and response normalization.
|
|
19
19
|
*/
|
|
20
20
|
export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
21
|
+
constructor() {
|
|
22
|
+
// ── Abstract methods concrete connectors must implement ──────────
|
|
23
|
+
super(...arguments);
|
|
24
|
+
/** Memo backing {@link GetCachedFields}, keyed on the engine field cache's array identity. */
|
|
25
|
+
this.__cachedFieldsByObject = new Map();
|
|
26
|
+
this.__cachedFieldsSource = null;
|
|
27
|
+
}
|
|
21
28
|
/**
|
|
22
29
|
* Optional per-record CUSTOMIZATION hook called between NormalizeResponse
|
|
23
30
|
* (vendor envelope-stripping) and ToExternalRecord (composite-PK assembly).
|
|
@@ -431,10 +438,20 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
431
438
|
* FetchChanges loop; MULTI-var (composition) children are deferred — {@link StreamRecordsForDiscovery}
|
|
432
439
|
* adjourns them (declared-only until first sync) rather than fire malformed URLs.
|
|
433
440
|
*/
|
|
434
|
-
async *DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords) {
|
|
441
|
+
async *DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords, deadlineMs, watchKey) {
|
|
435
442
|
const obj = this.GetCachedObject(companyIntegration.IntegrationID, objectName);
|
|
436
443
|
if (this.DetectTemplateVars(obj.APIPath).length === 0) {
|
|
437
|
-
|
|
444
|
+
// FORWARD THE DEADLINE. Dropping it here silently un-bounds every REST connector that
|
|
445
|
+
// lands on this fallback — which is every connector expressing parent scope as
|
|
446
|
+
// CONFIGURATION rather than as URL template vars.
|
|
447
|
+
//
|
|
448
|
+
// The record-constrained sampler below is gated on template vars, so a connector like
|
|
449
|
+
// Totara (parent scope declared via `Configuration.parentScope` + a wsfunction, no vars
|
|
450
|
+
// in its APIPath) never qualifies for it and arrives here instead. Without the deadline
|
|
451
|
+
// the base builds a FetchContext carrying no discovery marker at all, the connector
|
|
452
|
+
// cannot tell a sample from a sync, and one FetchChanges call walks every parent.
|
|
453
|
+
// Live 2026-08-12: 28 minutes inside a single call, returning rows=0.
|
|
454
|
+
yield* super.DiscoverySampleRecordStream(companyIntegration, objectName, contextUser, batchSize, maxRecords, deadlineMs, watchKey);
|
|
438
455
|
return;
|
|
439
456
|
}
|
|
440
457
|
let yielded = 0;
|
|
@@ -1024,11 +1041,41 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
1024
1041
|
/**
|
|
1025
1042
|
* Gets IntegrationObjectField records from the engine's cache for a given object ID.
|
|
1026
1043
|
* Returns only active fields sorted by Sequence.
|
|
1044
|
+
*
|
|
1045
|
+
* MEMOISED. This sits on per-record paths — `RawToExternalRecord` / `TransformRecord` resolve
|
|
1046
|
+
* an object's fields for every record transformed, and several callers then run a `.find()` for
|
|
1047
|
+
* the primary key over the freshly-sorted result — so the filter and sort were being repeated
|
|
1048
|
+
* per record over a list that only changes when the engine reloads its metadata.
|
|
1049
|
+
*
|
|
1050
|
+
* Invalidation is the ARRAY IDENTITY of the engine's field cache: it is replaced wholesale on
|
|
1051
|
+
* load/refresh, so a new array yields a new memo automatically, including after a schema
|
|
1052
|
+
* refresh. A fresh copy is returned per call, preserving the previous contract for callers that
|
|
1053
|
+
* sort or splice the result.
|
|
1027
1054
|
*/
|
|
1028
1055
|
GetCachedFields(objectID) {
|
|
1029
|
-
|
|
1056
|
+
const allFields = IntegrationEngineBase.Instance.IntegrationObjectFields;
|
|
1057
|
+
if (this.__cachedFieldsSource !== allFields) {
|
|
1058
|
+
this.__cachedFieldsByObject = new Map();
|
|
1059
|
+
this.__cachedFieldsSource = allFields;
|
|
1060
|
+
}
|
|
1061
|
+
const key = objectID?.trim().toLowerCase() ?? '';
|
|
1062
|
+
const hit = this.__cachedFieldsByObject.get(key);
|
|
1063
|
+
if (hit) {
|
|
1064
|
+
return hit.slice();
|
|
1065
|
+
}
|
|
1066
|
+
const computed = IntegrationEngineBase.Instance.GetIntegrationObjectFields(objectID)
|
|
1030
1067
|
.filter(f => f.Status === 'Active')
|
|
1031
1068
|
.sort((a, b) => a.Sequence - b.Sequence);
|
|
1069
|
+
// NEVER memoise an empty result. An empty list is indistinguishable from "the engine's
|
|
1070
|
+
// metadata has not loaded yet", and because invalidation keys on array identity, a single
|
|
1071
|
+
// call landing before the cache is seeded would pin `[]` for the life of that array.
|
|
1072
|
+
// Callers derive primary-key field names from this list, so an empty answer builds records
|
|
1073
|
+
// with NO key — rows that can never be matched again, and are therefore re-inserted on
|
|
1074
|
+
// every subsequent sync.
|
|
1075
|
+
if (computed.length > 0) {
|
|
1076
|
+
this.__cachedFieldsByObject.set(key, computed);
|
|
1077
|
+
}
|
|
1078
|
+
return computed.slice();
|
|
1032
1079
|
}
|
|
1033
1080
|
// ── Conversion helpers ───────────────────────────────────────────
|
|
1034
1081
|
/**
|