@memberjunction/integration-engine 6.1.0-edge.4 → 6.1.0-edge.6
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/BaseIntegrationConnector.d.ts +7 -0
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +33 -2
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +48 -7
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +160 -17
- package/dist/BaseRESTIntegrationConnector.js.map +1 -1
- package/dist/DeclaredSampleMerge.d.ts +74 -0
- package/dist/DeclaredSampleMerge.d.ts.map +1 -0
- package/dist/DeclaredSampleMerge.js +104 -0
- package/dist/DeclaredSampleMerge.js.map +1 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts +20 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.js +190 -30
- package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
- package/dist/IntegrationEngine.d.ts +173 -1
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +834 -152
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/IntegrationSchemaSync.d.ts +46 -2
- package/dist/IntegrationSchemaSync.d.ts.map +1 -1
- package/dist/IntegrationSchemaSync.js +83 -14
- package/dist/IntegrationSchemaSync.js.map +1 -1
- package/dist/MatchEngine.js +1 -1
- package/dist/MatchEngine.js.map +1 -1
- package/dist/StreamingDiscovery.d.ts +11 -0
- package/dist/StreamingDiscovery.d.ts.map +1 -1
- package/dist/StreamingDiscovery.js +13 -3
- package/dist/StreamingDiscovery.js.map +1 -1
- package/dist/SyncLogger.d.ts +2 -1
- package/dist/SyncLogger.d.ts.map +1 -1
- package/dist/SyncLogger.js +1 -0
- package/dist/SyncLogger.js.map +1 -1
- package/dist/WatermarkService.d.ts +7 -0
- package/dist/WatermarkService.d.ts.map +1 -1
- package/dist/WatermarkService.js +8 -0
- package/dist/WatermarkService.js.map +1 -1
- package/dist/WriteSerializer.d.ts +44 -0
- package/dist/WriteSerializer.d.ts.map +1 -0
- package/dist/WriteSerializer.js +70 -0
- package/dist/WriteSerializer.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +25 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
|
@@ -3,6 +3,7 @@ import { IntegrationProgressEmitter, } from '@memberjunction/integration-progres
|
|
|
3
3
|
import { SoftPKClassifier, } from '@memberjunction/integration-pk-classifier';
|
|
4
4
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
5
5
|
import { IntegrationSchemaSync } from './IntegrationSchemaSync.js';
|
|
6
|
+
import { MergeDeclaredWithSample } from './DeclaredSampleMerge.js';
|
|
6
7
|
/**
|
|
7
8
|
* The unified pipeline that drives connector creation / refresh end-to-end:
|
|
8
9
|
*
|
|
@@ -313,6 +314,18 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
313
314
|
async StageIntrospect(emitter, opts) {
|
|
314
315
|
emitter.stageStart('Introspect', 'Discovering objects and fields via connector');
|
|
315
316
|
const startMs = Date.now();
|
|
317
|
+
// Sampling is now per OBJECT, so this stage's cost scales with the catalog — and on a large
|
|
318
|
+
// one it is the run's whole cost. Execute races the stage against the run deadline, but
|
|
319
|
+
// `Promise.race` does not CANCEL the loser: without a check the sampling loops below keep
|
|
320
|
+
// issuing vendor requests, for hours, on behalf of a run that has already been failed and
|
|
321
|
+
// whose results nobody will read. So stop at the same wall the race enforces.
|
|
322
|
+
//
|
|
323
|
+
// Approximated from THIS stage's start rather than the run's: only ConnectionTest precedes
|
|
324
|
+
// it, so the two differ by one connectivity probe. The approximation can only ever stop
|
|
325
|
+
// work LATER than the race — never earlier — so it cannot truncate a run that would
|
|
326
|
+
// otherwise have completed.
|
|
327
|
+
const budgetMs = opts.RunDeadlineMs ?? IntegrationConnectorCreationPipeline.DEFAULT_RUN_DEADLINE_MS;
|
|
328
|
+
const outOfTime = () => budgetMs > 0 && Date.now() - startMs >= budgetMs;
|
|
316
329
|
try {
|
|
317
330
|
// U11 — determinate discovery progress: surface scanned/total on the structured
|
|
318
331
|
// stream (IntegrationTailRunEvents carries counts) so a client can render a real
|
|
@@ -335,49 +348,82 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
335
348
|
// can't silently lose runtime discovery). PersistDiscoveredSchema is additive, so
|
|
336
349
|
// declared objects are preserved and runtime-only objects (e.g. an auth-gated file
|
|
337
350
|
// feed's streams) get created as Discovered. Errors are SURFACED, never swallowed.
|
|
338
|
-
const
|
|
351
|
+
const declaredNames = schema.Objects.map(o => o.ExternalName);
|
|
352
|
+
const seen = new Set(declaredNames.map(n => n.toLowerCase()));
|
|
339
353
|
let runtimeObjects = [];
|
|
354
|
+
// A DiscoverObjects failure used to end sampling for the ENTIRE run: the loop below was
|
|
355
|
+
// the only thing that sampled, and it iterated this (now empty) list. The declared
|
|
356
|
+
// catalog is still in hand — IntrospectSchema already returned it — so the union pass
|
|
357
|
+
// still samples every declared object. The failure is recorded on the checkpoint so a
|
|
358
|
+
// consumer can tell "the source has no other objects" from "we never got to ask".
|
|
359
|
+
let discoverObjectsFailed = false;
|
|
340
360
|
try {
|
|
341
361
|
runtimeObjects = await opts.Connector.DiscoverObjects(opts.CompanyIntegration, opts.ContextUser);
|
|
342
362
|
}
|
|
343
363
|
catch (err) {
|
|
344
364
|
const msg = err instanceof Error ? err.message : String(err);
|
|
365
|
+
discoverObjectsFailed = true;
|
|
345
366
|
emitter.stageError('Introspect', `DiscoverObjects failed: ${msg}`, { code: 'discover-objects-failed' });
|
|
346
367
|
console.error(`[IntrospectPipeline] DiscoverObjects failed: ${msg}`);
|
|
347
368
|
}
|
|
369
|
+
// §7 — a SCOPED introspection asked about a named subset. IntrospectSchema already
|
|
370
|
+
// honours the filter; DiscoverObjects does not take it, so without this the scoped run
|
|
371
|
+
// pulled and sampled the whole runtime catalog anyway.
|
|
372
|
+
const wantedNames = opts.IntrospectOptions?.ObjectNames;
|
|
373
|
+
const wanted = wantedNames && wantedNames.length > 0
|
|
374
|
+
? new Set(wantedNames.map(n => n.toLowerCase()))
|
|
375
|
+
: null;
|
|
376
|
+
const inScope = (name) => !wanted || wanted.has(name.toLowerCase());
|
|
377
|
+
const sampledDeclared = new Set();
|
|
348
378
|
let runtimeAdded = 0;
|
|
379
|
+
let unsampledForTime = 0;
|
|
380
|
+
// Per-object progress. Everything below this point is the expensive half of discovery —
|
|
381
|
+
// one read-path sample per object — and it emitted nothing, so a consumer watching a
|
|
382
|
+
// 23-object source saw the same silence as a 5-object one for however long it ran.
|
|
383
|
+
// The denominator is the union BOTH passes will sample (in-scope runtime objects plus
|
|
384
|
+
// in-scope declared ones) rather than either loop's own length, so the total is fixed
|
|
385
|
+
// before the first sample instead of revising upward when the second pass starts.
|
|
386
|
+
const sampleUniverse = new Set();
|
|
387
|
+
for (const d of runtimeObjects)
|
|
388
|
+
if (inScope(d.Name))
|
|
389
|
+
sampleUniverse.add(d.Name.toLowerCase());
|
|
390
|
+
for (const n of declaredNames)
|
|
391
|
+
if (inScope(n))
|
|
392
|
+
sampleUniverse.add(n.toLowerCase());
|
|
393
|
+
const sampleTotal = sampleUniverse.size;
|
|
394
|
+
// Keyed, not counted: a name the connector surfaces twice is sampled twice by the loop
|
|
395
|
+
// below, and a bare counter would then report "24 of 23".
|
|
396
|
+
const announced = new Set();
|
|
397
|
+
const announceSample = (name) => {
|
|
398
|
+
const k = name.toLowerCase();
|
|
399
|
+
if (announced.has(k))
|
|
400
|
+
return;
|
|
401
|
+
announced.add(k);
|
|
402
|
+
emitter.heartbeat('Introspect', `Sampling "${name}" (${announced.size} of ${sampleTotal})`, {
|
|
403
|
+
processed: announced.size,
|
|
404
|
+
totalKnown: sampleTotal,
|
|
405
|
+
skipped: unsampledForTime,
|
|
406
|
+
});
|
|
407
|
+
};
|
|
349
408
|
for (const d of runtimeObjects) {
|
|
350
409
|
const key = d.Name.toLowerCase();
|
|
410
|
+
if (!inScope(d.Name))
|
|
411
|
+
continue;
|
|
412
|
+
// Announced BEFORE the budget check so an exhausted budget reads as a run that
|
|
413
|
+
// reached the end of its object list, not one that stalled partway through it.
|
|
414
|
+
announceSample(d.Name);
|
|
415
|
+
if (outOfTime()) {
|
|
416
|
+
unsampledForTime++;
|
|
417
|
+
continue;
|
|
418
|
+
}
|
|
351
419
|
if (seen.has(key)) {
|
|
352
420
|
// §case-3 (data-only-discoverable): a DECLARED object the connector ALSO surfaces at
|
|
353
|
-
// runtime
|
|
354
|
-
//
|
|
355
|
-
// skipped it, it stayed field-less + PK-less, and ApplyAll dropped it — so the user's data
|
|
356
|
-
// for that object never landed. Discover its fields over the read path and populate the
|
|
357
|
-
// existing declared object IN PLACE so it becomes syncable.
|
|
421
|
+
// runtime. Sampling populates it IN PLACE so a name-only declaration becomes syncable
|
|
422
|
+
// and a fully-declared one gets its true widths and undeclared columns.
|
|
358
423
|
const existing = schema.Objects.find(o => o.ExternalName.toLowerCase() === key);
|
|
359
|
-
if (existing
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
existing.Fields = dfields.map(f => ({
|
|
363
|
-
Name: f.Name, Label: f.Label, Description: f.Description, SourceType: f.DataType,
|
|
364
|
-
IsRequired: f.IsRequired, AllowsNull: f.AllowsNull, MaxLength: f.MaxLength ?? null,
|
|
365
|
-
Precision: f.Precision ?? null, Scale: f.Scale ?? null, DefaultValue: f.DefaultValue ?? null,
|
|
366
|
-
// U1 — preserve `undefined` (no opinion); `?? false` fabricated a "not a PK/FK" opinion
|
|
367
|
-
IsPrimaryKey: f.IsPrimaryKey, IsUniqueKey: f.IsUniqueKey, IsReadOnly: f.IsReadOnly,
|
|
368
|
-
IsForeignKey: f.IsForeignKey, ForeignKeyTarget: f.ForeignKeyTarget ?? null,
|
|
369
|
-
}));
|
|
370
|
-
existing.PrimaryKeyFields = dfields.filter(f => f.IsPrimaryKey).map(f => f.Name);
|
|
371
|
-
existing.Relationships = dfields
|
|
372
|
-
.filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
|
|
373
|
-
.map(f => ({ FieldName: f.Name, TargetObject: f.ForeignKeyTarget, TargetField: 'ID' }));
|
|
374
|
-
console.log(`[IntrospectPipeline] declared field-less object "${d.Name}" → discovered ${dfields.length} fields via read path`);
|
|
375
|
-
}
|
|
376
|
-
catch (err) {
|
|
377
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
378
|
-
emitter.stageError('Introspect', `DiscoverFieldsViaFetch failed for declared field-less "${d.Name}": ${msg}`, { code: 'discover-fields-failed' });
|
|
379
|
-
console.error(`[IntrospectPipeline] DiscoverFieldsViaFetch failed for declared "${d.Name}": ${msg}`);
|
|
380
|
-
}
|
|
424
|
+
if (existing) {
|
|
425
|
+
await this.SampleDeclaredObjectInPlace(existing, d.Name, opts, emitter);
|
|
426
|
+
sampledDeclared.add(key);
|
|
381
427
|
}
|
|
382
428
|
continue;
|
|
383
429
|
}
|
|
@@ -388,7 +434,7 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
388
434
|
// SAVE-LESS — stream as much of the feed as the budget allows so the PK decision is
|
|
389
435
|
// made on a statistically-significant sample, not a single (possibly tiny) file. No
|
|
390
436
|
// DB write happens here; the real save is the later ApplyAll → StartSync.
|
|
391
|
-
fields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, d.Name, opts.ContextUser);
|
|
437
|
+
fields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, d.Name, opts.ContextUser, { OnFallback: (err) => this.ReportSampleFallback(d.Name, err, emitter) });
|
|
392
438
|
}
|
|
393
439
|
catch (err) {
|
|
394
440
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -424,7 +470,43 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
424
470
|
});
|
|
425
471
|
runtimeAdded++;
|
|
426
472
|
}
|
|
427
|
-
|
|
473
|
+
// The union's second half: DECLARED objects the runtime pass never reached. Sampling used
|
|
474
|
+
// to be reachable only through a DiscoverObjects hit, so an object the connector declares
|
|
475
|
+
// but does not re-surface at runtime — the normal shape for a catalog-driven connector, and
|
|
476
|
+
// for every object when DiscoverObjects fails — was never sampled at all. It kept whatever
|
|
477
|
+
// widths the catalog guessed (a truncation waiting to happen) and could only ever gain its
|
|
478
|
+
// undeclared columns later, one sync at a time, through the overflow path.
|
|
479
|
+
let declaredOnlySampled = 0;
|
|
480
|
+
for (const name of declaredNames) {
|
|
481
|
+
const key = name.toLowerCase();
|
|
482
|
+
if (sampledDeclared.has(key) || !inScope(name))
|
|
483
|
+
continue;
|
|
484
|
+
announceSample(name);
|
|
485
|
+
if (outOfTime()) {
|
|
486
|
+
unsampledForTime++;
|
|
487
|
+
continue;
|
|
488
|
+
}
|
|
489
|
+
const existing = schema.Objects.find(o => o.ExternalName.toLowerCase() === key);
|
|
490
|
+
if (!existing)
|
|
491
|
+
continue;
|
|
492
|
+
// Record it here too: two declared entries that differ only by case resolve to the
|
|
493
|
+
// SAME object, and sampling it twice doubles the most expensive part of discovery.
|
|
494
|
+
sampledDeclared.add(key);
|
|
495
|
+
await this.SampleDeclaredObjectInPlace(existing, name, opts, emitter);
|
|
496
|
+
declaredOnlySampled++;
|
|
497
|
+
}
|
|
498
|
+
if (unsampledForTime > 0) {
|
|
499
|
+
// NOT a failure: every unsampled object keeps its declaration, which is exactly the
|
|
500
|
+
// behaviour that shipped before sampling existed. But it is not the complete sample
|
|
501
|
+
// the run appears to have done, and the difference is real — unsampled objects keep
|
|
502
|
+
// catalog-guessed widths and gain undeclared columns only via the overflow path.
|
|
503
|
+
const msg = `Ran out of time after ${Math.round((Date.now() - startMs) / 1000)}s: ` +
|
|
504
|
+
`${unsampledForTime} object(s) were not sampled and keep their declared fields ` +
|
|
505
|
+
`and catalog widths. Raise RunDeadlineMs or introspect a named subset.`;
|
|
506
|
+
emitter.stageError('Introspect', msg, { code: 'sample-budget-exhausted' });
|
|
507
|
+
console.warn(`[IntrospectPipeline] ${msg}`);
|
|
508
|
+
}
|
|
509
|
+
console.log(`[IntrospectPipeline] declared=${declaredNames.length} runtime-added=${runtimeAdded} declared-only-sampled=${declaredOnlySampled} unsampled-for-time=${unsampledForTime} total=${schema.Objects.length}`);
|
|
428
510
|
const fieldCount = schema.Objects.reduce((acc, o) => acc + o.Fields.length, 0);
|
|
429
511
|
emitter.stageComplete('Introspect', {
|
|
430
512
|
processed: schema.Objects.length,
|
|
@@ -435,6 +517,8 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
435
517
|
objectsDiscovered: schema.Objects.length,
|
|
436
518
|
fieldsDiscovered: fieldCount,
|
|
437
519
|
durationMs: Date.now() - startMs,
|
|
520
|
+
discoverObjectsFailed,
|
|
521
|
+
unsampledForTime,
|
|
438
522
|
});
|
|
439
523
|
return schema;
|
|
440
524
|
}
|
|
@@ -445,6 +529,82 @@ export class IntegrationConnectorCreationPipeline {
|
|
|
445
529
|
}
|
|
446
530
|
}
|
|
447
531
|
// ── Stage 3: persist ─────────────────────────────────────────────────
|
|
532
|
+
/**
|
|
533
|
+
* Samples a DECLARED object over the read path and merges the result into it IN PLACE.
|
|
534
|
+
*
|
|
535
|
+
* Sampling is UNCONDITIONAL — it used to run only for a declared object with no fields, a gate
|
|
536
|
+
* on the wrong question, because streaming answers three things and a declaration can only
|
|
537
|
+
* pre-answer one of them. A declared key IS authoritative; which fields the source actually
|
|
538
|
+
* sends, and how wide their values are, only the data knows.
|
|
539
|
+
*
|
|
540
|
+
* The merge is one-directional (see DeclaredSampleMerge): sampling fills gaps and widens, never
|
|
541
|
+
* overrides. A fetch failure leaves the declaration exactly as it was, so the worst case is the
|
|
542
|
+
* behaviour that shipped before sampling existed.
|
|
543
|
+
*/
|
|
544
|
+
/**
|
|
545
|
+
* Surfaces a silent degradation: streaming failed, so the fields came from the catalog's own
|
|
546
|
+
* description instead of from records. That distinction is the whole value of sampling — the
|
|
547
|
+
* catalog states no observed widths — but from the outside the two are indistinguishable, so
|
|
548
|
+
* without this an object quietly keeps a guessed width and drops every longer value at sync.
|
|
549
|
+
*/
|
|
550
|
+
ReportSampleFallback(objectName, err, emitter) {
|
|
551
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
552
|
+
emitter.stageError('Introspect', `Sampling fell back to the catalog description for "${objectName}" — real widths and ` +
|
|
553
|
+
`undeclared columns are unknown for this run: ${msg}`, { code: 'discover-fields-fallback' });
|
|
554
|
+
console.warn(`[IntrospectPipeline] sample fallback for "${objectName}": ${msg}`);
|
|
555
|
+
}
|
|
556
|
+
async SampleDeclaredObjectInPlace(existing, objectName, opts, emitter) {
|
|
557
|
+
try {
|
|
558
|
+
const dfields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, objectName, opts.ContextUser, { OnFallback: (err) => this.ReportSampleFallback(objectName, err, emitter) });
|
|
559
|
+
const sampled = dfields.map(f => ({
|
|
560
|
+
Name: f.Name, Label: f.Label, Description: f.Description, SourceType: f.DataType,
|
|
561
|
+
IsRequired: f.IsRequired, AllowsNull: f.AllowsNull, MaxLength: f.MaxLength ?? null,
|
|
562
|
+
Precision: f.Precision ?? null, Scale: f.Scale ?? null, DefaultValue: f.DefaultValue ?? null,
|
|
563
|
+
// U1 — preserve `undefined` (no opinion); `?? false` fabricated a "not a PK/FK" opinion
|
|
564
|
+
IsPrimaryKey: f.IsPrimaryKey, IsUniqueKey: f.IsUniqueKey, IsReadOnly: f.IsReadOnly,
|
|
565
|
+
IsForeignKey: f.IsForeignKey, ForeignKeyTarget: f.ForeignKeyTarget ?? null,
|
|
566
|
+
}));
|
|
567
|
+
if (existing.Fields.length === 0) {
|
|
568
|
+
// Nothing was declared, so there is nothing to defer to — the
|
|
569
|
+
// sample is the whole truth, exactly as before this change.
|
|
570
|
+
existing.Fields = sampled;
|
|
571
|
+
existing.PrimaryKeyFields = dfields.filter(f => f.IsPrimaryKey).map(f => f.Name);
|
|
572
|
+
existing.Relationships = dfields
|
|
573
|
+
.filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
|
|
574
|
+
.map(f => ({ FieldName: f.Name, TargetObject: f.ForeignKeyTarget, TargetField: 'ID' }));
|
|
575
|
+
console.log(`[IntrospectPipeline] declared field-less object "${objectName}" → discovered ${dfields.length} field(s) via read path`);
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
const merged = MergeDeclaredWithSample(existing.Fields, sampled);
|
|
579
|
+
existing.Fields = merged.Fields;
|
|
580
|
+
// Only when the declaration named no key at all — a declared key
|
|
581
|
+
// stays authoritative even if the sample nominates another column,
|
|
582
|
+
// which is how a child table ends up keyed on its parent's FK.
|
|
583
|
+
if (merged.AdoptedKeyNames.length > 0) {
|
|
584
|
+
existing.PrimaryKeyFields = merged.AdoptedKeyNames;
|
|
585
|
+
}
|
|
586
|
+
// Relationships come from the declaration when there is one; a
|
|
587
|
+
// sampled FK target is a guess and must not rewrite a stated graph.
|
|
588
|
+
const parts = [
|
|
589
|
+
merged.AddedFieldNames.length ? `added ${merged.AddedFieldNames.length} undeclared field(s): ${merged.AddedFieldNames.join(', ')}` : null,
|
|
590
|
+
merged.WidenedFieldNames.length ? `widened ${merged.WidenedFieldNames.length}: ${merged.WidenedFieldNames.join(', ')}` : null,
|
|
591
|
+
merged.AdoptedKeyNames.length ? `adopted key [${merged.AdoptedKeyNames.join(', ')}]` : null,
|
|
592
|
+
].filter(Boolean);
|
|
593
|
+
console.log(`[IntrospectPipeline] declared object "${objectName}" sampled ${dfields.length} field(s) — ${parts.length ? parts.join('; ') : 'declaration already matched the data'}`);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
catch (err) {
|
|
597
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
598
|
+
// The declaration stands exactly as it was — the worst case of sampling
|
|
599
|
+
// failing is the behaviour that shipped before it. Say which was lost so
|
|
600
|
+
// an operator can tell "no columns at all" from "possibly narrow ones".
|
|
601
|
+
const lost = existing.Fields.length === 0
|
|
602
|
+
? 'object has NO fields and cannot be synced until this succeeds'
|
|
603
|
+
: 'keeping the declared fields; undeclared columns and true widths are unknown for this run';
|
|
604
|
+
emitter.stageError('Introspect', `DiscoverFieldsViaFetch failed for declared "${objectName}" — ${lost}: ${msg}`, { code: 'discover-fields-failed' });
|
|
605
|
+
console.error(`[IntrospectPipeline] DiscoverFieldsViaFetch failed for declared "${objectName}" — ${lost}: ${msg}`);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
448
608
|
async StagePersist(emitter, opts, sourceSchema) {
|
|
449
609
|
emitter.stageStart('Persist', 'Upserting IntegrationObject/Field rows with overlay precedence');
|
|
450
610
|
const startMs = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationConnectorCreationPipeline.js","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IntegrationConnectorCreationPipeline.js","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,26 @@ export declare class SchemaNotGeneratedError extends Error {
|
|
|
33
33
|
readonly StoredProcedureName: string;
|
|
34
34
|
constructor(entityName: string, storedProcedureName: string);
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Thrown by a connector when the vendor says THIS account cannot serve an object it nonetheless
|
|
38
|
+
* lists in its catalog (e.g. a record type the account has not enabled). Distinct from a fetch
|
|
39
|
+
* failure: retrying cannot help WITHIN a run, so the map ends cleanly instead of climbing a retry
|
|
40
|
+
* ladder — one warning, watermark untouched.
|
|
41
|
+
*
|
|
42
|
+
* It is deliberately not remembered ACROSS runs. The next run simply asks again, which is what makes
|
|
43
|
+
* an account change self-healing with no marker, no recheck clock and no override to get right.
|
|
44
|
+
*
|
|
45
|
+
* Connectors are NOT required to import this class — the engine also recognises any error carrying
|
|
46
|
+
* `code === 'OBJECT_UNAVAILABLE'`, so a connector can classify one without a peer version bump.
|
|
47
|
+
*/
|
|
48
|
+
export declare class ObjectUnavailableError extends Error {
|
|
49
|
+
readonly code = "OBJECT_UNAVAILABLE";
|
|
50
|
+
/** The vendor's own explanation, surfaced to the operator verbatim. */
|
|
51
|
+
readonly VendorMessage: string;
|
|
52
|
+
constructor(objectName: string, vendorMessage: string);
|
|
53
|
+
}
|
|
54
|
+
/** Recognises an unavailability signal from a connector that imported the class OR just set the code. */
|
|
55
|
+
export declare function IsObjectUnavailable(err: unknown): boolean;
|
|
36
56
|
/**
|
|
37
57
|
* §29 — base of the VALUE-FIT error family: a mapped value cannot fit/coerce into its destination
|
|
38
58
|
* column's type. Per the bounded-typing policy (small columns; large content is an explicit text/json
|
|
@@ -81,6 +101,14 @@ export declare class NumericOverflowError extends ValueFitError {
|
|
|
81
101
|
* Exported so the guard itself is unit-testable without standing up a sync.
|
|
82
102
|
*/
|
|
83
103
|
export declare function PositiveInt(v: unknown): number | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* How many deferred writes may accumulate in one batched group before it is submitted and replaced.
|
|
106
|
+
*
|
|
107
|
+
* `undefined` (unset, or any unusable value) means no mid-batch flush at all — the batch is one
|
|
108
|
+
* group and one transaction, which is the default and the behaviour that shipped. An explicit value
|
|
109
|
+
* trades that atomicity for bounded memory on a heap-constrained box.
|
|
110
|
+
*/
|
|
111
|
+
export declare function ReadFlushCeiling(env: NodeJS.ProcessEnv): number | undefined;
|
|
84
112
|
export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine> {
|
|
85
113
|
constructor();
|
|
86
114
|
/**
|
|
@@ -123,8 +151,69 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
123
151
|
* calls without threading a parameter through ~20 private signatures.
|
|
124
152
|
*/
|
|
125
153
|
private static readonly runContext;
|
|
154
|
+
/**
|
|
155
|
+
* The connection's opt-in write mode, from `CompanyIntegration.Configuration`.
|
|
156
|
+
*
|
|
157
|
+
* Returns `''` for absent, unparseable or wrongly-typed configuration. Every failure mode
|
|
158
|
+
* therefore lands on the proven per-record path: a connection has to ASK for batched writes,
|
|
159
|
+
* and a malformed request is not an ask.
|
|
160
|
+
*/
|
|
161
|
+
private ReadWriteMode;
|
|
126
162
|
/** The current run's context, when called from inside a sync run. */
|
|
127
163
|
private get currentRunContext();
|
|
164
|
+
/**
|
|
165
|
+
* Defers this entity's write into the batch's group, when the connection asked for that.
|
|
166
|
+
*
|
|
167
|
+
* A no-op when no group is active, which is every existing caller — an entity constructed
|
|
168
|
+
* outside a batched apply saves immediately, exactly as before. What this does NOT do is skip
|
|
169
|
+
* any part of the save: `Save()` still validates, still checks row scope, still renders the
|
|
170
|
+
* generated procedure call, and still fires its post-save hook. Only the moment the SQL travels
|
|
171
|
+
* changes, and the group is what makes N of them travel together.
|
|
172
|
+
*/
|
|
173
|
+
private enrolInWriteGroup;
|
|
174
|
+
/**
|
|
175
|
+
* True when the entity's identity is a SINGLE auto-increment column — the one primary-key
|
|
176
|
+
* shape whose value cannot be known until the insert has executed. See {@link enrolInWriteGroup}.
|
|
177
|
+
*/
|
|
178
|
+
private hasIdentityOnlyPrimaryKey;
|
|
179
|
+
/**
|
|
180
|
+
* The MAP-level twin of {@link hasIdentityOnlyPrimaryKey}, asked BEFORE a write group is
|
|
181
|
+
* created. The entity-level guard refuses enrolment per record, which is total at the seam —
|
|
182
|
+
* but for a map whose target is that shape it refuses EVERY record, and the branch around it
|
|
183
|
+
* has already committed to being atomic by construction: it skips `BeginTransaction` because
|
|
184
|
+
* a group exists. The result is a group that stays empty, no transaction, records saving
|
|
185
|
+
* one-by-one on their own, and an empty `Submit()` returning true — a NON-ATOMIC batch
|
|
186
|
+
* reporting success as an atomic one.
|
|
187
|
+
*
|
|
188
|
+
* Worse on the failure path: a mid-batch throw correctly skips the rollback (there is no
|
|
189
|
+
* transaction), then the fallback re-applies the WHOLE batch including rows that already
|
|
190
|
+
* committed. With a server-assigned identity there is nothing to recognise the first copy
|
|
191
|
+
* by, so those become duplicates — the very failure the enrolment guard exists to prevent,
|
|
192
|
+
* reached from the other side.
|
|
193
|
+
*
|
|
194
|
+
* So the decision is made here, at the map, and such a map falls to the `useTransaction`
|
|
195
|
+
* path and gets REAL atomicity instead of an empty group.
|
|
196
|
+
*
|
|
197
|
+
* Deliberately not asserted at `Submit()` instead: an empty group is a legitimate state —
|
|
198
|
+
* when the content-hash fast path skips every record in a batch, nothing enrols and the
|
|
199
|
+
* group is correctly empty. At submit time the harmful and benign cases are
|
|
200
|
+
* indistinguishable, which is exactly why this has to be decided up front.
|
|
201
|
+
*/
|
|
202
|
+
private entityMapHasIdentityOnlyPK;
|
|
203
|
+
/**
|
|
204
|
+
* The connection's write-side-effect mode from `CompanyIntegration.Configuration`. Returns ''
|
|
205
|
+
* for absent, unparseable or wrongly-typed configuration — every failure mode keeps the side
|
|
206
|
+
* effects ON. A connection has to ask, and a malformed request is not an ask.
|
|
207
|
+
*/
|
|
208
|
+
private ReadWriteSideEffects;
|
|
209
|
+
/**
|
|
210
|
+
* Save options for THIS run's machine writes: suppress the audit row + geocode lookup when
|
|
211
|
+
* the connection asked for it, undefined otherwise (identical to the pre-feature call).
|
|
212
|
+
* Scoped to the sync's own saves — never to any other writer of the same entities.
|
|
213
|
+
*/
|
|
214
|
+
private get syncSaveOptions();
|
|
215
|
+
/** Delete twin of {@link syncSaveOptions}. */
|
|
216
|
+
private get syncDeleteOptions();
|
|
128
217
|
/**
|
|
129
218
|
* Server-registered hook for post-sync custom-column promotion (gaps.md §2 / M2). The
|
|
130
219
|
* engine has no dependency on RSU/CodeGen — the server registers an implementation via
|
|
@@ -171,8 +260,23 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
171
260
|
* phase stays parallel (the real throughput win — it's network-bound). WeakMap so a
|
|
172
261
|
* retired provider's chain entry is collectable.
|
|
173
262
|
*/
|
|
174
|
-
private static readonly
|
|
263
|
+
private static readonly writeSerializers;
|
|
264
|
+
/** The write lock for this engine's provider, created on first use. */
|
|
265
|
+
private writeSerializer;
|
|
266
|
+
/**
|
|
267
|
+
* Runs `fn` with NO other write in flight against the provider. Required for work that opens
|
|
268
|
+
* the provider's single global transaction — while it is open, any other write would join it.
|
|
269
|
+
*/
|
|
175
270
|
private runWriteExclusive;
|
|
271
|
+
/**
|
|
272
|
+
* Runs `fn` ordered against other writes for the SAME entity map, concurrently with other maps.
|
|
273
|
+
*
|
|
274
|
+
* Only for work that opens no provider transaction — watermark bookkeeping, match resolution,
|
|
275
|
+
* and the post-batch flushes of a batched (TransactionGroup-carrying) apply. Those were queued
|
|
276
|
+
* behind every other map's writes purely because the lock could not tell them apart from a
|
|
277
|
+
* transaction-holding section.
|
|
278
|
+
*/
|
|
279
|
+
private runWriteForMap;
|
|
176
280
|
/**
|
|
177
281
|
* Fence check at a batch boundary, BEFORE any write (PR 1 item 3). One SELECT of the run's
|
|
178
282
|
* ownership columns: if the fence has moved (the stale sweep or another worker reclaimed the
|
|
@@ -407,6 +511,53 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
407
511
|
private runBounded;
|
|
408
512
|
/** Per-integration request-spacing chain for the rate limiter (keyed by IntegrationID → last scheduled time). */
|
|
409
513
|
private readonly _rateLimiters;
|
|
514
|
+
/**
|
|
515
|
+
* Per-connection gate on SIMULTANEOUS vendor fetches — adaptive, throttle-detected.
|
|
516
|
+
*
|
|
517
|
+
* Vendors govern by concurrent requests per ACCOUNT (NetSuite's base tier is 5), and the
|
|
518
|
+
* punishment for exceeding the grant is served INSIDE the fetch: the request is rejected
|
|
519
|
+
* and the retry's backoff burns tens of seconds while every resource metric reads idle.
|
|
520
|
+
* Measured live: a tight cluster of ~31.5s fetch durations on an account whose grant was 5
|
|
521
|
+
* while the engine had ~16 requests in flight (lanes x prefetch).
|
|
522
|
+
*
|
|
523
|
+
* The gate caps in-flight fetches per connection so the overflow queues CLIENT-side for
|
|
524
|
+
* milliseconds instead of SERVER-side for seconds. Sync concurrency (how many entity maps
|
|
525
|
+
* run at once) is deliberately NOT reduced — only simultaneous wire calls are.
|
|
526
|
+
*
|
|
527
|
+
* The cap is adaptive (AIMD): it starts at `Configuration.fetchConcurrency ??
|
|
528
|
+
* connector.MaxConcurrencyHint ?? 5`, HALVES whenever a throttle is detected, and creeps
|
|
529
|
+
* back up by 1 per clean fetch. Throttles reach it from both directions: fetch-level
|
|
530
|
+
* RATE_LIMIT errors the engine sees itself, and throttles the connector absorbs inside
|
|
531
|
+
* its own retry loop and reports via `ctx.RateLimitReport` — both land in
|
|
532
|
+
* `reportRateOutcome`, which feeds this controller. The gate therefore FINDS the
|
|
533
|
+
* account's real grant with zero configuration, and scales up automatically on accounts
|
|
534
|
+
* with a larger one.
|
|
535
|
+
*/
|
|
536
|
+
private _fetchGates?;
|
|
537
|
+
private getFetchGate;
|
|
538
|
+
/**
|
|
539
|
+
* Runs `fn` holding one slot of the connection's fetch gate. A whole retry episode holds a
|
|
540
|
+
* single slot — retries of a throttled call must not add pressure to the account that just
|
|
541
|
+
* throttled us. FIFO: waiters resolve in arrival order as slots free or the cap grows.
|
|
542
|
+
*/
|
|
543
|
+
private withFetchGate;
|
|
544
|
+
/**
|
|
545
|
+
* One governed vendor fetch: rate-limit token, adaptive fetch gate, per-attempt timeout,
|
|
546
|
+
* transient-only retry with Retry-After pacing, and ONE multiplicative decrease per throttle
|
|
547
|
+
* EPISODE (not per rejected attempt — a 429 that survives three retries is three rejections
|
|
548
|
+
* but one congestion event, the same distinction TCP draws when it halves the window once per
|
|
549
|
+
* loss event). Extracted so the loop-top fetch and the pipelined prefetch (which starts the
|
|
550
|
+
* next page while the current one is processed) share EXACTLY the same pacing and error
|
|
551
|
+
* semantics — a prefetched page must be indistinguishable from a loop-top fetch to the vendor.
|
|
552
|
+
*
|
|
553
|
+
* Retry predicate: our OWN timeout is terminal for this page (WithTimeout is a Promise.race
|
|
554
|
+
* with no cancellation, so the abandoned attempt keeps running — retrying stacks a second full
|
|
555
|
+
* page of vendor requests on a source already too slow to finish one); a transport error is
|
|
556
|
+
* not (a reset socket IS worth retrying). A throttle honors the source's Retry-After via
|
|
557
|
+
* DelayForError, and every retry re-passes the rate limiter via BeforeRetry so it cannot
|
|
558
|
+
* bypass a freeze the throttle just applied.
|
|
559
|
+
*/
|
|
560
|
+
private governedFetch;
|
|
410
561
|
/** Minimum ms between outbound requests for this integration (Integration.BatchRequestWaitTime; 0 = disabled). */
|
|
411
562
|
private getRequestSpacingMs;
|
|
412
563
|
/**
|
|
@@ -452,6 +603,8 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
452
603
|
* - Bidirectional: pull first, then push
|
|
453
604
|
*/
|
|
454
605
|
private ProcessSingleEntityMap;
|
|
606
|
+
/** Loads the map fresh and writes its Configuration through Save(), like every other engine write. */
|
|
607
|
+
private SaveEntityMapConfiguration;
|
|
455
608
|
/**
|
|
456
609
|
* Pull sync: fetch from external → map → match → validate → apply to MJ.
|
|
457
610
|
*/
|
|
@@ -645,6 +798,19 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
645
798
|
* so the record is genuinely new and must be inserted. Used by CreateRecord for PK-safe upsert.
|
|
646
799
|
*/
|
|
647
800
|
private extractMappedPrimaryKey;
|
|
801
|
+
/**
|
|
802
|
+
* True ONLY when the batch prefetch PROVED this record's row does not exist: the prefetch covered
|
|
803
|
+
* every record in the batch AND this key is missing from the rows it found. Anything less is
|
|
804
|
+
* "unknown", and unknown must load — a wrong "absent" turns an update into a duplicate INSERT.
|
|
805
|
+
*
|
|
806
|
+
* `mappedPK` must be the '|'-joined key {@link extractMappedPrimaryKey} returns — the SAME shape
|
|
807
|
+
* {@link PrefetchContentHashes} keys `Present` with (`pkNames.map(n => row[n] ?? '').join('|')`).
|
|
808
|
+
* The first version of this check re-derived a key by indexing that string with PK field names,
|
|
809
|
+
* which evaluates to `''` for every record — so "provably absent" was unconditionally true and
|
|
810
|
+
* every upsert of an existing row became a blind duplicate INSERT. Kept as its own method so the
|
|
811
|
+
* decision is testable against the real extractor's output rather than a re-implementation.
|
|
812
|
+
*/
|
|
813
|
+
private isProvablyAbsent;
|
|
648
814
|
/**
|
|
649
815
|
* Updates an existing MJ record with pre-write validation.
|
|
650
816
|
* If the record cannot be loaded (e.g. it was deleted or never fully created),
|
|
@@ -677,6 +843,12 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
677
843
|
* the same format written by BaseRESTIntegrationConnector.ToExternalRecord.
|
|
678
844
|
*/
|
|
679
845
|
private BuildEntityPrimaryKey;
|
|
846
|
+
/**
|
|
847
|
+
* The exact inverse of {@link BuildEntityPrimaryKey}: the '|'-joined value(s) of a data row's
|
|
848
|
+
* primary-key column(s), in PK-field order — the shape CompanyIntegrationRecordMap.EntityRecordID
|
|
849
|
+
* and a normalized RecordChange.RecordID carry. A single-column key is just its value.
|
|
850
|
+
*/
|
|
851
|
+
private ComposeEntityRecordID;
|
|
680
852
|
/**
|
|
681
853
|
* Reports ACTIVE field maps whose MJ column does not exist, once per entity map per run.
|
|
682
854
|
*
|