@adtrackify/at-service-common 4.0.13 → 4.0.15

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.
Files changed (109) hide show
  1. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +37 -38
  2. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +92 -349
  4. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  5. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +360 -0
  6. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -0
  7. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +138 -0
  8. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  9. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +153 -0
  10. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  11. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +72 -0
  12. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  13. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +89 -0
  14. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  15. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +136 -0
  16. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -0
  17. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +224 -0
  18. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -0
  19. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +28 -0
  20. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +90 -0
  21. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -0
  22. package/dist/cjs/clients/internal-api/identity-client.d.ts +12 -2
  23. package/dist/cjs/clients/internal-api/identity-client.js +59 -13
  24. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  25. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +1 -7
  26. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +0 -305
  27. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  28. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +14 -14
  29. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +122 -330
  30. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  31. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +0 -1
  32. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +0 -1
  33. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
  34. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +8 -158
  35. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +1 -15
  36. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  37. package/dist/esm/__tests__/identity-cache/helpers.spec.js +26 -27
  38. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  39. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +92 -349
  40. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  41. package/dist/esm/__tests__/identity-cache/identity-client.spec.js +358 -0
  42. package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -0
  43. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.d.ts +1 -0
  44. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +136 -0
  45. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  46. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts +1 -0
  47. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +151 -0
  48. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  49. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -0
  50. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +70 -0
  51. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  52. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -0
  53. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +87 -0
  54. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  55. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -0
  56. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +134 -0
  57. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -0
  58. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -0
  59. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +222 -0
  60. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -0
  61. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +28 -0
  62. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +83 -0
  63. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -0
  64. package/dist/esm/clients/internal-api/identity-client.d.ts +12 -2
  65. package/dist/esm/clients/internal-api/identity-client.js +60 -14
  66. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  67. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +1 -7
  68. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +1 -303
  69. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  70. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +14 -14
  71. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +125 -330
  72. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  73. package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +0 -1
  74. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +0 -1
  75. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
  76. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +8 -158
  77. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +0 -14
  78. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  79. package/package.json +2 -2
  80. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +0 -646
  81. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +0 -1
  82. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +0 -325
  83. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +0 -1
  84. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +0 -1286
  85. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +0 -1
  86. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +0 -2170
  87. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  88. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +0 -26
  89. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +0 -252
  90. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +0 -1
  91. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +0 -644
  92. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +0 -1
  93. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +0 -323
  94. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +0 -1
  95. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +0 -1284
  96. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +0 -1
  97. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +0 -2168
  98. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  99. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +0 -26
  100. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +0 -235
  101. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +0 -1
  102. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts → identity-client.spec.d.ts} +0 -0
  103. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-service-v2-comparison.spec.d.ts → identity-gateway-cache-hit.spec.d.ts} +0 -0
  104. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-service.spec.d.ts → identity-gateway-cache-miss.spec.d.ts} +0 -0
  105. /package/dist/cjs/__tests__/identity-cache/{identity-gateway-service.spec.d.ts → identity-gateway-constructor.spec.d.ts} +0 -0
  106. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts} +0 -0
  107. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts} +0 -0
  108. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts} +0 -0
  109. /package/dist/esm/__tests__/identity-cache/{identity-gateway-service.spec.d.ts → identity-client.spec.d.ts} +0 -0
@@ -0,0 +1,222 @@
1
+ import { createService, createServiceWithSqs, createCachedIdentity, mockGetIdentity, mockBuildAndSendMessage, mockedDynamoDbClient, resetAllMocks, TEST_PIXEL_ID, IDENTITY_CACHE_WITH_CACHING_OUTCOME, } from './identity-gateway-test-setup.js';
2
+ describe('IdentityGatewayService stale cache scenarios', () => {
3
+ const pixelId = TEST_PIXEL_ID;
4
+ beforeEach(() => {
5
+ resetAllMocks();
6
+ });
7
+ describe('identity-defining trait changes → Neptune', () => {
8
+ it('should call Neptune when new emails are added', async () => {
9
+ const service = createService();
10
+ const cachedResponse = createCachedIdentity(pixelId, 'staleness-compute', {
11
+ emails: ['old@email.com'],
12
+ });
13
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
14
+ mockGetIdentity.mockResolvedValueOnce({
15
+ identityId: 'staleness-compute',
16
+ traits: { emails: ['old@email.com', 'new@email.com'] },
17
+ });
18
+ const incomingIdentity = {
19
+ identityId: 'staleness-compute',
20
+ traits: {
21
+ emails: ['old@email.com', 'new@email.com'],
22
+ },
23
+ };
24
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
25
+ expect(result.didCallNeptune).toBe(true);
26
+ expect(result.stalenessResult?.staleTraits).toContain('emails');
27
+ });
28
+ it('should not skip Neptune for IDENTITY_STALE tier', async () => {
29
+ const service = createService();
30
+ const cachedResponse = createCachedIdentity(pixelId, 'call-neptune', {
31
+ emails: ['old@email.com'],
32
+ });
33
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
34
+ mockGetIdentity.mockResolvedValueOnce({
35
+ identityId: 'call-neptune',
36
+ traits: { emails: ['old@email.com', 'new@email.com'] },
37
+ });
38
+ const incomingIdentity = {
39
+ identityId: 'call-neptune',
40
+ traits: {
41
+ emails: ['old@email.com', 'new@email.com'],
42
+ },
43
+ };
44
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
45
+ expect(result.didSkipNeptune).toBe(false);
46
+ expect(result.didCallNeptune).toBe(true);
47
+ expect(mockGetIdentity).toHaveBeenCalled();
48
+ });
49
+ });
50
+ describe('Neptune resolution success', () => {
51
+ it('should return NEPTUNE_RESOLVED outcome', async () => {
52
+ const service = createService();
53
+ const cachedResponse = createCachedIdentity(pixelId, 'stale-reason', {
54
+ emails: ['old@email.com'],
55
+ });
56
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
57
+ mockGetIdentity.mockResolvedValueOnce({
58
+ identityId: 'stale-reason',
59
+ traits: { emails: ['old@email.com', 'new@email.com'] },
60
+ });
61
+ const incomingIdentity = {
62
+ identityId: 'stale-reason',
63
+ traits: {
64
+ emails: ['old@email.com', 'new@email.com'],
65
+ },
66
+ };
67
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
68
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
69
+ });
70
+ it('should compute traitChanges between cached and Neptune identity', async () => {
71
+ const service = createService();
72
+ const cachedResponse = createCachedIdentity(pixelId, 'trait-changes', {
73
+ emails: ['old@email.com'],
74
+ phones: ['555-old'],
75
+ });
76
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
77
+ mockGetIdentity.mockResolvedValueOnce({
78
+ identityId: 'trait-changes',
79
+ traits: {
80
+ emails: ['old@email.com', 'new@email.com'],
81
+ phones: ['555-old', '555-new'],
82
+ },
83
+ });
84
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'trait-changes', traits: { emails: ['old@email.com', 'new@email.com'] } });
85
+ expect(result.traitChanges).toBeDefined();
86
+ expect(result.traitChanges?.emails).toBeDefined();
87
+ });
88
+ it('should not write to cache (identity service handles writes)', async () => {
89
+ const service = createService();
90
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-write', {
91
+ emails: ['old@email.com'],
92
+ });
93
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
94
+ mockGetIdentity.mockResolvedValueOnce({
95
+ identityId: 'neptune-write',
96
+ traits: {
97
+ emails: ['old@email.com', 'new@email.com'],
98
+ phones: ['555-neptune'],
99
+ },
100
+ });
101
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-write', traits: { emails: ['old@email.com', 'new@email.com'] } });
102
+ expect(result.didWriteCache).toBe(false);
103
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
104
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
105
+ });
106
+ it('should still return Neptune identity when it matches cached', async () => {
107
+ const service = createService();
108
+ const cachedResponse = createCachedIdentity(pixelId, 'no-changes', {
109
+ emails: ['same@email.com'],
110
+ });
111
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
112
+ mockGetIdentity.mockResolvedValueOnce({
113
+ identityId: 'no-changes',
114
+ traits: { emails: ['same@email.com'] },
115
+ });
116
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'no-changes', traits: { emails: ['same@email.com', 'thought-new@email.com'] } });
117
+ expect(result.didCallNeptune).toBe(true);
118
+ expect(result.didWriteCache).toBe(false);
119
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
120
+ });
121
+ it('should strip address timestamps when comparing Neptune result', async () => {
122
+ const service = createService();
123
+ const now = Date.now();
124
+ const cachedResponse = {
125
+ pk: `identity#${pixelId}#addr-timestamp`,
126
+ pixelId,
127
+ identityId: 'addr-timestamp',
128
+ response: {
129
+ identityId: 'addr-timestamp',
130
+ traits: {
131
+ emails: ['test@email.com'],
132
+ addresses: [{ city: 'NYC', cra: now - 1000, upa: now - 500 }],
133
+ },
134
+ },
135
+ updatedAt: new Date().toISOString(),
136
+ };
137
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
138
+ mockGetIdentity.mockResolvedValueOnce({
139
+ identityId: 'addr-timestamp',
140
+ traits: {
141
+ emails: ['test@email.com'],
142
+ addresses: [{ city: 'NYC', cra: now, upa: now }],
143
+ },
144
+ });
145
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'addr-timestamp', traits: { emails: ['test@email.com', 'new@email.com'] } });
146
+ expect(result.didWriteCache).toBe(false);
147
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
148
+ });
149
+ });
150
+ describe('Neptune resolution failure', () => {
151
+ it('should return NEPTUNE_RESOLUTION_FAILED outcome', async () => {
152
+ const service = createService();
153
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-throws', {
154
+ emails: ['old@email.com'],
155
+ });
156
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
157
+ mockGetIdentity.mockRejectedValueOnce(new Error('Neptune invocation failed'));
158
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-throws', traits: { emails: ['old@email.com', 'new@email.com'] } });
159
+ expect(result.didCallNeptune).toBe(true);
160
+ expect(result.didWriteCache).toBe(false);
161
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLUTION_FAILED);
162
+ });
163
+ it('should return merged identity on Neptune failure (fail-open)', async () => {
164
+ const service = createService();
165
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-throws', {
166
+ emails: ['old@email.com'],
167
+ });
168
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
169
+ mockGetIdentity.mockRejectedValueOnce(new Error('Neptune invocation failed'));
170
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-throws', traits: { emails: ['old@email.com', 'new@email.com'] } });
171
+ expect(result.identity).toBeDefined();
172
+ expect(result.identity?.identityId).toBe('neptune-throws');
173
+ expect(result.identity?.traits?.emails).toEqual(['old@email.com', 'new@email.com']);
174
+ });
175
+ it('should not write to cache when Neptune fails', async () => {
176
+ const service = createService();
177
+ const cachedResponse = createCachedIdentity(pixelId, 'no-write-fail', {
178
+ emails: ['test@email.com'],
179
+ });
180
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
181
+ mockGetIdentity.mockRejectedValueOnce(new Error('Network error'));
182
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'no-write-fail', traits: { emails: ['test@email.com', 'extra@email.com'] } });
183
+ expect(result.didWriteCache).toBe(false);
184
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
185
+ });
186
+ });
187
+ describe('address update path', () => {
188
+ it('should enqueue async update on address changes', async () => {
189
+ const service = createServiceWithSqs();
190
+ mockBuildAndSendMessage.mockResolvedValueOnce({ MessageId: 'test-msg-id' });
191
+ const cachedResponse = {
192
+ pk: `identity#${pixelId}#identity456`,
193
+ pixelId,
194
+ identityId: 'identity456',
195
+ response: {
196
+ identityId: 'identity456',
197
+ traits: {
198
+ emails: ['test@email.com'],
199
+ addresses: [{ city: 'Old City', upa: 1704067200000 }],
200
+ },
201
+ },
202
+ updatedAt: new Date().toISOString(),
203
+ };
204
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
205
+ const identityWithNewAddress = {
206
+ identityId: 'identity456',
207
+ traits: {
208
+ emails: ['test@email.com'],
209
+ addresses: [{ city: 'New City', upa: 1717200000000 }],
210
+ },
211
+ };
212
+ const result = await service.resolveIdentityWithCaching(pixelId, identityWithNewAddress);
213
+ if (result.outcome === IDENTITY_CACHE_WITH_CACHING_OUTCOME.ADDRESS_UPDATE_ASYNC) {
214
+ expect(result.didWriteCache).toBe(false);
215
+ expect(result.didEnqueueAsync).toBe(true);
216
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
217
+ expect(mockBuildAndSendMessage).toHaveBeenCalled();
218
+ }
219
+ });
220
+ });
221
+ });
222
+ //# sourceMappingURL=identity-gateway-stale-cache.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-gateway-stale-cache.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-gateway-stale-cache.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="jest" />
2
+ import { EventContext, EventIdentity, IdentityDynamoDbCache } from '@adtrackify/at-tracking-event-types';
3
+ export declare const mockLambdaInvokeFunction: jest.Mock<any, any>;
4
+ export declare const mockBuildAndSendMessage: jest.Mock<any, any>;
5
+ export declare const mockSQSClientConstructor: jest.Mock<any, any>;
6
+ export declare const mockGetIdentity: jest.Mock<any, any>;
7
+ import { IdentityGatewayService, IdentityGatewayServiceOptions } from '../../services/db/identity-cache-dynamodb-service/identity-gateway-service.js';
8
+ import { IDENTITY_CACHE_WITH_CACHING_OUTCOME } from '../../services/db/identity-cache-dynamodb-service/types.js';
9
+ import { DynamoDbClient, SQSClient } from '../../clients/index.js';
10
+ export declare const mockedDynamoDbClient: jest.Mocked<typeof DynamoDbClient>;
11
+ export declare const mockedLogger: jest.Mocked<{
12
+ log: (logLevel: string, msg: string | Error, meta?: object | undefined, tags?: string[] | undefined) => void;
13
+ debug: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
14
+ info: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
15
+ warn: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
16
+ error: (msg: string | Error, meta?: object | undefined, tags?: string[] | undefined) => void;
17
+ }>;
18
+ export declare const mockedSQSClient: jest.MockedClass<typeof SQSClient>;
19
+ export { IdentityGatewayService };
20
+ export { IDENTITY_CACHE_WITH_CACHING_OUTCOME };
21
+ export type { IdentityGatewayServiceOptions };
22
+ export type { EventContext, EventIdentity, IdentityDynamoDbCache };
23
+ export declare const TEST_PIXEL_ID = "pixel123";
24
+ export declare const TEST_LAMBDA_ARN = "arn:aws:lambda:us-east-1:123456789:function:identity-private";
25
+ export declare const createService: (options?: IdentityGatewayServiceOptions) => IdentityGatewayService;
26
+ export declare const createServiceWithSqs: (overrides?: Partial<IdentityGatewayServiceOptions>) => IdentityGatewayService;
27
+ export declare const resetAllMocks: () => void;
28
+ export declare const createCachedIdentity: (pixelId: string, identityId: string, traits: EventIdentity['traits'], updatedAt?: string) => IdentityDynamoDbCache;
@@ -0,0 +1,83 @@
1
+ export const mockLambdaInvokeFunction = jest.fn();
2
+ export const mockBuildAndSendMessage = jest.fn();
3
+ export const mockSQSClientConstructor = jest.fn();
4
+ export const mockGetIdentity = jest.fn();
5
+ jest.mock('../../clients/index.js', () => ({
6
+ DynamoDbClient: {
7
+ safeGet: jest.fn(),
8
+ safePut: jest.fn(),
9
+ safeDelete: jest.fn(),
10
+ safeBatchGet: jest.fn(),
11
+ safeBatchWrite: jest.fn(),
12
+ safeQueryByGSI: jest.fn(),
13
+ batchWrite: jest.fn(),
14
+ },
15
+ LambdaInvokeClient: jest.fn().mockImplementation(() => ({
16
+ invokeFunction: mockLambdaInvokeFunction,
17
+ })),
18
+ SQSClient: jest.fn().mockImplementation((_region, _accountId, _queueName) => {
19
+ mockSQSClientConstructor(_region, _accountId, _queueName);
20
+ return {
21
+ buildAndSendMessage: mockBuildAndSendMessage,
22
+ queueUrl: `https://sqs.${_region}.amazonaws.com/${_accountId}/${_queueName}`,
23
+ };
24
+ }),
25
+ }));
26
+ jest.mock('../../helpers/index.js', () => ({
27
+ Logger: {
28
+ debug: jest.fn(),
29
+ info: jest.fn(),
30
+ warn: jest.fn(),
31
+ error: jest.fn(),
32
+ },
33
+ }));
34
+ jest.mock('../../clients/internal-api/identity-client.js', () => ({
35
+ IdentityClient: jest.fn().mockImplementation(() => ({
36
+ getIdentity: mockGetIdentity,
37
+ })),
38
+ }));
39
+ import { IdentityGatewayService, } from '../../services/db/identity-cache-dynamodb-service/identity-gateway-service.js';
40
+ import { IDENTITY_CACHE_WITH_CACHING_OUTCOME, } from '../../services/db/identity-cache-dynamodb-service/types.js';
41
+ import { DynamoDbClient, SQSClient } from '../../clients/index.js';
42
+ import { Logger } from '../../helpers/index.js';
43
+ export const mockedDynamoDbClient = DynamoDbClient;
44
+ export const mockedLogger = Logger;
45
+ export const mockedSQSClient = SQSClient;
46
+ export { IdentityGatewayService };
47
+ export { IDENTITY_CACHE_WITH_CACHING_OUTCOME };
48
+ export const TEST_PIXEL_ID = 'pixel123';
49
+ export const TEST_LAMBDA_ARN = 'arn:aws:lambda:us-east-1:123456789:function:identity-private';
50
+ export const createService = (options = { identifyPrivateLambdaArn: TEST_LAMBDA_ARN }) => {
51
+ return new IdentityGatewayService(options);
52
+ };
53
+ export const createServiceWithSqs = (overrides = {}) => {
54
+ return new IdentityGatewayService({
55
+ identifyPrivateLambdaArn: TEST_LAMBDA_ARN,
56
+ awsRegion: 'us-east-1',
57
+ awsAccountId: '123456789',
58
+ asyncUpdateQueueName: 'test-queue',
59
+ ...overrides,
60
+ });
61
+ };
62
+ export const resetAllMocks = () => {
63
+ jest.clearAllMocks();
64
+ mockedDynamoDbClient.safeGet.mockReset();
65
+ mockedDynamoDbClient.safePut.mockReset();
66
+ mockedDynamoDbClient.safeDelete.mockReset();
67
+ mockedDynamoDbClient.safeBatchGet.mockReset();
68
+ mockedDynamoDbClient.safeBatchWrite.mockReset();
69
+ mockedDynamoDbClient.safeQueryByGSI.mockReset();
70
+ mockedDynamoDbClient.batchWrite.mockReset();
71
+ mockGetIdentity.mockReset();
72
+ mockBuildAndSendMessage.mockReset();
73
+ mockSQSClientConstructor.mockReset();
74
+ mockedSQSClient.mockClear();
75
+ };
76
+ export const createCachedIdentity = (pixelId, identityId, traits, updatedAt = new Date().toISOString()) => ({
77
+ pk: `identity#${pixelId}#${identityId}`,
78
+ pixelId,
79
+ identityId,
80
+ response: { identityId, traits },
81
+ updatedAt,
82
+ });
83
+ //# sourceMappingURL=identity-gateway-test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-gateway-test-setup.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-gateway-test-setup.ts"],"names":[],"mappings":"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"}
@@ -14,18 +14,28 @@ export interface MergeIdentityResponse {
14
14
  export interface IdentityLookupByEmailResponse {
15
15
  identities: EventIdentity[];
16
16
  }
17
+ export interface IdentityClientOptions {
18
+ baseApiUrl: string;
19
+ identityApiKey?: string;
20
+ identifyPrivateLambdaArn?: string;
21
+ }
17
22
  export declare class IdentityClient {
18
23
  BASE_API_URL: string;
19
24
  SERVICE_API_ROOT_URL: string;
20
25
  IDENTITY_API_KEY?: string;
21
26
  client: GenericHttpClient;
22
- constructor(baseApiUrl: string, identityApiKey?: string);
27
+ private identifyPrivateLambdaArn?;
28
+ private lambdaInvokeClient?;
29
+ constructor(baseApiUrlOrOptions: string | IdentityClientOptions, identityApiKey?: string);
30
+ private getLambdaInvokeClient;
23
31
  getHeaders: () => {
24
32
  'x-api-key': string;
25
33
  } | {
26
34
  'x-api-key'?: undefined;
27
35
  };
28
- getIdentity: (pixelId: string, eventContext: EventContext | undefined, excludeThirdPartyContacts?: boolean) => Promise<any>;
36
+ getIdentity: (pixelId: string, eventContext: EventContext | undefined, excludeThirdPartyContacts?: boolean) => Promise<EventIdentity | null>;
37
+ private getIdentityViaLambda;
38
+ private getIdentityViaHttp;
29
39
  mergeIdentity: (pixelId: string, primaryIdentityId: string, secondaryIdentityId: string) => Promise<MergeIdentityResponse | null>;
30
40
  getIdentitiesByEmail: (email: string, pixelId?: string) => Promise<IdentityLookupByEmailResponse | null>;
31
41
  }
@@ -1,5 +1,5 @@
1
1
  import { HttpStatusCodes } from '../../libs';
2
- import { axiosHttpService } from '../generic';
2
+ import { axiosHttpService, LambdaInvokeClient } from '../generic';
3
3
  import { Logger } from '../../helpers';
4
4
  const client = axiosHttpService({
5
5
  headers: {
@@ -11,13 +11,28 @@ export class IdentityClient {
11
11
  SERVICE_API_ROOT_URL;
12
12
  IDENTITY_API_KEY;
13
13
  client;
14
- constructor(baseApiUrl, identityApiKey) {
15
- this.BASE_API_URL = baseApiUrl;
16
- this.IDENTITY_API_KEY = identityApiKey;
14
+ identifyPrivateLambdaArn;
15
+ lambdaInvokeClient;
16
+ constructor(baseApiUrlOrOptions, identityApiKey) {
17
+ if (typeof baseApiUrlOrOptions === 'string') {
18
+ this.BASE_API_URL = baseApiUrlOrOptions;
19
+ this.IDENTITY_API_KEY = identityApiKey;
20
+ }
21
+ else {
22
+ this.BASE_API_URL = baseApiUrlOrOptions.baseApiUrl;
23
+ this.IDENTITY_API_KEY = baseApiUrlOrOptions.identityApiKey;
24
+ this.identifyPrivateLambdaArn = baseApiUrlOrOptions.identifyPrivateLambdaArn;
25
+ }
17
26
  this.SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/identities`;
18
27
  this.client = client;
19
28
  this.client.setBaseUrl(this.SERVICE_API_ROOT_URL);
20
29
  }
30
+ getLambdaInvokeClient() {
31
+ if (!this.lambdaInvokeClient) {
32
+ this.lambdaInvokeClient = new LambdaInvokeClient();
33
+ }
34
+ return this.lambdaInvokeClient;
35
+ }
21
36
  getHeaders = () => {
22
37
  if (this.IDENTITY_API_KEY) {
23
38
  return {
@@ -27,20 +42,51 @@ export class IdentityClient {
27
42
  return {};
28
43
  };
29
44
  getIdentity = async (pixelId, eventContext, excludeThirdPartyContacts = false) => {
45
+ if (this.identifyPrivateLambdaArn) {
46
+ return this.getIdentityViaLambda(pixelId, eventContext);
47
+ }
48
+ return this.getIdentityViaHttp(pixelId, eventContext, excludeThirdPartyContacts);
49
+ };
50
+ getIdentityViaLambda = async (pixelId, eventContext) => {
30
51
  try {
31
- const identityResponse = await this.client.post('/', { pixelId, context: eventContext || {}, excludeThirdPartyContacts }, { headers: this.getHeaders() });
32
- if (identityResponse.status != HttpStatusCodes.OK) {
33
- const msg = 'HTTP Status Code Failed while retrieving identity data';
34
- Logger.error(msg, { identityResponse });
35
- return null;
36
- }
37
- if (identityResponse.status === HttpStatusCodes.OK) {
38
- return identityResponse?.data?.identity;
52
+ const lambdaClient = this.getLambdaInvokeClient();
53
+ const response = await lambdaClient.invokeFunction(this.identifyPrivateLambdaArn, {
54
+ pixelId,
55
+ context: eventContext ?? { identity: {} },
56
+ });
57
+ if (response?.statusCode === 200 && response?.body) {
58
+ const identifyResponse = JSON.parse(response.body);
59
+ return identifyResponse?.identity ?? null;
39
60
  }
61
+ return eventContext?.identity ?? null;
62
+ }
63
+ catch (error) {
64
+ Logger.error('IdentityClient - Lambda invoke failed', {
65
+ error,
66
+ errorMessage: error instanceof Error ? error.message : String(error),
67
+ pixelId,
68
+ });
40
69
  return null;
41
70
  }
42
- catch (e) {
43
- Logger.error('Error while retrieving identity', { error: e });
71
+ };
72
+ getIdentityViaHttp = async (pixelId, eventContext, excludeThirdPartyContacts) => {
73
+ try {
74
+ const identityResponse = await this.client.post('/', { pixelId, context: eventContext ?? {}, excludeThirdPartyContacts }, { headers: this.getHeaders() });
75
+ if (identityResponse.status !== HttpStatusCodes.OK) {
76
+ Logger.error('IdentityClient - HTTP status code failed while retrieving identity', {
77
+ pixelId,
78
+ statusCode: identityResponse.status,
79
+ });
80
+ return null;
81
+ }
82
+ return identityResponse?.data?.identity ?? null;
83
+ }
84
+ catch (error) {
85
+ Logger.error('IdentityClient - HTTP request failed', {
86
+ error,
87
+ errorMessage: error instanceof Error ? error.message : String(error),
88
+ pixelId,
89
+ });
44
90
  return null;
45
91
  }
46
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../../src/clients/internal-api/identity-client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,9 @@
1
1
  import { EventIdentity, IdentityMapDynamoDbCache } from '@adtrackify/at-tracking-event-types';
2
- import { IdentityCacheResult, IdentityCacheLookupResult, PureCacheLookupResult } from './types.js';
2
+ import { PureCacheLookupResult } from './types.js';
3
3
  export declare class IdentityCacheDynamoDbDbService {
4
- static getIdentityFromCache: (pixelId: string, incomingIdentity: EventIdentity) => Promise<IdentityCacheResult>;
5
- static getIdentityFromCacheV2: (pixelId: string, incomingIdentity: EventIdentity) => Promise<IdentityCacheLookupResult>;
6
4
  static getIdentityFromCachePure: (pixelId: string, incomingIdentity: EventIdentity) => Promise<PureCacheLookupResult>;
7
5
  private static resolveCacheByIdentityIdPure;
8
6
  private static resolveCacheByEmailPointerPure;
9
- private static resolveCacheByIdentityIdV2;
10
- private static applyPrimaryCacheHitState;
11
- private static createPrimaryCacheLookupResult;
12
- private static resolveCacheByEmailPointerV2;
13
7
  static getIdentityMap: (pixelId: string, identityId: string) => Promise<IdentityMapDynamoDbCache | undefined>;
14
8
  static getForcePurgeFlag: (pixelId: string, identityId: string) => Promise<boolean>;
15
9
  static updateIdentityCache: (pixelId: string, response: EventIdentity) => Promise<void>;