@memberjunction/integration-engine 6.1.0-edge.3 → 6.1.0-edge.5
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 +26 -2
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +145 -23
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +62 -8
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +200 -20
- 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/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/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 +20 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.js +203 -30
- package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
- package/dist/IntegrationEngine.d.ts +204 -1
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +1224 -262
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/IntegrationSchemaSync.d.ts +54 -2
- package/dist/IntegrationSchemaSync.d.ts.map +1 -1
- package/dist/IntegrationSchemaSync.js +122 -16
- 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/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/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 +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 +15 -0
- package/dist/WatermarkService.d.ts.map +1 -1
- package/dist/WatermarkService.js +26 -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 +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +45 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +66 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
|
@@ -149,9 +149,23 @@ export interface AbsentDeactivationInput {
|
|
|
149
149
|
IsAuthoritative: boolean;
|
|
150
150
|
/** ExternalName of every object this discovery returned. */
|
|
151
151
|
DiscoveredObjectNames: string[];
|
|
152
|
-
/** Per discovered object (by ExternalName): the field names it returned.
|
|
153
|
-
* object's fields are NOT authoritative (DiscoverFields found none) → its columns are never disabled. */
|
|
152
|
+
/** Per discovered object (by ExternalName): the field names it returned. */
|
|
154
153
|
DiscoveredFieldNamesByObject: Record<string, string[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Per discovered object (by ExternalName): whether that field list is the object's COMPLETE
|
|
156
|
+
* column set for this account, as DECLARED by the source (SourceObjectInfo.FieldsAreAuthoritative).
|
|
157
|
+
*
|
|
158
|
+
* Only a complete list may deactivate columns. This used to be inferred from "the list came back
|
|
159
|
+
* non-empty", which cannot distinguish a source returning only the account's CUSTOM columns from
|
|
160
|
+
* one returning the full mapping — so a custom-only source looked complete and its standard
|
|
161
|
+
* columns became deactivation candidates.
|
|
162
|
+
*
|
|
163
|
+
* Now it is DECLARED: per object where the object states one, otherwise inherited from the
|
|
164
|
+
* connector's own `DiscoveryIsAuthoritative`. A connector affirming a complete gamut is affirming
|
|
165
|
+
* it for the fields the same describe returned; an object that returns only custom columns sets
|
|
166
|
+
* this false to opt out.
|
|
167
|
+
*/
|
|
168
|
+
FieldsAuthoritativeByObject: Record<string, boolean>;
|
|
155
169
|
/** Current ACTIVE objects in the integration. */
|
|
156
170
|
ActiveObjects: Array<{
|
|
157
171
|
ID: string;
|
|
@@ -224,7 +238,45 @@ export interface PersistSchemaResult {
|
|
|
224
238
|
*/
|
|
225
239
|
ObjectMergeLog: ObjectMergeLog[];
|
|
226
240
|
FieldMergeLog: FieldMergeLog[];
|
|
241
|
+
/**
|
|
242
|
+
* Names of the objects, and `Object.Field` for the fields, that phase 3 DEACTIVATED because an
|
|
243
|
+
* authoritative discovery did not observe them. Previously this was a console line and nothing
|
|
244
|
+
* else, so a declared field disappearing from every subsequent apply had no trace the caller
|
|
245
|
+
* could surface. Empty unless `DeactivateAbsent` ran.
|
|
246
|
+
*/
|
|
247
|
+
ObjectsDeactivated: string[];
|
|
248
|
+
FieldsDeactivated: string[];
|
|
227
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Type overlay, silence-respecting — the same rule {@link decideBooleanOverlay} applies to booleans.
|
|
252
|
+
*
|
|
253
|
+
* A source that states a type wins; a source that says NOTHING leaves the declaration alone. Without
|
|
254
|
+
* the silence check, `MapSourceType('')` fell through to its `'nvarchar'` default and a describe with
|
|
255
|
+
* no type opinion quietly rewrote a curated `datetimeoffset` or `bit` to `nvarchar` — the exact
|
|
256
|
+
* "never fabricate values the source didn't give you" rule this file already enforces everywhere
|
|
257
|
+
* else. Types are hard constraints (real DDL), so a wrong one is a migration, not a cosmetic drift.
|
|
258
|
+
*
|
|
259
|
+
* A declaration that states nothing still takes the mapped value, fallback included: something has
|
|
260
|
+
* to be written, and there is no curated value to protect.
|
|
261
|
+
*/
|
|
262
|
+
export declare function decideTypeOverlay(declaredType: string | null | undefined, sourceType: string | null | undefined): {
|
|
263
|
+
value: string;
|
|
264
|
+
winner: 'Declared' | 'Discovered';
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* Nullability overlay, silence-respecting.
|
|
268
|
+
*
|
|
269
|
+
* `AllowsNull ?? !IsRequired` computed `true` when the source stated NEITHER — because `!undefined`
|
|
270
|
+
* is `true` — so a describe with no opinion on either attribute unconditionally overwrote a declared
|
|
271
|
+
* `AllowsNull: false`. A required column silently became optional, and the DDL followed.
|
|
272
|
+
*
|
|
273
|
+
* The derivation from `IsRequired` is kept: a source that says a column is required HAS stated its
|
|
274
|
+
* nullability, just indirectly. Only the both-silent case defers to the declaration.
|
|
275
|
+
*/
|
|
276
|
+
export declare function decideNullabilityOverlay(declaredAllowsNull: boolean | null | undefined, sourceAllowsNull: boolean | undefined, sourceIsRequired: boolean | undefined): {
|
|
277
|
+
value: boolean;
|
|
278
|
+
winner: 'Declared' | 'Discovered';
|
|
279
|
+
};
|
|
228
280
|
export declare class IntegrationSchemaSync {
|
|
229
281
|
/**
|
|
230
282
|
* Upserts IntegrationObject and IntegrationObjectField records from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"AAAE;;;;;;;;;;;;;EAaC;AAEH,OAAO,EAAgB,iBAAiB,EAA+B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAU9G,OAAO,KAAK,EAAE,gBAAgB,EAAqC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { CompositeKey, LogError, Metadata, RunView } from '@memberjunction/core';
|
|
16
16
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
17
|
+
import { ReadFieldSyncDirective, WriteFieldSyncDirective } from './SyncDirectives.js';
|
|
17
18
|
import { ActionMetadataGenerator } from './ActionMetadataGenerator.js';
|
|
18
19
|
/**
|
|
19
20
|
* Pure-function overlay rule for a single boolean attribute.
|
|
@@ -105,6 +106,18 @@ export function decideSemanticOverlay(declared, discovered) {
|
|
|
105
106
|
export function decideLengthOverlay(existingLength, srcMaxLength) {
|
|
106
107
|
if (srcMaxLength == null)
|
|
107
108
|
return { Length: existingLength, changed: false };
|
|
109
|
+
// -1 is MAX/unbounded — the convention both dialects already render as `(MAX)` (see
|
|
110
|
+
// sqlServerDialect/postgresqlDialect: `length === -1` → unbounded). It is therefore the WIDEST
|
|
111
|
+
// possible width, not the narrowest, and a numeric `>` comparison gets that exactly backwards:
|
|
112
|
+
// any sampled width beats it, so an operator who widened a column to MAX had it silently
|
|
113
|
+
// narrowed again on the next discovery. Records too long for the re-narrowed column are then
|
|
114
|
+
// SKIPPED WHOLE (not truncated), so the data simply stops arriving.
|
|
115
|
+
if (existingLength === -1)
|
|
116
|
+
return { Length: -1, changed: false };
|
|
117
|
+
// A source that explicitly reports unbounded wins over any finite persisted width, for the same
|
|
118
|
+
// grow-only reason the numeric case below exists.
|
|
119
|
+
if (srcMaxLength === -1)
|
|
120
|
+
return { Length: -1, changed: existingLength !== -1 };
|
|
108
121
|
if (existingLength == null || srcMaxLength > existingLength) {
|
|
109
122
|
return { Length: srcMaxLength, changed: existingLength !== srcMaxLength };
|
|
110
123
|
}
|
|
@@ -128,8 +141,12 @@ export function decideAbsentDeactivations(input) {
|
|
|
128
141
|
const ObjectIDsToDeactivate = input.ActiveObjects.filter((o) => !discovered.has(o.Name.toLowerCase())).map((o) => o.ID);
|
|
129
142
|
const FieldIDsToDeactivate = [];
|
|
130
143
|
for (const [objName, fieldNames] of Object.entries(input.DiscoveredFieldNamesByObject)) {
|
|
144
|
+
// Declared-complete only. An undeclared object (or one that returned nothing) says nothing
|
|
145
|
+
// about what is absent, so nothing of its is disabled.
|
|
146
|
+
if (input.FieldsAuthoritativeByObject[objName] !== true)
|
|
147
|
+
continue;
|
|
131
148
|
if (fieldNames.length === 0)
|
|
132
|
-
continue; //
|
|
149
|
+
continue; // a complete list that is empty would disable everything
|
|
133
150
|
const objID = input.ObjectIDByName[objName.toLowerCase()];
|
|
134
151
|
if (!objID)
|
|
135
152
|
continue;
|
|
@@ -165,6 +182,62 @@ export function decideSchemaLimitViolations(input) {
|
|
|
165
182
|
}
|
|
166
183
|
return violations;
|
|
167
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Does the source actually STATE a type, or is this silence?
|
|
187
|
+
*
|
|
188
|
+
* {@link MapSourceType} answers every input, including `''` and `undefined`, because its fallback
|
|
189
|
+
* has to produce something for a genuinely unknown column. That makes it unable to tell "the source
|
|
190
|
+
* says this is text" from "the source said nothing" — and the caller used its answer either way.
|
|
191
|
+
*/
|
|
192
|
+
function SourceStatedAType(sourceType) {
|
|
193
|
+
return typeof sourceType === 'string' && sourceType.trim().length > 0;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Type overlay, silence-respecting — the same rule {@link decideBooleanOverlay} applies to booleans.
|
|
197
|
+
*
|
|
198
|
+
* A source that states a type wins; a source that says NOTHING leaves the declaration alone. Without
|
|
199
|
+
* the silence check, `MapSourceType('')` fell through to its `'nvarchar'` default and a describe with
|
|
200
|
+
* no type opinion quietly rewrote a curated `datetimeoffset` or `bit` to `nvarchar` — the exact
|
|
201
|
+
* "never fabricate values the source didn't give you" rule this file already enforces everywhere
|
|
202
|
+
* else. Types are hard constraints (real DDL), so a wrong one is a migration, not a cosmetic drift.
|
|
203
|
+
*
|
|
204
|
+
* A declaration that states nothing still takes the mapped value, fallback included: something has
|
|
205
|
+
* to be written, and there is no curated value to protect.
|
|
206
|
+
*/
|
|
207
|
+
export function decideTypeOverlay(declaredType, sourceType) {
|
|
208
|
+
const declared = (declaredType ?? '').trim();
|
|
209
|
+
if (!SourceStatedAType(sourceType)) {
|
|
210
|
+
return declared.length > 0
|
|
211
|
+
? { value: declared, winner: 'Declared' }
|
|
212
|
+
: { value: MapSourceType(''), winner: 'Discovered' };
|
|
213
|
+
}
|
|
214
|
+
const mapped = MapSourceType(sourceType);
|
|
215
|
+
if (declared.length === 0 || declared === mapped) {
|
|
216
|
+
return { value: mapped, winner: declared === mapped ? 'Declared' : 'Discovered' };
|
|
217
|
+
}
|
|
218
|
+
return { value: mapped, winner: 'Discovered' };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Nullability overlay, silence-respecting.
|
|
222
|
+
*
|
|
223
|
+
* `AllowsNull ?? !IsRequired` computed `true` when the source stated NEITHER — because `!undefined`
|
|
224
|
+
* is `true` — so a describe with no opinion on either attribute unconditionally overwrote a declared
|
|
225
|
+
* `AllowsNull: false`. A required column silently became optional, and the DDL followed.
|
|
226
|
+
*
|
|
227
|
+
* The derivation from `IsRequired` is kept: a source that says a column is required HAS stated its
|
|
228
|
+
* nullability, just indirectly. Only the both-silent case defers to the declaration.
|
|
229
|
+
*/
|
|
230
|
+
export function decideNullabilityOverlay(declaredAllowsNull, sourceAllowsNull, sourceIsRequired) {
|
|
231
|
+
if (sourceAllowsNull === undefined && sourceIsRequired === undefined) {
|
|
232
|
+
// Nothing said. Keep the declaration; default to permissive only when there is none.
|
|
233
|
+
return { value: declaredAllowsNull ?? true, winner: 'Declared' };
|
|
234
|
+
}
|
|
235
|
+
const described = sourceAllowsNull ?? !sourceIsRequired;
|
|
236
|
+
return {
|
|
237
|
+
value: described,
|
|
238
|
+
winner: declaredAllowsNull === described ? 'Declared' : 'Discovered',
|
|
239
|
+
};
|
|
240
|
+
}
|
|
168
241
|
/**
|
|
169
242
|
* Maps generic source types (from connectors) to MJ EntityField-compatible type strings.
|
|
170
243
|
*/
|
|
@@ -226,6 +299,8 @@ export class IntegrationSchemaSync {
|
|
|
226
299
|
FieldsUpdated: 0,
|
|
227
300
|
ObjectMergeLog: [],
|
|
228
301
|
FieldMergeLog: [],
|
|
302
|
+
ObjectsDeactivated: [],
|
|
303
|
+
FieldsDeactivated: [],
|
|
229
304
|
};
|
|
230
305
|
// §D — NO runtime FK-from-stream inference. Foreign keys come ONLY from (a) declared metadata
|
|
231
306
|
// (the curated .<vendor>.integration.json) or (b) the connector's own DiscoverFields/DiscoverObjects
|
|
@@ -324,12 +399,20 @@ export class IntegrationSchemaSync {
|
|
|
324
399
|
// (decideAbsentDeactivations — unit-tested) choose what to Disable. The EFFECT (load + Save) is
|
|
325
400
|
// applied here; the CHOICE lives in the pure function so it is testable without mocking the engine.
|
|
326
401
|
const discoveredFieldNamesByObject = {};
|
|
402
|
+
const fieldsAuthoritativeByObject = {};
|
|
327
403
|
const objectIDByName = {};
|
|
328
404
|
const activeFieldsByObjectID = {};
|
|
329
405
|
for (const r of objectResults) {
|
|
330
406
|
if (!r.ObjectID)
|
|
331
407
|
continue;
|
|
332
408
|
discoveredFieldNamesByObject[r.srcObj.ExternalName] = r.srcObj.Fields.map((f) => f.Name);
|
|
409
|
+
// A connector that affirms its discovery is COMPLETE is affirming it for the fields it
|
|
410
|
+
// described too — that is the same describe call. So the object's own declaration wins,
|
|
411
|
+
// and where it says nothing we inherit the connector's claim rather than assuming false.
|
|
412
|
+
// Assuming false would mean no connector ever retires a column, which is the opposite of
|
|
413
|
+
// what an authoritative full-mapping source is telling us.
|
|
414
|
+
fieldsAuthoritativeByObject[r.srcObj.ExternalName] =
|
|
415
|
+
r.srcObj.FieldsAreAuthoritative ?? SourceSchema.IsAuthoritative === true;
|
|
333
416
|
objectIDByName[r.srcObj.ExternalName.toLowerCase()] = r.ObjectID;
|
|
334
417
|
activeFieldsByObjectID[r.ObjectID] = engine
|
|
335
418
|
.GetIntegrationObjectFields(r.ObjectID)
|
|
@@ -338,9 +421,15 @@ export class IntegrationSchemaSync {
|
|
|
338
421
|
}
|
|
339
422
|
const decision = decideAbsentDeactivations({
|
|
340
423
|
DeactivateAbsent: true,
|
|
341
|
-
|
|
424
|
+
// The CONNECTOR's claim, not a constant. This was hardcoded true, which silently overrode
|
|
425
|
+
// every connector that declares it cannot prove absence: a refresh that did not return an
|
|
426
|
+
// object disabled it even for a source whose discovery is admittedly partial. Same rule the
|
|
427
|
+
// field level now follows — only a source that says its enumeration is complete may retire
|
|
428
|
+
// anything from it. Undefined reads as false; a scoped introspect already forces false.
|
|
429
|
+
IsAuthoritative: SourceSchema.IsAuthoritative === true,
|
|
342
430
|
DiscoveredObjectNames: SourceSchema.Objects.map((o) => o.ExternalName),
|
|
343
431
|
DiscoveredFieldNamesByObject: discoveredFieldNamesByObject,
|
|
432
|
+
FieldsAuthoritativeByObject: fieldsAuthoritativeByObject,
|
|
344
433
|
ActiveObjects: engine.GetActiveIntegrationObjects(IntegrationID).map((io) => ({ ID: io.ID, Name: io.Name })),
|
|
345
434
|
ActiveFieldsByObjectID: activeFieldsByObjectID,
|
|
346
435
|
ObjectIDByName: objectIDByName,
|
|
@@ -350,8 +439,10 @@ export class IntegrationSchemaSync {
|
|
|
350
439
|
const obj = await md.GetEntityObject('MJ: Integration Objects', ContextUser);
|
|
351
440
|
if (await obj.InnerLoad(CompositeKey.FromID(id))) {
|
|
352
441
|
obj.Status = 'Disabled'; // deactivate (Active|Deprecated|Disabled enum); never delete
|
|
353
|
-
if (await obj.Save())
|
|
442
|
+
if (await obj.Save()) {
|
|
354
443
|
deactivated++;
|
|
444
|
+
result.ObjectsDeactivated.push(obj.Name);
|
|
445
|
+
}
|
|
355
446
|
else
|
|
356
447
|
LogError(`[IntegrationSchemaSync] Failed to deactivate phantom object ${id}: ${obj.LatestResult?.CompleteMessage ?? 'unknown'}`);
|
|
357
448
|
}
|
|
@@ -361,8 +452,11 @@ export class IntegrationSchemaSync {
|
|
|
361
452
|
const f = await md.GetEntityObject('MJ: Integration Object Fields', ContextUser);
|
|
362
453
|
if (await f.InnerLoad(CompositeKey.FromID(id))) {
|
|
363
454
|
f.Status = 'Disabled'; // deactivate, never delete
|
|
364
|
-
if (await f.Save())
|
|
455
|
+
if (await f.Save()) {
|
|
365
456
|
fieldsDeactivated++;
|
|
457
|
+
const owner = engine.GetIntegrationObjectByID(f.IntegrationObjectID)?.Name ?? f.IntegrationObjectID;
|
|
458
|
+
result.FieldsDeactivated.push(`${owner}.${f.Name}`);
|
|
459
|
+
}
|
|
366
460
|
else
|
|
367
461
|
LogError(`[IntegrationSchemaSync] Failed to deactivate phantom field ${id}: ${f.LatestResult?.CompleteMessage ?? 'unknown'}`);
|
|
368
462
|
}
|
|
@@ -548,16 +642,26 @@ export class IntegrationSchemaSync {
|
|
|
548
642
|
existing.Status = 'Active';
|
|
549
643
|
dirty = true;
|
|
550
644
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
645
|
+
// SyncDirective follows the same rule as every other attribute: a source that STATES
|
|
646
|
+
// a directive overrides the stored one; a silent source (undefined) keeps whatever is
|
|
647
|
+
// stored — so a directive set by an operator by hand survives connectors that predate
|
|
648
|
+
// the feature. Stored in Configuration (JSON), so no DDL is involved.
|
|
649
|
+
if (srcField.SyncDirective !== undefined) {
|
|
650
|
+
const nextConfig = WriteFieldSyncDirective(existing.Configuration, srcField.SyncDirective);
|
|
651
|
+
if (nextConfig !== existing.Configuration
|
|
652
|
+
&& ReadFieldSyncDirective(nextConfig) !== ReadFieldSyncDirective(existing.Configuration)) {
|
|
653
|
+
existing.Configuration = nextConfig;
|
|
654
|
+
dirty = true;
|
|
655
|
+
}
|
|
557
656
|
}
|
|
558
|
-
|
|
559
|
-
|
|
657
|
+
const typeOverlay = decideTypeOverlay(existing.Type, srcField.SourceType);
|
|
658
|
+
const nullabilityOverlay = decideNullabilityOverlay(existing.AllowsNull, srcField.AllowsNull, srcField.IsRequired);
|
|
659
|
+
const describedAllowsNull = nullabilityOverlay.value;
|
|
660
|
+
if (existing.Type !== typeOverlay.value) {
|
|
661
|
+
existing.Type = typeOverlay.value;
|
|
662
|
+
dirty = true;
|
|
560
663
|
}
|
|
664
|
+
winners.Type = typeOverlay.winner;
|
|
561
665
|
// Length is DDL-affecting (describe wins): seed it so the column is sized
|
|
562
666
|
// nvarchar(N) instead of defaulting to NVARCHAR(MAX) downstream. (Large-text types carry
|
|
563
667
|
// their MAX in the Type itself — 'nvarchar(MAX)' — via MapSourceType, so no length here.)
|
|
@@ -570,11 +674,8 @@ export class IntegrationSchemaSync {
|
|
|
570
674
|
if (existing.AllowsNull !== describedAllowsNull) {
|
|
571
675
|
existing.AllowsNull = describedAllowsNull;
|
|
572
676
|
dirty = true;
|
|
573
|
-
winners.AllowsNull = 'Discovered';
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
winners.AllowsNull = 'Declared';
|
|
577
677
|
}
|
|
678
|
+
winners.AllowsNull = nullabilityOverlay.winner;
|
|
578
679
|
// No-fabrication overlay rule for boolean attributes — see
|
|
579
680
|
// `decideBooleanOverlay`. Discovered values only override when
|
|
580
681
|
// the source actually has an opinion (defined boolean). Undefined
|
|
@@ -665,6 +766,11 @@ export class IntegrationSchemaSync {
|
|
|
665
766
|
if (srcField.Description)
|
|
666
767
|
field.Description = srcField.Description;
|
|
667
768
|
field.Type = MapSourceType(srcField.SourceType);
|
|
769
|
+
// A declared 'Exclude' lands in Configuration from the first discovery, so the field
|
|
770
|
+
// never contributes to a single sync. 'Sync'/undefined writes nothing.
|
|
771
|
+
if (srcField.SyncDirective === 'Exclude') {
|
|
772
|
+
field.Configuration = WriteFieldSyncDirective(null, 'Exclude');
|
|
773
|
+
}
|
|
668
774
|
// Persist the discovered length onto IOF.Length so the schema builder sizes the column
|
|
669
775
|
// (nvarchar(N)). Large-text types carry their MAX in the Type ('nvarchar(MAX)') via
|
|
670
776
|
// MapSourceType, so no length is set for them here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard: a record destined for a SOFT-primary-key table must carry its key.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* A soft primary key is INFERRED, not generated. It is the external system's own identifier stored
|
|
7
|
+
* as ordinary data — `DDLGenerator` gives such columns a NON-UNIQUE index and no `PRIMARY KEY`
|
|
8
|
+
* constraint, precisely because the key is inferred and a unique constraint would reject legitimate
|
|
9
|
+
* rows. So nothing at the database level rejects a NULL key.
|
|
10
|
+
*
|
|
11
|
+
* A row written without its key can never be matched again: the next sync's existence check misses
|
|
12
|
+
* it and inserts another copy, and the pass after that inserts another. The rows look completely
|
|
13
|
+
* healthy — every business column populated — with only the key column empty, so the failure is
|
|
14
|
+
* silent and compounding. A production incident of exactly this shape produced ~1.9M unmatchable
|
|
15
|
+
* rows across 39 tables in a single day before anyone noticed.
|
|
16
|
+
*
|
|
17
|
+
* The engine cannot repair such a record, but it can refuse to write it, which turns a silent
|
|
18
|
+
* data-integrity failure into a loud per-record skip naming the field map to fix.
|
|
19
|
+
*
|
|
20
|
+
* ## Why it is scoped to soft keys
|
|
21
|
+
*
|
|
22
|
+
* A missing mapped key is LEGITIMATE when the destination generates its own — an identity column or
|
|
23
|
+
* a server-assigned UUID. Those rows are matched by record map, not by key, so refusing them would
|
|
24
|
+
* break ordinary syncs. Only `IsSoftPrimaryKey` columns carry the "the key is data" contract.
|
|
25
|
+
*/
|
|
26
|
+
/** The subset of EntityFieldInfo this guard needs. */
|
|
27
|
+
export interface KeyFieldLike {
|
|
28
|
+
Name: string;
|
|
29
|
+
IsSoftPrimaryKey?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface KeylessRefusal {
|
|
32
|
+
/** True when the record must NOT be written. */
|
|
33
|
+
Refuse: boolean;
|
|
34
|
+
/** Comma-separated soft-key column names, for the operator-facing message. */
|
|
35
|
+
KeyNames: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Decides whether a record must be refused for lacking its inferred key.
|
|
39
|
+
*
|
|
40
|
+
* @param mappedPK - the key extracted from the record's mapped fields, or null when absent/empty
|
|
41
|
+
* @param pkFields - the destination entity's primary-key fields
|
|
42
|
+
*/
|
|
43
|
+
export declare function DecideKeylessRefusal(mappedPK: string | null | undefined, pkFields: ReadonlyArray<KeyFieldLike>, missingKeyNames?: ReadonlyArray<string>): KeylessRefusal;
|
|
44
|
+
/**
|
|
45
|
+
* The primary-key columns this record carries no usable value for — the input that lets
|
|
46
|
+
* {@link DecideKeylessRefusal} name the right column. Mirrors `extractMappedPrimaryKey`'s
|
|
47
|
+
* lookup (exact name, then case-insensitive) and its emptiness test, so the two agree about
|
|
48
|
+
* which fields count as absent.
|
|
49
|
+
*/
|
|
50
|
+
export declare function MissingKeyFieldNames(mappedFields: Record<string, unknown> | null | undefined, pkFields: ReadonlyArray<KeyFieldLike>, serialize: (v: unknown) => string): string[];
|
|
51
|
+
/**
|
|
52
|
+
* The operator-facing explanation. Names what is wrong, why it cannot simply be written anyway, and
|
|
53
|
+
* the two places the cause actually lives.
|
|
54
|
+
*/
|
|
55
|
+
export declare function DescribeKeylessRefusal(entityName: string, keyNames: string): string;
|
|
56
|
+
//# sourceMappingURL=KeylessRecordGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeylessRecordGuard.d.ts","sourceRoot":"","sources":["../src/KeylessRecordGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,sDAAsD;AACtD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC3B,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GACxC,cAAc,CAmBhB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACxD,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAClC,MAAM,EAAE,CAUV;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOnF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard: a record destined for a SOFT-primary-key table must carry its key.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* A soft primary key is INFERRED, not generated. It is the external system's own identifier stored
|
|
7
|
+
* as ordinary data — `DDLGenerator` gives such columns a NON-UNIQUE index and no `PRIMARY KEY`
|
|
8
|
+
* constraint, precisely because the key is inferred and a unique constraint would reject legitimate
|
|
9
|
+
* rows. So nothing at the database level rejects a NULL key.
|
|
10
|
+
*
|
|
11
|
+
* A row written without its key can never be matched again: the next sync's existence check misses
|
|
12
|
+
* it and inserts another copy, and the pass after that inserts another. The rows look completely
|
|
13
|
+
* healthy — every business column populated — with only the key column empty, so the failure is
|
|
14
|
+
* silent and compounding. A production incident of exactly this shape produced ~1.9M unmatchable
|
|
15
|
+
* rows across 39 tables in a single day before anyone noticed.
|
|
16
|
+
*
|
|
17
|
+
* The engine cannot repair such a record, but it can refuse to write it, which turns a silent
|
|
18
|
+
* data-integrity failure into a loud per-record skip naming the field map to fix.
|
|
19
|
+
*
|
|
20
|
+
* ## Why it is scoped to soft keys
|
|
21
|
+
*
|
|
22
|
+
* A missing mapped key is LEGITIMATE when the destination generates its own — an identity column or
|
|
23
|
+
* a server-assigned UUID. Those rows are matched by record map, not by key, so refusing them would
|
|
24
|
+
* break ordinary syncs. Only `IsSoftPrimaryKey` columns carry the "the key is data" contract.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Decides whether a record must be refused for lacking its inferred key.
|
|
28
|
+
*
|
|
29
|
+
* @param mappedPK - the key extracted from the record's mapped fields, or null when absent/empty
|
|
30
|
+
* @param pkFields - the destination entity's primary-key fields
|
|
31
|
+
*/
|
|
32
|
+
export function DecideKeylessRefusal(mappedPK, pkFields, missingKeyNames) {
|
|
33
|
+
if (mappedPK != null) {
|
|
34
|
+
return { Refuse: false, KeyNames: '' };
|
|
35
|
+
}
|
|
36
|
+
const softKeys = pkFields.filter(f => f.IsSoftPrimaryKey === true);
|
|
37
|
+
if (softKeys.length === 0) {
|
|
38
|
+
return { Refuse: false, KeyNames: '' };
|
|
39
|
+
}
|
|
40
|
+
// REFUSE on any soft key, but NAME only the columns actually absent. `mappedPK == null` means
|
|
41
|
+
// some part of the key was empty, not all of it: on a composite key, naming every soft column
|
|
42
|
+
// sends the operator to a field map that is working. When the caller cannot say which were
|
|
43
|
+
// missing, fall back to naming them all rather than naming none.
|
|
44
|
+
const missing = missingKeyNames
|
|
45
|
+
? softKeys.filter(f => missingKeyNames.some(n => n.toLowerCase() === f.Name.toLowerCase()))
|
|
46
|
+
: softKeys;
|
|
47
|
+
return {
|
|
48
|
+
Refuse: true,
|
|
49
|
+
KeyNames: (missing.length > 0 ? missing : softKeys).map(f => f.Name).join(', '),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The primary-key columns this record carries no usable value for — the input that lets
|
|
54
|
+
* {@link DecideKeylessRefusal} name the right column. Mirrors `extractMappedPrimaryKey`'s
|
|
55
|
+
* lookup (exact name, then case-insensitive) and its emptiness test, so the two agree about
|
|
56
|
+
* which fields count as absent.
|
|
57
|
+
*/
|
|
58
|
+
export function MissingKeyFieldNames(mappedFields, pkFields, serialize) {
|
|
59
|
+
const fields = mappedFields ?? {};
|
|
60
|
+
const lower = new Map();
|
|
61
|
+
for (const [k, v] of Object.entries(fields))
|
|
62
|
+
lower.set(k.toLowerCase(), v);
|
|
63
|
+
return pkFields
|
|
64
|
+
.filter(pk => {
|
|
65
|
+
const v = (pk.Name in fields) ? fields[pk.Name] : lower.get(pk.Name.toLowerCase());
|
|
66
|
+
return serialize(v) === '';
|
|
67
|
+
})
|
|
68
|
+
.map(pk => pk.Name);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The operator-facing explanation. Names what is wrong, why it cannot simply be written anyway, and
|
|
72
|
+
* the two places the cause actually lives.
|
|
73
|
+
*/
|
|
74
|
+
export function DescribeKeylessRefusal(entityName, keyNames) {
|
|
75
|
+
return (`Record skipped — no value for the inferred key (${keyNames}) on ${entityName}. ` +
|
|
76
|
+
`A soft primary key is DATA, not generated: a row written without one can never be matched ` +
|
|
77
|
+
`again and would be re-inserted on every subsequent sync. Check the field map for the key ` +
|
|
78
|
+
`column, and that discovery resolved this object's primary key.`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=KeylessRecordGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeylessRecordGuard.js","sourceRoot":"","sources":["../src/KeylessRecordGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAeH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAChC,QAAmC,EACnC,QAAqC,EACrC,eAAuC;IAEvC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,8FAA8F;IAC9F,8FAA8F;IAC9F,2FAA2F;IAC3F,iEAAiE;IACjE,MAAM,OAAO,GAAG,eAAe;QAC3B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,CAAC,CAAC,QAAQ,CAAC;IACf,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAClF,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAChC,YAAwD,EACxD,QAAqC,EACrC,SAAiC;IAEjC,MAAM,MAAM,GAAG,YAAY,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,OAAO,QAAQ;SACV,MAAM,CAAC,EAAE,CAAC,EAAE;QACT,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnF,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC,CAAC;SACD,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IACvE,OAAO,CACH,mDAAmD,QAAQ,QAAQ,UAAU,IAAI;QACjF,4FAA4F;QAC5F,2FAA2F;QAC3F,gEAAgE,CACnE,CAAC;AACN,CAAC"}
|