@checkstack/catalog-common 1.4.1 → 1.5.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @checkstack/catalog-common
2
2
 
3
+ ## 1.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 298bf42: ### Notification System Optimizations
8
+
9
+ **System context in notifications**: All notification senders (healthcheck, incident, maintenance, dependency) now include the affected system name in the notification title and body. Users can immediately identify which system is affected without clicking through to the detail page.
10
+
11
+ **Upstream notification deduplication**: When an upstream dependency goes down affecting multiple downstream systems, the dependency notification sidecar now sends **one personalized notification per user** instead of one notification per affected system. Each user's notification lists only the systems they are subscribed to, with a link to the upstream root cause system. This prevents notification floods for users subscribed to groups containing many dependent systems.
12
+
13
+ **New catalog endpoint**: Added `getSystemGroupIds` S2S RPC endpoint on the catalog to resolve which catalog groups contain a given system, used by the dependency plugin for efficient subscriber resolution during batched notification dispatch.
14
+
3
15
  ## 1.4.1
4
16
 
5
17
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checkstack/catalog-common",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@checkstack/common": "0.6.5",
12
- "@checkstack/auth-common": "0.6.1",
12
+ "@checkstack/auth-common": "0.6.2",
13
13
  "@checkstack/frontend-api": "0.3.9",
14
14
  "@orpc/contract": "^1.13.14",
15
15
  "zod": "^4.2.1"
@@ -266,6 +266,19 @@ export const catalogContract = {
266
266
  }),
267
267
  )
268
268
  .output(z.object({ notifiedCount: z.number() })),
269
+
270
+ /**
271
+ * Get the catalog group IDs that contain a specific system.
272
+ * Returns raw group IDs (not namespaced with notification prefix).
273
+ * Used by the dependency plugin for batched notification deduplication.
274
+ */
275
+ getSystemGroupIds: proc({
276
+ operationType: "query",
277
+ userType: "service",
278
+ access: [],
279
+ })
280
+ .input(z.object({ systemId: z.string() }))
281
+ .output(z.object({ groupIds: z.array(z.string()) })),
269
282
  };
270
283
 
271
284
  // Export contract type