@adtrackify/at-service-common 4.0.1 → 4.0.3
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/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +6 -6
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/cjs/helpers/identity-cache-helper.js +5 -5
- package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service.js +40 -40
- package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +6 -6
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/esm/helpers/identity-cache-helper.js +5 -5
- package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service.js +40 -40
- package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,7 +26,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
26
26
|
static getIdentityWithCaching = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
|
|
27
27
|
try {
|
|
28
28
|
if (!pixelId || !incomingIdentity) {
|
|
29
|
-
Logger.error('
|
|
29
|
+
Logger.error('IdentityCache - missing required params', { pixelId, incomingIdentity });
|
|
30
30
|
return undefined;
|
|
31
31
|
}
|
|
32
32
|
const cacheResponse = await this.readFromCache(pixelId, incomingIdentity);
|
|
@@ -39,7 +39,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
39
39
|
const skipNeptune = cacheResponse.skipNeptune;
|
|
40
40
|
if (resolvedIdentity && !isCacheStale) {
|
|
41
41
|
const tierLabel = staleTier === IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY ? 'volatile_traits_only' : 'fresh';
|
|
42
|
-
Logger.info(`
|
|
42
|
+
Logger.info(`IdentityCache - identity cache hit - ${tierLabel}`, {
|
|
43
43
|
pixelId,
|
|
44
44
|
identityId: resolvedIdentity.identityId,
|
|
45
45
|
staleTier,
|
|
@@ -54,7 +54,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
54
54
|
}
|
|
55
55
|
if (resolvedIdentity && skipNeptune && writeReason === CACHE_WRITE_REASON.ADDRESS_UPDATE) {
|
|
56
56
|
const staleTraits = staleTracker ? this.extractStaleTraitNames(staleTracker) : [];
|
|
57
|
-
Logger.info('
|
|
57
|
+
Logger.info('IdentityCache - identity cache write: address update only (skipping Neptune)', {
|
|
58
58
|
pixelId,
|
|
59
59
|
identityId: resolvedIdentity.identityId,
|
|
60
60
|
writeReason,
|
|
@@ -72,7 +72,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
72
72
|
return resolvedIdentity;
|
|
73
73
|
}
|
|
74
74
|
const identityForNeptune = resolvedIdentity ?? incomingIdentity;
|
|
75
|
-
Logger.info('
|
|
75
|
+
Logger.info('IdentityCache - identity cache stale - fetching from Neptune', {
|
|
76
76
|
pixelId,
|
|
77
77
|
identityId: identityForNeptune?.identityId,
|
|
78
78
|
staleTier,
|
|
@@ -95,7 +95,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
95
95
|
const staleTraits = staleTracker ? this.extractStaleTraitNames(staleTracker) : [];
|
|
96
96
|
const isNewIdentity = writeReason === CACHE_WRITE_REASON.CACHE_MISS || writeReason === CACHE_WRITE_REASON.EMAIL_POINTER_DISCOVERY;
|
|
97
97
|
const writeType = isNewIdentity ? 'new_identity' : 'stale_traits_update';
|
|
98
|
-
Logger.info(`
|
|
98
|
+
Logger.info(`IdentityCache - identity cache write: ${writeType}`, {
|
|
99
99
|
pixelId,
|
|
100
100
|
identityId: neptuneIdentity.identityId,
|
|
101
101
|
writeReason,
|
|
@@ -114,7 +114,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
114
114
|
await this.safeWriteBackToCache(pixelId, resolvedIdentity, 'neptune write-back');
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
|
-
Logger.info('
|
|
117
|
+
Logger.info('IdentityCache - identity cache skip write - Neptune matches cached', {
|
|
118
118
|
pixelId,
|
|
119
119
|
identityId: neptuneIdentity.identityId,
|
|
120
120
|
staleTier,
|
|
@@ -128,7 +128,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
else {
|
|
131
|
-
Logger.error('
|
|
131
|
+
Logger.error('IdentityCache - Neptune resolution failed', {
|
|
132
132
|
pixelId,
|
|
133
133
|
staleTier,
|
|
134
134
|
writeReason,
|
|
@@ -139,7 +139,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
141
|
if (!resolvedIdentity) {
|
|
142
|
-
Logger.error('
|
|
142
|
+
Logger.error('IdentityCache - no identity found, using incoming', {
|
|
143
143
|
pixelId,
|
|
144
144
|
incomingIdentity,
|
|
145
145
|
incomingClick: incomingIdentity?.traits?.click ?? null,
|
|
@@ -149,7 +149,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
149
149
|
return resolvedIdentity;
|
|
150
150
|
}
|
|
151
151
|
catch (error) {
|
|
152
|
-
Logger.error('
|
|
152
|
+
Logger.error('IdentityCache - getIdentityWithCaching failed', {
|
|
153
153
|
error,
|
|
154
154
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
155
155
|
pixelId,
|
|
@@ -166,10 +166,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
166
166
|
}
|
|
167
167
|
if (incomingIdentity.identityId) {
|
|
168
168
|
const pk = buildIdentityPk(pixelId, incomingIdentity.identityId);
|
|
169
|
-
Logger.debug('
|
|
169
|
+
Logger.debug('IdentityCache - lookup by identityId', { pixelId, pk, incomingIdentity });
|
|
170
170
|
const cachedIdentityResponse = await this.getItemByPk(pk);
|
|
171
171
|
if (!cachedIdentityResponse) {
|
|
172
|
-
Logger.debug('
|
|
172
|
+
Logger.debug('IdentityCache - identity cache miss - no cached identity found', {
|
|
173
173
|
pixelId,
|
|
174
174
|
identityId: incomingIdentity.identityId,
|
|
175
175
|
incomingIdentity,
|
|
@@ -177,7 +177,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
177
177
|
});
|
|
178
178
|
return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
|
|
179
179
|
}
|
|
180
|
-
Logger.debug('
|
|
180
|
+
Logger.debug('IdentityCache - found cached identity', {
|
|
181
181
|
pixelId,
|
|
182
182
|
identityId: incomingIdentity.identityId,
|
|
183
183
|
cachedIdentity: cachedIdentityResponse.response,
|
|
@@ -192,7 +192,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
192
192
|
const staleTier = identityStaleCacheTracker.staleTier;
|
|
193
193
|
let isCacheStale = identityStaleCacheTracker.isCacheStale;
|
|
194
194
|
if (isDeepEqual) {
|
|
195
|
-
Logger.debug('
|
|
195
|
+
Logger.debug('IdentityCache - deep equal (after stripping timestamps)', {
|
|
196
196
|
pixelId,
|
|
197
197
|
identityId: incomingIdentity.identityId,
|
|
198
198
|
staleTier,
|
|
@@ -200,7 +200,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
200
200
|
isCacheStale = false;
|
|
201
201
|
}
|
|
202
202
|
else {
|
|
203
|
-
Logger.debug('
|
|
203
|
+
Logger.debug('IdentityCache - not deep equal', {
|
|
204
204
|
pixelId,
|
|
205
205
|
identityId: incomingIdentity.identityId,
|
|
206
206
|
staleTier,
|
|
@@ -214,7 +214,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
214
214
|
const isAddressUpdateOnly = staleTier === IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE;
|
|
215
215
|
const skipNeptune = isVolatileOnly || isAddressUpdateOnly;
|
|
216
216
|
if (isVolatileOnly && !isDeepEqual) {
|
|
217
|
-
Logger.debug('
|
|
217
|
+
Logger.debug('IdentityCache - volatile only - treating as cache hit', {
|
|
218
218
|
pixelId,
|
|
219
219
|
identityId: incomingIdentity.identityId,
|
|
220
220
|
staleTier,
|
|
@@ -231,7 +231,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
if (isCacheStale) {
|
|
234
|
-
Logger.debug('
|
|
234
|
+
Logger.debug('IdentityCache - stale detected', {
|
|
235
235
|
pixelId,
|
|
236
236
|
identityId: incomingIdentity.identityId,
|
|
237
237
|
isCacheStale,
|
|
@@ -256,7 +256,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
256
256
|
}
|
|
257
257
|
const discoveredIdentityId = await this.getIdentityIdFromEmailLookup(pixelId, incomingIdentity);
|
|
258
258
|
if (discoveredIdentityId) {
|
|
259
|
-
Logger.debug('
|
|
259
|
+
Logger.debug('IdentityCache - identityId from email pointer', {
|
|
260
260
|
pixelId,
|
|
261
261
|
discoveredIdentityId,
|
|
262
262
|
incomingIdentity,
|
|
@@ -271,7 +271,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
271
271
|
return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
|
|
272
272
|
}
|
|
273
273
|
catch (error) {
|
|
274
|
-
Logger.error('
|
|
274
|
+
Logger.error('IdentityCache - getIdentityFromCache failed', {
|
|
275
275
|
error,
|
|
276
276
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
277
277
|
pixelId,
|
|
@@ -291,7 +291,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
291
291
|
return result ?? undefined;
|
|
292
292
|
}
|
|
293
293
|
catch (error) {
|
|
294
|
-
Logger.error('
|
|
294
|
+
Logger.error('IdentityCache - getIdentityMap failed', {
|
|
295
295
|
error,
|
|
296
296
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
297
297
|
pixelId,
|
|
@@ -310,7 +310,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
310
310
|
return result !== null;
|
|
311
311
|
}
|
|
312
312
|
catch (error) {
|
|
313
|
-
Logger.error('
|
|
313
|
+
Logger.error('IdentityCache - getForcePurgeFlag failed', {
|
|
314
314
|
error,
|
|
315
315
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
316
316
|
pixelId,
|
|
@@ -348,10 +348,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
await DynamoDbClient.safeBatchWrite(TABLE_NAME, items);
|
|
351
|
-
Logger.debug('
|
|
351
|
+
Logger.debug('IdentityCache - cache written', { pixelId, identityId: response.identityId, itemCount: items.length });
|
|
352
352
|
}
|
|
353
353
|
catch (error) {
|
|
354
|
-
Logger.error('
|
|
354
|
+
Logger.error('IdentityCache - updateIdentityCache failed', {
|
|
355
355
|
error,
|
|
356
356
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
357
357
|
pixelId,
|
|
@@ -371,10 +371,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
371
371
|
updatedAt: new Date().toISOString(),
|
|
372
372
|
};
|
|
373
373
|
await DynamoDbClient.safePut(TABLE_NAME, item);
|
|
374
|
-
Logger.debug('
|
|
374
|
+
Logger.debug('IdentityCache - identity map written', { pixelId, identityId, linkedIdentities });
|
|
375
375
|
}
|
|
376
376
|
catch (error) {
|
|
377
|
-
Logger.error('
|
|
377
|
+
Logger.error('IdentityCache - putIdentityMap failed', {
|
|
378
378
|
error,
|
|
379
379
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
380
380
|
pixelId,
|
|
@@ -397,10 +397,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
397
397
|
ttl: Math.floor(ttl),
|
|
398
398
|
};
|
|
399
399
|
await DynamoDbClient.safePut(TABLE_NAME, item);
|
|
400
|
-
Logger.debug('
|
|
400
|
+
Logger.debug('IdentityCache - force purge flag set', { pixelId, identityId, ttlSeconds });
|
|
401
401
|
}
|
|
402
402
|
catch (error) {
|
|
403
|
-
Logger.error('
|
|
403
|
+
Logger.error('IdentityCache - setForcePurgeFlag failed', {
|
|
404
404
|
error,
|
|
405
405
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
406
406
|
pixelId,
|
|
@@ -442,11 +442,11 @@ export class IdentityCacheDynamoDbService {
|
|
|
442
442
|
const uniqueKeys = Array.from(new Set(deleteKeys.map((k) => k.pk))).map((pk) => ({ pk }));
|
|
443
443
|
if (uniqueKeys.length > 0) {
|
|
444
444
|
await this.safeBatchDelete(uniqueKeys);
|
|
445
|
-
Logger.debug('
|
|
445
|
+
Logger.debug('IdentityCache - cache items deleted', { pixelId, deletedCount: uniqueKeys.length });
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
catch (error) {
|
|
449
|
-
Logger.error('
|
|
449
|
+
Logger.error('IdentityCache - deleteIdentityCache failed', {
|
|
450
450
|
error,
|
|
451
451
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
452
452
|
pixelId,
|
|
@@ -460,10 +460,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
460
460
|
}
|
|
461
461
|
const pk = buildIdentityMapPk(pixelId, identityId);
|
|
462
462
|
await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
|
|
463
|
-
Logger.debug('
|
|
463
|
+
Logger.debug('IdentityCache - identity map deleted', { pixelId, identityId });
|
|
464
464
|
}
|
|
465
465
|
catch (error) {
|
|
466
|
-
Logger.error('
|
|
466
|
+
Logger.error('IdentityCache - deleteIdentityMap failed', {
|
|
467
467
|
error,
|
|
468
468
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
469
469
|
pixelId,
|
|
@@ -478,10 +478,10 @@ export class IdentityCacheDynamoDbService {
|
|
|
478
478
|
}
|
|
479
479
|
const pk = buildForcePurgePk(pixelId, identityId);
|
|
480
480
|
await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
|
|
481
|
-
Logger.debug('
|
|
481
|
+
Logger.debug('IdentityCache - force purge flag deleted', { pixelId, identityId });
|
|
482
482
|
}
|
|
483
483
|
catch (error) {
|
|
484
|
-
Logger.error('
|
|
484
|
+
Logger.error('IdentityCache - deleteForcePurgeFlag failed', {
|
|
485
485
|
error,
|
|
486
486
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
487
487
|
pixelId,
|
|
@@ -506,7 +506,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
506
506
|
return incomingIdentity;
|
|
507
507
|
}
|
|
508
508
|
catch (error) {
|
|
509
|
-
Logger.error('
|
|
509
|
+
Logger.error('IdentityCache - Neptune resolution failed', {
|
|
510
510
|
error,
|
|
511
511
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
512
512
|
pixelId,
|
|
@@ -524,7 +524,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
524
524
|
await this.writeBackToCache(pixelId, resolvedIdentity);
|
|
525
525
|
}
|
|
526
526
|
catch (writeError) {
|
|
527
|
-
Logger.error(`
|
|
527
|
+
Logger.error(`IdentityCache - write back failed (${context})`, {
|
|
528
528
|
error: writeError,
|
|
529
529
|
errorMessage: writeError instanceof Error ? writeError.message : String(writeError),
|
|
530
530
|
pixelId,
|
|
@@ -543,16 +543,16 @@ export class IdentityCacheDynamoDbService {
|
|
|
543
543
|
return undefined;
|
|
544
544
|
}
|
|
545
545
|
const pk = buildEmailPk(pixelId, firstEmail);
|
|
546
|
-
Logger.debug('
|
|
546
|
+
Logger.debug('IdentityCache - email secondary lookup', { pixelId, pk, email: firstEmail });
|
|
547
547
|
const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
|
|
548
548
|
if (!result) {
|
|
549
549
|
return undefined;
|
|
550
550
|
}
|
|
551
|
-
Logger.debug('
|
|
551
|
+
Logger.debug('IdentityCache - identityId from email lookup', { pixelId, identityId: result.identityId, email: firstEmail });
|
|
552
552
|
return result.identityId;
|
|
553
553
|
}
|
|
554
554
|
catch (error) {
|
|
555
|
-
Logger.error('
|
|
555
|
+
Logger.error('IdentityCache - email lookup failed', {
|
|
556
556
|
error,
|
|
557
557
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
558
558
|
pixelId,
|
|
@@ -567,7 +567,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
567
567
|
return result ?? undefined;
|
|
568
568
|
}
|
|
569
569
|
catch (error) {
|
|
570
|
-
Logger.error('
|
|
570
|
+
Logger.error('IdentityCache - getItemByPk failed', {
|
|
571
571
|
error,
|
|
572
572
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
573
573
|
pk,
|
|
@@ -581,7 +581,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
581
581
|
return (results ?? []);
|
|
582
582
|
}
|
|
583
583
|
catch (error) {
|
|
584
|
-
Logger.error('
|
|
584
|
+
Logger.error('IdentityCache - queryByGsi1 failed', {
|
|
585
585
|
error,
|
|
586
586
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
587
587
|
identityId,
|
|
@@ -604,7 +604,7 @@ export class IdentityCacheDynamoDbService {
|
|
|
604
604
|
});
|
|
605
605
|
}
|
|
606
606
|
catch (error) {
|
|
607
|
-
Logger.error('
|
|
607
|
+
Logger.error('IdentityCache - batch delete failed', {
|
|
608
608
|
error,
|
|
609
609
|
errorMessage: error instanceof Error ? error.message : String(error),
|
|
610
610
|
chunkSize: chunk.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-dynamodb-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-dynamodb-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identity-cache-dynamodb-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-dynamodb-service.ts"],"names":[],"mappings":"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"}
|