@ossy/event-store 3.11.0 → 3.11.1

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
@@ -159,7 +159,8 @@ Recommended indexes (created at startup by `ensureEventStoreIndexes`):
159
159
 
160
160
  ```js
161
161
  // eventstore
162
- { resourceId: 1, version: 1 } // stream queries
162
+ { resourceId: 1, version: 1 } // stream queries
163
+ { type: 1, createdBy: 1, event: 1 } // per-user membership list (select-workspace)
163
164
 
164
165
  // aggregates
165
166
  { id: 1 } // snapshot get-by-id
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ossy/event-store",
3
- "version": "3.11.0",
3
+ "version": "3.11.1",
4
4
  "description": "Ossy Event Store — Aggregate, EventStore, and MongoDB client",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,5 +37,5 @@
37
37
  "files": [
38
38
  "src"
39
39
  ],
40
- "gitHead": "53ff8456920e09151c9d88df4a6c3ee958d811eb"
40
+ "gitHead": "f279de3535b6bc76631cbc6b943dae8f92a1565f"
41
41
  }
@@ -9,6 +9,8 @@ let ensured = false
9
9
  * Ensure MongoDB indexes required for aggregate/event-stream reads.
10
10
  * Without `{ resourceId, version }` on `eventstore`, every `getResourceStream`
11
11
  * call scans the full collection — sign-up and changestream rebuilds deadlock under load.
12
+ * Without `{ type, createdBy, event }` on `eventstore`, select-workspace list
13
+ * (`getAllByUserIncluded`) cannot use an index for per-user membership events.
12
14
  * Without `{ state.belongsTo, state.location }` on `aggregates`, folder list/search
13
15
  * examines the whole collection, including audit snapshots that are not in any folder.
14
16
  */
@@ -21,6 +23,10 @@ export async function ensureEventStoreIndexes () {
21
23
  { resourceId: 1, version: 1 },
22
24
  { name: 'resourceId_version', background: true },
23
25
  )
26
+ await eventstore.createIndex(
27
+ { type: 1, createdBy: 1, event: 1 },
28
+ { name: 'type_createdBy_event', background: true },
29
+ )
24
30
 
25
31
  const aggregates = Mongo.db.collection('aggregates')
26
32
  await aggregates.createIndex(