@microsoft/agents-hosting-storage-cosmos 1.8.1 → 1.9.0-beta.18.g6b8111bba5

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/README.md CHANGED
@@ -16,6 +16,16 @@ const cosmosDbStorageOptions = {
16
16
  }
17
17
  } as CosmosDbPartitionedStorageOptions
18
18
  const cosmosStorage = new CosmosDbPartitionedStorage(cosmosDbStorageOptions)
19
- const conversationState = new ConversationState(cosmosStorage)
20
- const userState = new UserState(cosmosStorage)
21
- ```
19
+ const conversationState = new ConversationState(cosmosStorage)
20
+ const userState = new UserState(cosmosStorage)
21
+ ```
22
+
23
+ ## TTL writes
24
+
25
+ `CosmosDbPartitionedStorage` supports the shared storage TTL option:
26
+
27
+ ```ts
28
+ await cosmosStorage.write({ 'session/123': { value: 'temporary' } }, { ttl: 3600 })
29
+ ```
30
+
31
+ The provider stores Cosmos DB item-level TTL on the wrapper document and also enforces logical expiry during reads.
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting-storage-cosmos",
4
- "version": "1.8.1",
4
+ "version": "1.9.0-beta.18.g6b8111bba5",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  "types": "dist/src/index.d.ts",
18
18
  "dependencies": {
19
19
  "@azure/cosmos": "4.9.3",
20
- "@microsoft/agents-hosting": "1.8.1",
21
- "@microsoft/agents-activity": "1.8.1",
22
- "@microsoft/agents-telemetry": "1.8.1"
20
+ "@microsoft/agents-hosting": "1.9.0-beta.18.g6b8111bba5",
21
+ "@microsoft/agents-activity": "1.9.0-beta.18.g6b8111bba5",
22
+ "@microsoft/agents-telemetry": "1.9.0-beta.18.g6b8111bba5"
23
23
  },
24
24
  "license": "MIT",
25
25
  "files": [
@@ -1,5 +1,5 @@
1
1
  import { CosmosDbPartitionedStorageOptions } from './cosmosDbPartitionedStorageOptions';
2
- import { Storage, StoreItems } from '@microsoft/agents-hosting';
2
+ import { Storage, StorageWriteOptions, StoreItems } from '@microsoft/agents-hosting';
3
3
  /**
4
4
  * Implements storage using Cosmos DB partitioned storage.
5
5
  */
@@ -28,7 +28,7 @@ export declare class CosmosDbPartitionedStorage implements Storage {
28
28
  * Writes items to storage.
29
29
  * @param changes The items to write.
30
30
  */
31
- write(changes: StoreItems): Promise<void>;
31
+ write(changes: StoreItems, options?: StorageWriteOptions): Promise<void>;
32
32
  /**
33
33
  * Deletes items from storage.
34
34
  * @param keys The keys of the items to delete.
@@ -40,5 +40,6 @@ export declare class CosmosDbPartitionedStorage implements Storage {
40
40
  private initialize;
41
41
  private getOrCreateContainer;
42
42
  private getPartitionKey;
43
+ private isExpired;
43
44
  private checkForNestingError;
44
45
  }
@@ -6,6 +6,7 @@ exports.CosmosDbPartitionedStorage = void 0;
6
6
  const cosmos_1 = require("@azure/cosmos");
7
7
  const cosmosDbKeyEscape_1 = require("./cosmosDbKeyEscape");
8
8
  const documentStoreItem_1 = require("./documentStoreItem");
9
+ const agents_hosting_1 = require("@microsoft/agents-hosting");
9
10
  const agents_activity_1 = require("@microsoft/agents-activity");
10
11
  const errorHelper_1 = require("./errorHelper");
11
12
  const agents_telemetry_1 = require("@microsoft/agents-telemetry");
@@ -71,6 +72,17 @@ class DoOnce {
71
72
  }
72
73
  const _doOnce = new DoOnce(maxCachedInitializations);
73
74
  const maxDepthAllowed = 127;
75
+ async function ignoreCosmosErrors(operation, ...ignoredCodes) {
76
+ const ignored = new Set(ignoredCodes);
77
+ try {
78
+ await operation;
79
+ }
80
+ catch (err) {
81
+ if (!ignored.has(err.code)) {
82
+ throw err;
83
+ }
84
+ }
85
+ }
74
86
  function isNotFoundError(err) {
75
87
  if (!err || typeof err !== 'object' || !('code' in err)) {
76
88
  return false;
@@ -159,6 +171,18 @@ class CosmosDbPartitionedStorage {
159
171
  .read();
160
172
  const documentStoreItem = readItemResponse.resource;
161
173
  if (documentStoreItem) {
174
+ if (this.isExpired(documentStoreItem)) {
175
+ logger.info('Document expired, deleting from storage', {
176
+ key: (0, agents_telemetry_1.redactString)(k, true),
177
+ documentId: (0, agents_telemetry_1.redactString)(documentStoreItem.id, true),
178
+ eTag: (0, agents_telemetry_1.redactString)(documentStoreItem._etag, true),
179
+ expiresAt: documentStoreItem.expiresAt,
180
+ });
181
+ await ignoreCosmosErrors(this.container.item(escapedKey, this.getPartitionKey(escapedKey)).delete({
182
+ accessCondition: { type: 'IfMatch', condition: documentStoreItem._etag }
183
+ }), 404, 412);
184
+ return;
185
+ }
162
186
  storeItems[documentStoreItem.realId] = documentStoreItem.document;
163
187
  storeItems[documentStoreItem.realId].eTag = documentStoreItem._etag;
164
188
  }
@@ -182,14 +206,15 @@ class CosmosDbPartitionedStorage {
182
206
  * Writes items to storage.
183
207
  * @param changes The items to write.
184
208
  */
185
- async write(changes) {
209
+ async write(changes, options) {
186
210
  return (0, agents_telemetry_1.trace)(observability_1.CosmosStorageTraceDefinitions.write, async ({ record }) => {
187
211
  if (!changes) {
188
212
  throw agents_activity_1.ExceptionHelper.generateException(ReferenceError, errorHelper_1.Errors.MissingWriteChanges);
189
213
  }
190
- else if (changes.length === 0) {
214
+ else if (Object.keys(changes).length === 0) {
191
215
  return;
192
216
  }
217
+ const expiresAt = (0, agents_hosting_1.getStorageWriteExpiry)(options);
193
218
  record({ keyCount: Object.keys(changes).length });
194
219
  await this.initialize();
195
220
  await Promise.all(Object.entries(changes).map(async ([key, { eTag, ...change }]) => {
@@ -197,6 +222,8 @@ class CosmosDbPartitionedStorage {
197
222
  id: (0, cosmosDbKeyEscape_1.escapeKey)(key, this.cosmosDbStorageOptions.keySuffix, this.cosmosDbStorageOptions.compatibilityMode),
198
223
  realId: key,
199
224
  document: change,
225
+ ttl: (options === null || options === void 0 ? void 0 : options.ttl) === undefined ? undefined : Math.ceil(options.ttl),
226
+ expiresAt,
200
227
  });
201
228
  const accessCondition = eTag !== '*' && eTag != null && eTag.length > 0
202
229
  ? { accessCondition: { type: 'IfMatch', condition: eTag } }
@@ -298,6 +325,7 @@ class CosmosDbPartitionedStorage {
298
325
  partitionKey: {
299
326
  paths: [documentStoreItem_1.DocumentStoreItem.partitionKeyPath],
300
327
  },
328
+ defaultTtl: -1,
301
329
  throughput: this.cosmosDbStorageOptions.containerThroughput,
302
330
  });
303
331
  return { container: result.container, compatibilityModePartitionKey };
@@ -317,6 +345,9 @@ class CosmosDbPartitionedStorage {
317
345
  getPartitionKey(key) {
318
346
  return this.compatibilityModePartitionKey ? undefined : key;
319
347
  }
348
+ isExpired(item) {
349
+ return item.expiresAt !== undefined && item.expiresAt <= Date.now();
350
+ }
320
351
  checkForNestingError(json, err) {
321
352
  const ancestors = new WeakSet();
322
353
  const checkDepth = (obj, depth, isInDialogState) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cosmosDbPartitionedStorage.js","sourceRoot":"","sources":["../../src/cosmosDbPartitionedStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmosDbPartitionedStorage.js","sourceRoot":"","sources":["../../src/cosmosDbPartitionedStorage.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,14 @@ export declare class DocumentStoreItem {
22
22
  * The ETag of the document.
23
23
  */
24
24
  eTag: string;
25
+ /**
26
+ * Cosmos DB item-level time to live in seconds.
27
+ */
28
+ ttl?: number;
29
+ /**
30
+ * SDK-managed absolute expiry timestamp in milliseconds.
31
+ */
32
+ expiresAt?: number;
25
33
  /**
26
34
  * Gets the partition key.
27
35
  */
@@ -35,5 +43,7 @@ export declare class DocumentStoreItem {
35
43
  realId: string;
36
44
  document: object;
37
45
  eTag?: string;
46
+ ttl?: number;
47
+ expiresAt?: number;
38
48
  });
39
49
  }
@@ -28,6 +28,8 @@ class DocumentStoreItem {
28
28
  this.realId = storeItem.realId || '';
29
29
  this.document = storeItem.document || {};
30
30
  this.eTag = storeItem.eTag || '';
31
+ this.ttl = storeItem.ttl;
32
+ this.expiresAt = storeItem.expiresAt;
31
33
  }
32
34
  }
33
35
  exports.DocumentStoreItem = DocumentStoreItem;
@@ -1 +1 @@
1
- {"version":3,"file":"documentStoreItem.js","sourceRoot":"","sources":["../../src/documentStoreItem.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;AAElC;;GAEG;AACH;IACE;;OAEG;IACH,MAAM,KAAK,gBAAgB;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IAmBD;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,YAAa,SAA0E;QACrF,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAA;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"documentStoreItem.js","sourceRoot":"","sources":["../../src/documentStoreItem.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;AAElC;;GAEG;AACH;IACE;;OAEG;IACH,MAAM,KAAK,gBAAgB;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IA2BD;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,YAAa,SAA4G;QACvH,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;IACtC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting-storage-cosmos",
4
- "version": "1.8.1",
4
+ "version": "1.9.0-beta.18.g6b8111bba5",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  "types": "dist/src/index.d.ts",
18
18
  "dependencies": {
19
19
  "@azure/cosmos": "4.9.3",
20
- "@microsoft/agents-hosting": "1.8.1",
21
- "@microsoft/agents-activity": "1.8.1",
22
- "@microsoft/agents-telemetry": "1.8.1"
20
+ "@microsoft/agents-hosting": "1.9.0-beta.18.g6b8111bba5",
21
+ "@microsoft/agents-activity": "1.9.0-beta.18.g6b8111bba5",
22
+ "@microsoft/agents-telemetry": "1.9.0-beta.18.g6b8111bba5"
23
23
  },
24
24
  "license": "MIT",
25
25
  "files": [
@@ -5,7 +5,7 @@ import { Container, CosmosClient } from '@azure/cosmos'
5
5
  import { escapeKey } from './cosmosDbKeyEscape'
6
6
  import { DocumentStoreItem } from './documentStoreItem'
7
7
  import { CosmosDbPartitionedStorageOptions } from './cosmosDbPartitionedStorageOptions'
8
- import { Storage, StoreItems } from '@microsoft/agents-hosting'
8
+ import { getStorageWriteExpiry, Storage, StorageWriteOptions, StoreItems } from '@microsoft/agents-hosting'
9
9
  import { ExceptionHelper } from '@microsoft/agents-activity'
10
10
  import { Errors } from './errorHelper'
11
11
  import { trace, redactString } from '@microsoft/agents-telemetry'
@@ -89,6 +89,17 @@ const _doOnce: DoOnce<ContainerInitialization> = new DoOnce<ContainerInitializat
89
89
 
90
90
  const maxDepthAllowed = 127
91
91
 
92
+ async function ignoreCosmosErrors (operation: Promise<unknown>, ...ignoredCodes: number[]): Promise<void> {
93
+ const ignored = new Set(ignoredCodes)
94
+ try {
95
+ await operation
96
+ } catch (err: any) {
97
+ if (!ignored.has(err.code)) {
98
+ throw err
99
+ }
100
+ }
101
+ }
102
+
92
103
  function isNotFoundError (err: unknown): boolean {
93
104
  if (!err || typeof err !== 'object' || !('code' in err)) {
94
105
  return false
@@ -218,6 +229,22 @@ export class CosmosDbPartitionedStorage implements Storage {
218
229
  .read<DocumentStoreItem>()
219
230
  const documentStoreItem = readItemResponse.resource
220
231
  if (documentStoreItem) {
232
+ if (this.isExpired(documentStoreItem)) {
233
+ logger.info('Document expired, deleting from storage', {
234
+ key: redactString(k, true),
235
+ documentId: redactString(documentStoreItem.id, true),
236
+ eTag: redactString(documentStoreItem._etag, true),
237
+ expiresAt: documentStoreItem.expiresAt,
238
+ })
239
+ await ignoreCosmosErrors(
240
+ this.container.item(escapedKey, this.getPartitionKey(escapedKey)).delete({
241
+ accessCondition: { type: 'IfMatch', condition: documentStoreItem._etag }
242
+ }),
243
+ 404,
244
+ 412
245
+ )
246
+ return
247
+ }
221
248
  storeItems[documentStoreItem.realId] = documentStoreItem.document
222
249
  storeItems[documentStoreItem.realId].eTag = documentStoreItem._etag
223
250
  }
@@ -249,17 +276,18 @@ export class CosmosDbPartitionedStorage implements Storage {
249
276
  * Writes items to storage.
250
277
  * @param changes The items to write.
251
278
  */
252
- async write (changes: StoreItems): Promise<void> {
279
+ async write (changes: StoreItems, options?: StorageWriteOptions): Promise<void> {
253
280
  return trace(CosmosStorageTraceDefinitions.write, async ({ record }) => {
254
281
  if (!changes) {
255
282
  throw ExceptionHelper.generateException(
256
283
  ReferenceError,
257
284
  Errors.MissingWriteChanges
258
285
  )
259
- } else if (changes.length === 0) {
286
+ } else if (Object.keys(changes).length === 0) {
260
287
  return
261
288
  }
262
289
 
290
+ const expiresAt = getStorageWriteExpiry(options)
263
291
  record({ keyCount: Object.keys(changes).length })
264
292
 
265
293
  await this.initialize()
@@ -274,6 +302,8 @@ export class CosmosDbPartitionedStorage implements Storage {
274
302
  ),
275
303
  realId: key,
276
304
  document: change,
305
+ ttl: options?.ttl === undefined ? undefined : Math.ceil(options.ttl),
306
+ expiresAt,
277
307
  })
278
308
 
279
309
  const accessCondition =
@@ -401,6 +431,7 @@ export class CosmosDbPartitionedStorage implements Storage {
401
431
  partitionKey: {
402
432
  paths: [DocumentStoreItem.partitionKeyPath],
403
433
  },
434
+ defaultTtl: -1,
404
435
  throughput: this.cosmosDbStorageOptions.containerThroughput,
405
436
  })
406
437
  return { container: result.container, compatibilityModePartitionKey }
@@ -432,6 +463,10 @@ export class CosmosDbPartitionedStorage implements Storage {
432
463
  return this.compatibilityModePartitionKey ? undefined : key
433
464
  }
434
465
 
466
+ private isExpired (item: DocumentStoreItem): boolean {
467
+ return item.expiresAt !== undefined && item.expiresAt <= Date.now()
468
+ }
469
+
435
470
  private checkForNestingError (json: object, err: Error | Record<'message', string> | string): void {
436
471
  const ancestors = new WeakSet<object>()
437
472
 
@@ -28,6 +28,14 @@ export class DocumentStoreItem {
28
28
  * The ETag of the document.
29
29
  */
30
30
  eTag: string
31
+ /**
32
+ * Cosmos DB item-level time to live in seconds.
33
+ */
34
+ ttl?: number
35
+ /**
36
+ * SDK-managed absolute expiry timestamp in milliseconds.
37
+ */
38
+ expiresAt?: number
31
39
 
32
40
  /**
33
41
  * Gets the partition key.
@@ -40,10 +48,12 @@ export class DocumentStoreItem {
40
48
  * Initializes a new instance of the DocumentStoreItem class.
41
49
  * @param storeItem The store item to initialize.
42
50
  */
43
- constructor (storeItem: { id: string; realId: string; document: object; eTag?: string }) {
51
+ constructor (storeItem: { id: string; realId: string; document: object; eTag?: string; ttl?: number; expiresAt?: number }) {
44
52
  this.id = storeItem.id
45
53
  this.realId = storeItem.realId || ''
46
54
  this.document = storeItem.document || {}
47
55
  this.eTag = storeItem.eTag || ''
56
+ this.ttl = storeItem.ttl
57
+ this.expiresAt = storeItem.expiresAt
48
58
  }
49
59
  }