@memberjunction/generic-database-provider 6.1.0-edge.0 → 6.1.0-edge.2
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/GenericDatabaseProvider.d.ts +32 -2
- package/dist/GenericDatabaseProvider.d.ts.map +1 -1
- package/dist/GenericDatabaseProvider.js +133 -29
- package/dist/GenericDatabaseProvider.js.map +1 -1
- package/dist/UserCache.d.ts +59 -0
- package/dist/UserCache.d.ts.map +1 -0
- package/dist/UserCache.js +103 -0
- package/dist/UserCache.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
|
@@ -183,8 +183,21 @@ export declare abstract class GenericDatabaseProvider extends DatabaseProviderBa
|
|
|
183
183
|
/**
|
|
184
184
|
* Handles entity actions (non-AI) for save, delete, or validate operations.
|
|
185
185
|
* Uses EntityActionEngineServer to discover and run active actions.
|
|
186
|
+
*
|
|
187
|
+
* **After-hooks run under `EntityActionDispatchGuard`; before-hooks and Validate do not.**
|
|
188
|
+
* The guard suppresses an action re-entering itself on the same record (the enrich-and-write-back
|
|
189
|
+
* loop) and coalesces a burst of saves into one pending rerun. Neither belongs on the
|
|
190
|
+
* synchronous half of the pipeline: `Validate` and `Before*` participate in the save and can
|
|
191
|
+
* abort it, so skipping one would let a record through that should have been refused, and
|
|
192
|
+
* deferring one would decide the save's outcome after it had already happened.
|
|
193
|
+
*
|
|
194
|
+
* **An After-hook binding may also ask to run durably** (`EntityAction.RunMode = 'Durable'`).
|
|
195
|
+
* After-hooks are dispatched fire-and-forget, so a process that dies mid-flight loses the work
|
|
196
|
+
* with nothing to retry it; durable dispatch hands it to the task-graph substrate instead (D14).
|
|
197
|
+
* `Validate` and `Before*` ignore RunMode entirely — deferring work that decides whether the
|
|
198
|
+
* save succeeds is not a durability improvement, it is a different feature.
|
|
186
199
|
*/
|
|
187
|
-
protected HandleEntityActions(entity: BaseEntity, baseType: 'save' | 'delete' | 'validate', before: boolean, user: UserInfo): Promise<ActionResult[]>;
|
|
200
|
+
protected HandleEntityActions(entity: BaseEntity, baseType: 'save' | 'delete' | 'validate', before: boolean, user: UserInfo, originatingEntityActionIDs?: string[]): Promise<ActionResult[]>;
|
|
188
201
|
/**
|
|
189
202
|
* Handles Entity AI Actions for save or delete operations.
|
|
190
203
|
*
|
|
@@ -990,10 +1003,27 @@ export declare abstract class GenericDatabaseProvider extends DatabaseProviderBa
|
|
|
990
1003
|
protected getColumnsForDatasetItem(item: Record<string, unknown>, datasetName: string): string | null;
|
|
991
1004
|
/**************************************************************************/
|
|
992
1005
|
/**************************************************************************/
|
|
1006
|
+
/**
|
|
1007
|
+
* Key namespace for a dataset item's cached rows.
|
|
1008
|
+
*
|
|
1009
|
+
* Dataset items are cached through the same fingerprint builder ordinary RunViews use, with
|
|
1010
|
+
* only `{ EntityName, ExtraFilter }` — and every shipped item has a NULL `WhereClause`, so
|
|
1011
|
+
* without this segment a dataset item and a plain unfiltered read of the same entity produce
|
|
1012
|
+
* an IDENTICAL key and share one slot. That leaks the `MJ_Metadata` scaffolding exemption
|
|
1013
|
+
* (deliberately unfrozen rows) to ordinary callers of `MJ: Entities` / `MJ: Entity Fields`,
|
|
1014
|
+
* and lets an ordinary read repopulate an evicted slot FROZEN, which then breaks the next
|
|
1015
|
+
* metadata refresh.
|
|
1016
|
+
*
|
|
1017
|
+
* Keyed by dataset + item code so two items over the same entity also stay distinct.
|
|
1018
|
+
* Callers must use this on the read, the write-through, and the status paths alike — the
|
|
1019
|
+
* three must agree or dataset reads stop finding dataset writes.
|
|
1020
|
+
*/
|
|
1021
|
+
protected datasetCacheSegment(datasetName: string, itemCode: string): string;
|
|
993
1022
|
/**
|
|
994
1023
|
* Computes the latest update date for a dataset item from its result rows and dataset metadata.
|
|
995
1024
|
* Used by both the cache-hit and cache-miss paths in GetDatasetByName.
|
|
996
|
-
* @param rows - The result rows (from cache or SQL)
|
|
1025
|
+
* @param rows - The result rows (from cache or SQL). `readonly` because cache-hit callers
|
|
1026
|
+
* pass the cache's shared, frozen rows; this method only scans them.
|
|
997
1027
|
* @param dateFieldToCheck - The field name to scan for latest date
|
|
998
1028
|
* @param item - The dataset item metadata row (contains DatasetItemUpdatedAt, DatasetUpdatedAt)
|
|
999
1029
|
* @returns The latest date across all rows and dataset metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericDatabaseProvider.d.ts","sourceRoot":"","sources":["../src/GenericDatabaseProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenericDatabaseProvider.d.ts","sourceRoot":"","sources":["../src/GenericDatabaseProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ import { QueryEngine, ViewInfo, } from '@memberjunction/core-entities';
|
|
|
28
28
|
import { AIEngine } from '@memberjunction/aiengine';
|
|
29
29
|
import { SimpleVectorServiceProvider } from '@memberjunction/ai-vectors-memory';
|
|
30
30
|
import { QueueManager } from '@memberjunction/queue';
|
|
31
|
-
import { EntityActionEngineServer } from '@memberjunction/actions';
|
|
31
|
+
import { BuildEntityActionDispatchKey, EntityActionDispatchGuard, EntityActionEngineServer } from '@memberjunction/actions';
|
|
32
|
+
import { BuildEntityChangeContext } from '@memberjunction/actions-base';
|
|
32
33
|
import { EncryptionEngine } from '@memberjunction/encryption';
|
|
33
34
|
import { GeoCodeSyncService } from '@memberjunction/geo-core';
|
|
34
35
|
/**
|
|
@@ -289,12 +290,31 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
289
290
|
/**
|
|
290
291
|
* Handles entity actions (non-AI) for save, delete, or validate operations.
|
|
291
292
|
* Uses EntityActionEngineServer to discover and run active actions.
|
|
292
|
-
|
|
293
|
-
|
|
293
|
+
*
|
|
294
|
+
* **After-hooks run under `EntityActionDispatchGuard`; before-hooks and Validate do not.**
|
|
295
|
+
* The guard suppresses an action re-entering itself on the same record (the enrich-and-write-back
|
|
296
|
+
* loop) and coalesces a burst of saves into one pending rerun. Neither belongs on the
|
|
297
|
+
* synchronous half of the pipeline: `Validate` and `Before*` participate in the save and can
|
|
298
|
+
* abort it, so skipping one would let a record through that should have been refused, and
|
|
299
|
+
* deferring one would decide the save's outcome after it had already happened.
|
|
300
|
+
*
|
|
301
|
+
* **An After-hook binding may also ask to run durably** (`EntityAction.RunMode = 'Durable'`).
|
|
302
|
+
* After-hooks are dispatched fire-and-forget, so a process that dies mid-flight loses the work
|
|
303
|
+
* with nothing to retry it; durable dispatch hands it to the task-graph substrate instead (D14).
|
|
304
|
+
* `Validate` and `Before*` ignore RunMode entirely — deferring work that decides whether the
|
|
305
|
+
* save succeeds is not a durability improvement, it is a different feature.
|
|
306
|
+
*/
|
|
307
|
+
async HandleEntityActions(entity, baseType, before, user, originatingEntityActionIDs) {
|
|
308
|
+
// FIRST STATEMENT, and deliberately before the first `await`. After-hooks are dispatched
|
|
309
|
+
// fire-and-forget, and the moment this method yields, the save completes and `finalizeSave()`
|
|
310
|
+
// reloads the entity — resetting every field's OldValue to its new value. A change context
|
|
311
|
+
// built any later would report that nothing changed. Everything below this line may yield;
|
|
312
|
+
// nothing above it does.
|
|
313
|
+
const entityChange = BuildEntityChangeContext(entity);
|
|
294
314
|
try {
|
|
295
315
|
const engine = EntityActionEngineServer.Instance;
|
|
296
316
|
await engine.Config(false, user);
|
|
297
|
-
const newRecord =
|
|
317
|
+
const newRecord = entityChange.IsCreate;
|
|
298
318
|
const baseTypeType = baseType === 'save' ? (newRecord ? 'Create' : 'Update') : 'Delete';
|
|
299
319
|
const invocationType = baseType === 'validate' ? 'Validate' : before ? 'Before' + baseTypeType : 'After' + baseTypeType;
|
|
300
320
|
const invocationTypeEntity = engine.InvocationTypes.find((i) => i.Name === invocationType);
|
|
@@ -302,19 +322,40 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
302
322
|
LogError(`Invocation Type ${invocationType} not found in metadata`);
|
|
303
323
|
return [];
|
|
304
324
|
}
|
|
325
|
+
// Only the after-hooks are guarded — they are the fire-and-forget half, and the only
|
|
326
|
+
// half an action's own write-back can re-enter.
|
|
327
|
+
const guarded = baseType !== 'validate' && !before;
|
|
305
328
|
const activeActions = engine.GetActionsByEntityNameAndInvocationType(entity.EntityInfo.Name, invocationType, 'Active');
|
|
306
329
|
const results = [];
|
|
307
330
|
for (const a of activeActions) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
331
|
+
if (guarded && originatingEntityActionIDs?.some((id) => UUIDsEqual(id, a.ID))) {
|
|
332
|
+
// The caller declared this save IS this action's write-back. Used by work that
|
|
333
|
+
// detached from the async context the guard tracks — see
|
|
334
|
+
// EntitySaveOptions.OriginatingEntityActionIDs.
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
const runOnce = async () => {
|
|
338
|
+
// Durability is NOT decided here. A binding's RunMode is honoured inside the
|
|
339
|
+
// invocation path, after its scope check and its filters — deciding it at this
|
|
340
|
+
// level would hand the work over before either gate ran.
|
|
341
|
+
const result = await engine.RunEntityAction({
|
|
342
|
+
EntityAction: a,
|
|
343
|
+
EntityObject: entity,
|
|
344
|
+
InvocationType: invocationTypeEntity,
|
|
345
|
+
ContextUser: user,
|
|
346
|
+
EntityChange: entityChange,
|
|
347
|
+
});
|
|
348
|
+
// null means the binding is scoped (ScopeEntityID/ScopeRecordID) and this record falls
|
|
349
|
+
// outside it — the action never ran, so there is no result to report.
|
|
350
|
+
if (result) {
|
|
351
|
+
results.push(result);
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
if (guarded) {
|
|
355
|
+
await EntityActionDispatchGuard.Instance.Dispatch(BuildEntityActionDispatchKey(a.ID, entity.EntityInfo.ID, entity.PrimaryKey.ToString()), runOnce);
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
await runOnce();
|
|
318
359
|
}
|
|
319
360
|
}
|
|
320
361
|
return results;
|
|
@@ -394,7 +435,7 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
394
435
|
}
|
|
395
436
|
async OnBeforeSaveExecute(entity, user, options, context) {
|
|
396
437
|
if (options.SkipEntityActions !== true)
|
|
397
|
-
await this.HandleEntityActions(entity, 'save', true, user);
|
|
438
|
+
await this.HandleEntityActions(entity, 'save', true, user, options.OriginatingEntityActionIDs);
|
|
398
439
|
if (options.SkipEntityAIActions !== true)
|
|
399
440
|
await this.HandleEntityAIActions(entity, 'save', true, user);
|
|
400
441
|
// Flag geo sync needed in the SaveContext state bag.
|
|
@@ -410,7 +451,7 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
410
451
|
if (options.SkipEntityAIActions !== true)
|
|
411
452
|
this.HandleEntityAIActions(entity, 'save', false, user); // NO AWAIT INTENTIONALLY
|
|
412
453
|
if (options.SkipEntityActions !== true)
|
|
413
|
-
this.HandleEntityActions(entity, 'save', false, user); // NO AWAIT INTENTIONALLY
|
|
454
|
+
this.HandleEntityActions(entity, 'save', false, user, options.OriginatingEntityActionIDs); // NO AWAIT INTENTIONALLY
|
|
414
455
|
}
|
|
415
456
|
async OnSaveCompleted(entity, saveSQLResult, user, options, context) {
|
|
416
457
|
const superPatches = await super.OnSaveCompleted(entity, saveSQLResult, user, options, context);
|
|
@@ -431,7 +472,10 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
431
472
|
const siblingPromise = (overlappingChangeData &&
|
|
432
473
|
entity.EntityInfo.AllowMultipleSubtypes &&
|
|
433
474
|
entity.EntityInfo.TrackRecordChanges)
|
|
434
|
-
|
|
475
|
+
// No explicit connectionSource: sibling writes must land in the same transaction as the
|
|
476
|
+
// save that triggered them, which is what happens by default — ExecuteSQL runs on the
|
|
477
|
+
// provider's ambient transaction when no source is given.
|
|
478
|
+
? this.PropagateRecordChangesToSiblings(entity.EntityInfo, overlappingChangeData, entity.PrimaryKey.Values(), user?.ID ?? '', options.ISAActiveChildEntityName)
|
|
435
479
|
: null;
|
|
436
480
|
// Await both in parallel
|
|
437
481
|
if (geoPromise && siblingPromise) {
|
|
@@ -457,13 +501,13 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
457
501
|
}
|
|
458
502
|
async OnBeforeDeleteExecute(entity, user, options) {
|
|
459
503
|
if (false === options?.SkipEntityActions)
|
|
460
|
-
await this.HandleEntityActions(entity, 'delete', true, user);
|
|
504
|
+
await this.HandleEntityActions(entity, 'delete', true, user, options?.OriginatingEntityActionIDs);
|
|
461
505
|
if (false === options?.SkipEntityAIActions)
|
|
462
506
|
await this.HandleEntityAIActions(entity, 'delete', true, user);
|
|
463
507
|
}
|
|
464
508
|
OnAfterDeleteExecute(entity, user, options) {
|
|
465
509
|
if (false === options?.SkipEntityActions)
|
|
466
|
-
this.HandleEntityActions(entity, 'delete', false, user);
|
|
510
|
+
this.HandleEntityActions(entity, 'delete', false, user, options?.OriginatingEntityActionIDs);
|
|
467
511
|
if (false === options?.SkipEntityAIActions)
|
|
468
512
|
this.HandleEntityAIActions(entity, 'delete', false, user);
|
|
469
513
|
// Fire-and-forget: clean up RecordGeoCode rows for the deleted record
|
|
@@ -1205,14 +1249,34 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
1205
1249
|
// caller's OrderBy — BuildKeysetSeekClause already validated that any caller-provided
|
|
1206
1250
|
// OrderBy referenced the PK and we use the resolved direction.
|
|
1207
1251
|
let rawOrderBy;
|
|
1252
|
+
let orderByIsPkFallback = false;
|
|
1208
1253
|
if (usingKeyset) {
|
|
1209
1254
|
rawOrderBy = `${keysetPkColumnName} ${keysetDirection}`;
|
|
1210
1255
|
}
|
|
1211
1256
|
else {
|
|
1212
1257
|
rawOrderBy = params.OrderBy ? params.OrderBy : (viewEntity ? viewEntity.OrderByClause ?? '' : '');
|
|
1258
|
+
if (rawOrderBy.trim().length === 0 && maxRowsForQuery > 0 && entityInfo.FirstPrimaryKey) {
|
|
1259
|
+
// ── DETERMINISM FALLBACK ──
|
|
1260
|
+
// A row-LIMITED query with no ORDER BY returns an ARBITRARY subset: `TOP N` /
|
|
1261
|
+
// `LIMIT N` without an ordering is undefined by definition, and the engine is
|
|
1262
|
+
// free to return different rows run to run (or between two runs of the *same*
|
|
1263
|
+
// walk). Order by the PK so "the first N rows" means something.
|
|
1264
|
+
//
|
|
1265
|
+
// This is what broke keyset (AfterKey) pagination end to end. Page 1 of a walk
|
|
1266
|
+
// has no cursor yet, so `usingKeyset` is false and it landed here unordered,
|
|
1267
|
+
// while page 2+ force `ORDER BY <pk>` + `<pk> > @afterKey`. The two pages were
|
|
1268
|
+
// ordered differently, so a walk both RE-RETURNED page-1 rows and could silently
|
|
1269
|
+
// MISS others. Reproduced as 4 duplicates in an 8-row page (IT25 V10).
|
|
1270
|
+
//
|
|
1271
|
+
// OFFSET pagination already had exactly this fallback (see the pagination block
|
|
1272
|
+
// below); it was simply never applied to the TOP/LIMIT path. Same PK, so a
|
|
1273
|
+
// keyset walk's page 1 now agrees with every later page.
|
|
1274
|
+
rawOrderBy = this.QuoteIdentifier(entityInfo.FirstPrimaryKey.Name);
|
|
1275
|
+
orderByIsPkFallback = true;
|
|
1276
|
+
}
|
|
1213
1277
|
}
|
|
1214
1278
|
const orderBy = rawOrderBy.length > 0
|
|
1215
|
-
? (usingKeyset ? rawOrderBy : this.TransformExternalSQLClause(rawOrderBy, entityInfo))
|
|
1279
|
+
? (usingKeyset || orderByIsPkFallback ? rawOrderBy : this.TransformExternalSQLClause(rawOrderBy, entityInfo))
|
|
1216
1280
|
: '';
|
|
1217
1281
|
// View run logging (SQL Server-specific, others return null)
|
|
1218
1282
|
let userViewRunID = '';
|
|
@@ -1223,18 +1287,22 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
1223
1287
|
userViewRunID = logResult.runID;
|
|
1224
1288
|
}
|
|
1225
1289
|
else if (orderBy.length > 0) {
|
|
1226
|
-
if (!usingKeyset && !this.ValidateUserProvidedSQLClause(orderBy))
|
|
1290
|
+
if (!usingKeyset && !orderByIsPkFallback && !this.ValidateUserProvidedSQLClause(orderBy))
|
|
1227
1291
|
throw new Error(`Invalid Order By clause: ${orderBy}, contains one more for forbidden keywords`);
|
|
1228
1292
|
viewSQL += ` ORDER BY ${orderBy}`;
|
|
1229
1293
|
}
|
|
1230
1294
|
}
|
|
1231
1295
|
else if (orderBy.length > 0) {
|
|
1232
|
-
if (!usingKeyset && !this.ValidateUserProvidedSQLClause(orderBy))
|
|
1296
|
+
if (!usingKeyset && !orderByIsPkFallback && !this.ValidateUserProvidedSQLClause(orderBy))
|
|
1233
1297
|
throw new Error(`Invalid Order By clause: ${orderBy}, contains one more for forbidden keywords`);
|
|
1234
1298
|
viewSQL += ` ORDER BY ${orderBy}`;
|
|
1235
1299
|
}
|
|
1236
1300
|
// ── Pagination / Non-paginated limit ──
|
|
1237
1301
|
if (usingPagination && entityInfo.FirstPrimaryKey) {
|
|
1302
|
+
// Belt-and-braces: the determinism fallback above already supplies ORDER BY <PK>
|
|
1303
|
+
// for every row-limited query (pagination included), so `orderBy` is normally
|
|
1304
|
+
// non-empty here. Kept because OFFSET/FETCH is a hard SYNTAX error without an
|
|
1305
|
+
// ORDER BY — if the fallback above is ever narrowed, this must still hold.
|
|
1238
1306
|
if (!orderBy) {
|
|
1239
1307
|
viewSQL += ` ORDER BY ${this.QuoteIdentifier(entityInfo.FirstPrimaryKey.Name)}`;
|
|
1240
1308
|
}
|
|
@@ -2140,6 +2208,9 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
2140
2208
|
// caller's requested fields (∪ PK) before returning, exactly like the
|
|
2141
2209
|
// ProviderBase hit path. Serving unprojected rows here previously leaked
|
|
2142
2210
|
// whatever shape happened to be cached to every subsequent caller.
|
|
2211
|
+
//
|
|
2212
|
+
// `serverCached.results` are the cache's shared, deep-frozen rows — the runtime freeze
|
|
2213
|
+
// is what actually protects the cache. See ProviderBase's hit path.
|
|
2143
2214
|
const results = callerFields
|
|
2144
2215
|
? ProjectRowsToFields(serverCached.results, callerFields)
|
|
2145
2216
|
: serverCached.results;
|
|
@@ -2151,8 +2222,8 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
2151
2222
|
rowCount: serverCached.totalRowCount ?? serverCached.rowCount,
|
|
2152
2223
|
// Carry aggregates through (B40-family, 4th drop). The server slot stores them and
|
|
2153
2224
|
// GetRunViewResult returns them, but this serve-leg's inline serverCached type omitted
|
|
2154
|
-
// the field, so TypeScript could not flag the drop. Both
|
|
2155
|
-
//
|
|
2225
|
+
// the field, so TypeScript could not flag the drop. Both legs now share the canonical
|
|
2226
|
+
// CachedRunViewResult type, so a future field can no longer be silently dropped here.
|
|
2156
2227
|
aggregateResults: serverCached.aggregateResults,
|
|
2157
2228
|
};
|
|
2158
2229
|
}
|
|
@@ -2822,6 +2893,9 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
2822
2893
|
QueryID: cached.queryId ?? query.ID,
|
|
2823
2894
|
QueryName: query.Name,
|
|
2824
2895
|
Success: true,
|
|
2896
|
+
// Transport boundary: `cached.results` is readonly (shared, deep-frozen cache
|
|
2897
|
+
// rows) while the outbound Results is mutable — the runtime freeze is the
|
|
2898
|
+
// enforcement. Same cast as the RunView hit paths in ProviderBase.
|
|
2825
2899
|
Results: cached.results,
|
|
2826
2900
|
RowCount: cached.results.length,
|
|
2827
2901
|
TotalRowCount: cached.rowCount ?? cached.results.length,
|
|
@@ -3420,7 +3494,7 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
3420
3494
|
}
|
|
3421
3495
|
// Try cache first
|
|
3422
3496
|
if (cacheAvailable) {
|
|
3423
|
-
const fingerprint = cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString);
|
|
3497
|
+
const fingerprint = cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString, undefined, this.datasetCacheSegment(datasetName, code));
|
|
3424
3498
|
const cached = await cache.GetRunViewResult(fingerprint);
|
|
3425
3499
|
if (cached) {
|
|
3426
3500
|
cacheHitCount++;
|
|
@@ -3457,7 +3531,7 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
3457
3531
|
uncachedItems.push(item);
|
|
3458
3532
|
// Store fingerprint for write-through caching after SQL
|
|
3459
3533
|
const fp = cacheAvailable
|
|
3460
|
-
? cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString)
|
|
3534
|
+
? cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString, undefined, this.datasetCacheSegment(datasetName, code))
|
|
3461
3535
|
: '';
|
|
3462
3536
|
uncachedFingerprints.push(fp);
|
|
3463
3537
|
}
|
|
@@ -3495,7 +3569,18 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
3495
3569
|
? this.extractMaxUpdatedAtFromRows(itemData, dateFieldToCheck)
|
|
3496
3570
|
: new Date(0).toISOString();
|
|
3497
3571
|
const syntheticParams = { EntityName: entityName };
|
|
3498
|
-
|
|
3572
|
+
// ProviderInternalScaffolding — for the MJ_Metadata dataset ONLY. Those rows are
|
|
3573
|
+
// consumed by this provider's own assembly steps, which mutate them in place by
|
|
3574
|
+
// design: PostProcessEntityMetadata sorts the entity array and attaches child
|
|
3575
|
+
// collections onto each entity/field row, and GetAllMetadata's Applications
|
|
3576
|
+
// assembly writes ApplicationEntities/ApplicationSettings onto Application rows.
|
|
3577
|
+
// Freezing them makes metadata bootstrap throw and the process starts blind.
|
|
3578
|
+
//
|
|
3579
|
+
// Every OTHER dataset is served to arbitrary consumers (BaseEngine.Load hands
|
|
3580
|
+
// item.Results — these very arrays — to every engine subclass), so those slots
|
|
3581
|
+
// must stay under the defensive deep-freeze like any RunView result.
|
|
3582
|
+
const isMetadataScaffolding = datasetName === ProviderBase._mjMetadataDatasetName;
|
|
3583
|
+
await cache.SetRunViewResult(uncachedFingerprints[i], syntheticParams, itemData, maxUpdatedAt, undefined, undefined, this, undefined, isMetadataScaffolding ? { ProviderInternalScaffolding: true } : undefined);
|
|
3499
3584
|
}
|
|
3500
3585
|
sqlResults.push({
|
|
3501
3586
|
EntityID: entityID,
|
|
@@ -3603,7 +3688,7 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
3603
3688
|
const datasetMaxUpdatedAt = new Date(Math.max(itemUpdatedAt.getTime(), datasetUpdatedAt.getTime()));
|
|
3604
3689
|
// Try to derive status from cached data
|
|
3605
3690
|
if (cacheAvailable) {
|
|
3606
|
-
const fingerprint = cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString);
|
|
3691
|
+
const fingerprint = cache.GenerateRunViewFingerprint({ EntityName: entityName, ExtraFilter: effectiveFilter }, this.InstanceConnectionString, undefined, this.datasetCacheSegment(datasetName, code));
|
|
3607
3692
|
const cached = await cache.GetRunViewResult(fingerprint);
|
|
3608
3693
|
if (cached) {
|
|
3609
3694
|
cacheHitCount++;
|
|
@@ -3743,10 +3828,29 @@ export class GenericDatabaseProvider extends DatabaseProviderBase {
|
|
|
3743
3828
|
/**************************************************************************/
|
|
3744
3829
|
// Dataset Cache Helpers
|
|
3745
3830
|
/**************************************************************************/
|
|
3831
|
+
/**
|
|
3832
|
+
* Key namespace for a dataset item's cached rows.
|
|
3833
|
+
*
|
|
3834
|
+
* Dataset items are cached through the same fingerprint builder ordinary RunViews use, with
|
|
3835
|
+
* only `{ EntityName, ExtraFilter }` — and every shipped item has a NULL `WhereClause`, so
|
|
3836
|
+
* without this segment a dataset item and a plain unfiltered read of the same entity produce
|
|
3837
|
+
* an IDENTICAL key and share one slot. That leaks the `MJ_Metadata` scaffolding exemption
|
|
3838
|
+
* (deliberately unfrozen rows) to ordinary callers of `MJ: Entities` / `MJ: Entity Fields`,
|
|
3839
|
+
* and lets an ordinary read repopulate an evicted slot FROZEN, which then breaks the next
|
|
3840
|
+
* metadata refresh.
|
|
3841
|
+
*
|
|
3842
|
+
* Keyed by dataset + item code so two items over the same entity also stay distinct.
|
|
3843
|
+
* Callers must use this on the read, the write-through, and the status paths alike — the
|
|
3844
|
+
* three must agree or dataset reads stop finding dataset writes.
|
|
3845
|
+
*/
|
|
3846
|
+
datasetCacheSegment(datasetName, itemCode) {
|
|
3847
|
+
return `${datasetName}/${itemCode}`;
|
|
3848
|
+
}
|
|
3746
3849
|
/**
|
|
3747
3850
|
* Computes the latest update date for a dataset item from its result rows and dataset metadata.
|
|
3748
3851
|
* Used by both the cache-hit and cache-miss paths in GetDatasetByName.
|
|
3749
|
-
* @param rows - The result rows (from cache or SQL)
|
|
3852
|
+
* @param rows - The result rows (from cache or SQL). `readonly` because cache-hit callers
|
|
3853
|
+
* pass the cache's shared, frozen rows; this method only scans them.
|
|
3750
3854
|
* @param dateFieldToCheck - The field name to scan for latest date
|
|
3751
3855
|
* @param item - The dataset item metadata row (contains DatasetItemUpdatedAt, DatasetUpdatedAt)
|
|
3752
3856
|
* @returns The latest date across all rows and dataset metadata
|