@meyicloud/meyi-insight-server 1.0.7 → 1.1.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.
Files changed (89) hide show
  1. package/dist/constants/incidentCategories.d.ts +38 -9
  2. package/dist/constants/incidentCategories.d.ts.map +1 -1
  3. package/dist/constants/incidentCategories.js +70 -10
  4. package/dist/constants/incidentCategories.js.map +1 -1
  5. package/dist/controllers/incident.controller.d.ts.map +1 -1
  6. package/dist/controllers/incident.controller.js +23 -3
  7. package/dist/controllers/incident.controller.js.map +1 -1
  8. package/dist/database/schema.d.ts +257 -18
  9. package/dist/database/schema.d.ts.map +1 -1
  10. package/dist/database/schema.js +36 -3
  11. package/dist/database/schema.js.map +1 -1
  12. package/dist/features/incident-priority/index.d.ts +3 -0
  13. package/dist/features/incident-priority/index.d.ts.map +1 -0
  14. package/dist/features/incident-priority/index.js +3 -0
  15. package/dist/features/incident-priority/index.js.map +1 -0
  16. package/dist/features/incident-priority/priority.rules.d.ts +15 -0
  17. package/dist/features/incident-priority/priority.rules.d.ts.map +1 -0
  18. package/dist/features/incident-priority/priority.rules.js +38 -0
  19. package/dist/features/incident-priority/priority.rules.js.map +1 -0
  20. package/dist/features/incident-priority/priority.types.d.ts +13 -0
  21. package/dist/features/incident-priority/priority.types.d.ts.map +1 -0
  22. package/dist/features/incident-priority/priority.types.js +7 -0
  23. package/dist/features/incident-priority/priority.types.js.map +1 -0
  24. package/dist/features/sla/domain/sla.defaults.d.ts +12 -0
  25. package/dist/features/sla/domain/sla.defaults.d.ts.map +1 -0
  26. package/dist/features/sla/domain/sla.defaults.js +30 -0
  27. package/dist/features/sla/domain/sla.defaults.js.map +1 -0
  28. package/dist/features/sla/domain/sla.evaluator.d.ts +22 -2
  29. package/dist/features/sla/domain/sla.evaluator.d.ts.map +1 -1
  30. package/dist/features/sla/domain/sla.evaluator.js +26 -3
  31. package/dist/features/sla/domain/sla.evaluator.js.map +1 -1
  32. package/dist/features/sla/domain/sla.resolver.d.ts +42 -10
  33. package/dist/features/sla/domain/sla.resolver.d.ts.map +1 -1
  34. package/dist/features/sla/domain/sla.resolver.js +109 -15
  35. package/dist/features/sla/domain/sla.resolver.js.map +1 -1
  36. package/dist/features/sla/domain/sla.types.d.ts +54 -8
  37. package/dist/features/sla/domain/sla.types.d.ts.map +1 -1
  38. package/dist/features/sla/domain/sla.types.js +1 -0
  39. package/dist/features/sla/domain/sla.types.js.map +1 -1
  40. package/dist/features/sla/index.d.ts +2 -1
  41. package/dist/features/sla/index.d.ts.map +1 -1
  42. package/dist/features/sla/index.js +1 -0
  43. package/dist/features/sla/index.js.map +1 -1
  44. package/dist/features/sla/sla-policy.model.d.ts +30 -10
  45. package/dist/features/sla/sla-policy.model.d.ts.map +1 -1
  46. package/dist/features/sla/sla-policy.model.js +64 -28
  47. package/dist/features/sla/sla-policy.model.js.map +1 -1
  48. package/dist/features/sla/sla-policy.service.d.ts +16 -13
  49. package/dist/features/sla/sla-policy.service.d.ts.map +1 -1
  50. package/dist/features/sla/sla-policy.service.js +65 -23
  51. package/dist/features/sla/sla-policy.service.js.map +1 -1
  52. package/dist/features/sla/sla.schema.d.ts +84 -2
  53. package/dist/features/sla/sla.schema.d.ts.map +1 -1
  54. package/dist/features/sla/sla.schema.js +25 -7
  55. package/dist/features/sla/sla.schema.js.map +1 -1
  56. package/dist/index.d.ts +3 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/migrations/run.d.ts.map +1 -1
  61. package/dist/migrations/run.js +212 -5
  62. package/dist/migrations/run.js.map +1 -1
  63. package/dist/models/incident.model.d.ts +47 -2
  64. package/dist/models/incident.model.d.ts.map +1 -1
  65. package/dist/models/incident.model.js +127 -21
  66. package/dist/models/incident.model.js.map +1 -1
  67. package/dist/server.d.ts +2 -0
  68. package/dist/server.d.ts.map +1 -1
  69. package/dist/server.js +2 -1
  70. package/dist/server.js.map +1 -1
  71. package/dist/service.d.ts +28 -3
  72. package/dist/service.d.ts.map +1 -1
  73. package/dist/service.js +14 -2
  74. package/dist/service.js.map +1 -1
  75. package/dist/services/alert.service.d.ts.map +1 -1
  76. package/dist/services/alert.service.js +2 -0
  77. package/dist/services/alert.service.js.map +1 -1
  78. package/dist/services/incident.service.d.ts +50 -2
  79. package/dist/services/incident.service.d.ts.map +1 -1
  80. package/dist/services/incident.service.js +113 -17
  81. package/dist/services/incident.service.js.map +1 -1
  82. package/dist/services/retention.service.d.ts +63 -0
  83. package/dist/services/retention.service.d.ts.map +1 -0
  84. package/dist/services/retention.service.js +264 -0
  85. package/dist/services/retention.service.js.map +1 -0
  86. package/dist/services/workflow.service.d.ts.map +1 -1
  87. package/dist/services/workflow.service.js +2 -0
  88. package/dist/services/workflow.service.js.map +1 -1
  89. package/package.json +2 -1
@@ -1210,13 +1210,9 @@ export async function runMigrations(db) {
1210
1210
  "tenant_id" TEXT NOT NULL,
1211
1211
  "account_id" TEXT NOT NULL,
1212
1212
  "enabled" BOOLEAN NOT NULL DEFAULT true,
1213
- "ack_minutes" INTEGER NOT NULL,
1214
- "resolve_minutes" INTEGER NOT NULL,
1215
1213
  "updated_by" TEXT,
1216
1214
  "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1217
- "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1218
- CONSTRAINT insight_connector_sla_policies_limits_chk
1219
- CHECK (ack_minutes > 0 AND resolve_minutes >= ack_minutes AND resolve_minutes <= 43200)
1215
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW()
1220
1216
  )
1221
1217
  `));
1222
1218
  await db.execute(sql.raw(`
@@ -1226,6 +1222,116 @@ export async function runMigrations(db) {
1226
1222
  await db.execute(sql.raw(`
1227
1223
  CREATE INDEX IF NOT EXISTS insight_connector_sla_policies_tenant_idx
1228
1224
  ON "meyiconnect"."insight_connector_sla_policies" ("tenant_id")
1225
+ `));
1226
+ // ─── insight_connector_sla_targets ────────────────────────────────────────
1227
+ // Per-priority acknowledge/resolve limits for an account's SLA policy.
1228
+ await db.execute(sql.raw(`
1229
+ CREATE TABLE IF NOT EXISTS "meyiconnect"."insight_connector_sla_targets" (
1230
+ "id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
1231
+ "tenant_id" TEXT NOT NULL,
1232
+ "account_id" TEXT NOT NULL,
1233
+ "incident_group" TEXT NOT NULL DEFAULT 'default',
1234
+ "priority" TEXT NOT NULL,
1235
+ "ack_minutes" INTEGER NOT NULL,
1236
+ "resolve_minutes" INTEGER,
1237
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1238
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1239
+ CONSTRAINT insight_connector_sla_targets_priority_chk CHECK (priority IN ('P1','P2','P3','P4')),
1240
+ CONSTRAINT insight_connector_sla_targets_group_chk
1241
+ CHECK (incident_group IN ('default','operations','security','cost')),
1242
+ CONSTRAINT insight_connector_sla_targets_limits_chk
1243
+ CHECK (ack_minutes BETWEEN 1 AND 43200 AND (resolve_minutes IS NULL OR (resolve_minutes >= ack_minutes AND resolve_minutes <= 43200)))
1244
+ )
1245
+ `));
1246
+ await db.execute(sql.raw(`
1247
+ CREATE INDEX IF NOT EXISTS insight_connector_sla_targets_tenant_idx
1248
+ ON "meyiconnect"."insight_connector_sla_targets" ("tenant_id")
1249
+ `));
1250
+ // SLA per incident group (insight-server 1.1.0). Upgrades a 1.0.8 table in place:
1251
+ // existing rows become the account default ('default' group), so evaluation is unchanged.
1252
+ await db.execute(sql.raw(`
1253
+ ALTER TABLE "meyiconnect"."insight_connector_sla_policies"
1254
+ ADD COLUMN IF NOT EXISTS "applies_to" TEXT[] NOT NULL DEFAULT '{operations,security,cost}'::text[]
1255
+ `));
1256
+ await db.execute(sql.raw(`
1257
+ DO $$ BEGIN
1258
+ IF NOT EXISTS (
1259
+ SELECT 1 FROM pg_constraint
1260
+ WHERE conname = 'insight_connector_sla_policies_applies_to_chk'
1261
+ AND conrelid = '"meyiconnect"."insight_connector_sla_policies"'::regclass
1262
+ ) THEN
1263
+ ALTER TABLE "meyiconnect"."insight_connector_sla_policies" ADD CONSTRAINT insight_connector_sla_policies_applies_to_chk
1264
+ CHECK ("applies_to" <@ ARRAY['operations','security','cost']::text[]);
1265
+ END IF;
1266
+ END $$
1267
+ `));
1268
+ await db.execute(sql.raw(`
1269
+ ALTER TABLE "meyiconnect"."insight_connector_sla_targets"
1270
+ ADD COLUMN IF NOT EXISTS "incident_group" TEXT NOT NULL DEFAULT 'default'
1271
+ `));
1272
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_connector_sla_targets" ALTER COLUMN "resolve_minutes" DROP NOT NULL`));
1273
+ await db.execute(sql.raw(`
1274
+ DO $$ BEGIN
1275
+ IF NOT EXISTS (
1276
+ SELECT 1 FROM pg_constraint
1277
+ WHERE conname = 'insight_connector_sla_targets_group_chk'
1278
+ AND conrelid = '"meyiconnect"."insight_connector_sla_targets"'::regclass
1279
+ ) THEN
1280
+ ALTER TABLE "meyiconnect"."insight_connector_sla_targets" ADD CONSTRAINT insight_connector_sla_targets_group_chk
1281
+ CHECK ("incident_group" IN ('default','operations','security','cost'));
1282
+ END IF;
1283
+ -- Replace the 1.0.8 limits CHECK (resolve NOT NULL) with one that allows best effort (NULL resolve).
1284
+ IF EXISTS (
1285
+ SELECT 1 FROM pg_constraint
1286
+ WHERE conname = 'insight_connector_sla_targets_limits_chk'
1287
+ AND conrelid = '"meyiconnect"."insight_connector_sla_targets"'::regclass
1288
+ AND pg_get_constraintdef(oid) NOT ILIKE '%resolve_minutes IS NULL%'
1289
+ ) THEN
1290
+ ALTER TABLE "meyiconnect"."insight_connector_sla_targets" DROP CONSTRAINT insight_connector_sla_targets_limits_chk;
1291
+ END IF;
1292
+ IF NOT EXISTS (
1293
+ SELECT 1 FROM pg_constraint
1294
+ WHERE conname = 'insight_connector_sla_targets_limits_chk'
1295
+ AND conrelid = '"meyiconnect"."insight_connector_sla_targets"'::regclass
1296
+ ) THEN
1297
+ ALTER TABLE "meyiconnect"."insight_connector_sla_targets" ADD CONSTRAINT insight_connector_sla_targets_limits_chk
1298
+ CHECK (ack_minutes BETWEEN 1 AND 43200 AND (resolve_minutes IS NULL OR (resolve_minutes >= ack_minutes AND resolve_minutes <= 43200)));
1299
+ END IF;
1300
+ END $$
1301
+ `));
1302
+ // The 1.0.8 unique key (tenant, account, priority) would reject group overrides; replace it.
1303
+ await db.execute(sql.raw(`
1304
+ ALTER TABLE "meyiconnect"."insight_connector_sla_targets"
1305
+ DROP CONSTRAINT IF EXISTS insight_connector_sla_targets_tenant_account_priority_unique
1306
+ `));
1307
+ await db.execute(sql.raw(`DROP INDEX IF EXISTS "meyiconnect"."insight_connector_sla_targets_tenant_account_priority_unique"`));
1308
+ await db.execute(sql.raw(`
1309
+ CREATE UNIQUE INDEX IF NOT EXISTS insight_connector_sla_targets_tenant_account_group_priority_unique
1310
+ ON "meyiconnect"."insight_connector_sla_targets" ("tenant_id", "account_id", "incident_group", "priority")
1311
+ `));
1312
+ // Upgrade from the single-limit policy: copy each account's limits to all four priorities (so behaviour is
1313
+ // unchanged), then relax the old columns. They stay in place, unread, until a later release drops them.
1314
+ await db.execute(sql.raw(`
1315
+ DO $$ BEGIN
1316
+ IF EXISTS (
1317
+ SELECT 1 FROM information_schema.columns
1318
+ WHERE table_schema = 'meyiconnect' AND table_name = 'insight_connector_sla_policies' AND column_name = 'ack_minutes'
1319
+ ) THEN
1320
+ INSERT INTO "meyiconnect"."insight_connector_sla_targets" ("tenant_id", "account_id", "priority", "ack_minutes", "resolve_minutes")
1321
+ SELECT p."tenant_id", p."account_id", v."priority", p."ack_minutes", p."resolve_minutes"
1322
+ FROM "meyiconnect"."insight_connector_sla_policies" p
1323
+ CROSS JOIN (VALUES ('P1'), ('P2'), ('P3'), ('P4')) AS v("priority")
1324
+ WHERE p."ack_minutes" IS NOT NULL AND p."resolve_minutes" IS NOT NULL
1325
+ AND NOT EXISTS (
1326
+ SELECT 1 FROM "meyiconnect"."insight_connector_sla_targets" t
1327
+ WHERE t."tenant_id" = p."tenant_id" AND t."account_id" = p."account_id" AND t."priority" = v."priority"
1328
+ );
1329
+
1330
+ ALTER TABLE "meyiconnect"."insight_connector_sla_policies" ALTER COLUMN "ack_minutes" DROP NOT NULL;
1331
+ ALTER TABLE "meyiconnect"."insight_connector_sla_policies" ALTER COLUMN "resolve_minutes" DROP NOT NULL;
1332
+ ALTER TABLE "meyiconnect"."insight_connector_sla_policies" DROP CONSTRAINT IF EXISTS insight_connector_sla_policies_limits_chk;
1333
+ END IF;
1334
+ END $$
1229
1335
  `));
1230
1336
  // ─── insight_job_queue ────────────────────────────────────────────────────
1231
1337
  await db.execute(sql.raw(`
@@ -1293,5 +1399,106 @@ export async function runMigrations(db) {
1293
1399
  CREATE INDEX IF NOT EXISTS insight_incidents_tags_idx
1294
1400
  ON "meyiconnect"."insight_incidents" USING GIN ("tags");
1295
1401
  `));
1402
+ // ─── insight_incidents.priority ───────────────────────────────────────────
1403
+ // P1..P4. The default is set before the backfill so rows inserted meanwhile (e.g. by a server that
1404
+ // has not been upgraded yet) are never NULL when NOT NULL is applied.
1405
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ADD COLUMN IF NOT EXISTS "priority" TEXT`));
1406
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ALTER COLUMN "priority" SET DEFAULT 'P2'`));
1407
+ // Backfill: priority tag, else severity tag, else the linked alert's severity, else P2.
1408
+ await db.execute(sql.raw(`
1409
+ UPDATE "meyiconnect"."insight_incidents" i
1410
+ SET "priority" = COALESCE(
1411
+ CASE UPPER(BTRIM(i."tags"->>'priority'))
1412
+ WHEN 'P1' THEN 'P1' WHEN 'P2' THEN 'P2' WHEN 'P3' THEN 'P3' WHEN 'P4' THEN 'P4'
1413
+ END,
1414
+ CASE LOWER(BTRIM(i."tags"->>'severity'))
1415
+ WHEN 'critical' THEN 'P1' WHEN 'high' THEN 'P2' WHEN 'medium' THEN 'P3' WHEN 'low' THEN 'P4' WHEN 'info' THEN 'P4'
1416
+ END,
1417
+ CASE LOWER(BTRIM((SELECT a."severity" FROM "meyiconnect"."insight_alerts" a WHERE a."id" = i."source_alert_id")))
1418
+ WHEN 'critical' THEN 'P1' WHEN 'high' THEN 'P2' WHEN 'medium' THEN 'P3' WHEN 'low' THEN 'P4' WHEN 'info' THEN 'P4'
1419
+ END,
1420
+ 'P2'
1421
+ )
1422
+ WHERE i."priority" IS NULL
1423
+ `));
1424
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ALTER COLUMN "priority" SET NOT NULL`));
1425
+ await db.execute(sql.raw(`
1426
+ DO $$ BEGIN
1427
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'insight_incidents_priority_chk') THEN
1428
+ ALTER TABLE "meyiconnect"."insight_incidents" ADD CONSTRAINT insight_incidents_priority_chk
1429
+ CHECK ("priority" IN ('P1','P2','P3','P4'));
1430
+ END IF;
1431
+ END $$
1432
+ `));
1433
+ await db.execute(sql.raw(`
1434
+ CREATE INDEX IF NOT EXISTS insight_incidents_tenant_priority_idx
1435
+ ON "meyiconnect"."insight_incidents" ("tenant_id", "priority")
1436
+ `));
1437
+ // ─── insight_incidents: structured cost data (1.1.0) ──────────────────────
1438
+ // external_ref: stable producer key; savings_monthly: sort key (USD/month); savings_detail: display range.
1439
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ADD COLUMN IF NOT EXISTS "external_ref" TEXT`));
1440
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ADD COLUMN IF NOT EXISTS "savings_monthly" NUMERIC(14,2)`));
1441
+ await db.execute(sql.raw(`ALTER TABLE "meyiconnect"."insight_incidents" ADD COLUMN IF NOT EXISTS "savings_detail" JSONB`));
1442
+ // One OPEN incident per (tenant, source, external_ref). A resolved/closed one leaves room for a new incident.
1443
+ await createIndexConcurrently(db, "insight_incidents_tenant_source_ref_uq", `
1444
+ CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS insight_incidents_tenant_source_ref_uq
1445
+ ON "meyiconnect"."insight_incidents" ("tenant_id", "source", "external_ref")
1446
+ WHERE "external_ref" IS NOT NULL AND "status" NOT IN ('resolved','closed')
1447
+ `);
1448
+ // Cost list order: priority, savings, newest.
1449
+ await createIndexConcurrently(db, "insight_incidents_cost_sort_idx", `
1450
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS insight_incidents_cost_sort_idx
1451
+ ON "meyiconnect"."insight_incidents" ("tenant_id", "priority", "savings_monthly" DESC NULLS LAST, "created_at" DESC)
1452
+ `);
1453
+ // ─── Retention indexes (1.1.0) ────────────────────────────────────────────
1454
+ // Support the tenant-scoped, time-bounded batched purge. Built CONCURRENTLY so large tables stay writable.
1455
+ await createIndexConcurrently(db, "insight_alerts_tenant_created_idx", `
1456
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS insight_alerts_tenant_created_idx
1457
+ ON "meyiconnect"."insight_alerts" ("tenant_id", "created_at")
1458
+ `);
1459
+ await createIndexConcurrently(db, "insight_incidents_tenant_status_resolved_idx", `
1460
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS insight_incidents_tenant_status_resolved_idx
1461
+ ON "meyiconnect"."insight_incidents" ("tenant_id", "status", "resolved_at")
1462
+ `);
1463
+ await createIndexConcurrently(db, "insight_workflow_executions_tenant_triggered_idx", `
1464
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS insight_workflow_executions_tenant_triggered_idx
1465
+ ON "meyiconnect"."insight_workflow_executions" ("tenant_id", "triggered_at")
1466
+ `);
1467
+ }
1468
+ function rowsOf(res) {
1469
+ return res?.rows ?? (Array.isArray(res) ? res : []);
1470
+ }
1471
+ /**
1472
+ * Creates an index with CREATE INDEX CONCURRENTLY (no write lock on large tables), idempotently.
1473
+ * A previous interrupted CONCURRENTLY build leaves an INVALID index that IF NOT EXISTS would skip
1474
+ * forever, so an invalid index is dropped and rebuilt. If the host runs migrations inside a
1475
+ * transaction (where CONCURRENTLY is not allowed), it falls back to a plain CREATE INDEX.
1476
+ */
1477
+ async function createIndexConcurrently(db, name, concurrentDdl) {
1478
+ const lookup = await db.execute(sql `
1479
+ SELECT i.indisvalid AS valid
1480
+ FROM pg_class c
1481
+ JOIN pg_index i ON i.indexrelid = c.oid
1482
+ JOIN pg_namespace n ON n.oid = c.relnamespace
1483
+ WHERE n.nspname = 'meyiconnect' AND c.relname = ${name}
1484
+ `);
1485
+ const existing = rowsOf(lookup)[0];
1486
+ if (existing && (existing.valid === true || existing.valid === "t"))
1487
+ return;
1488
+ try {
1489
+ if (existing) {
1490
+ await db.execute(sql.raw(`DROP INDEX CONCURRENTLY IF EXISTS "meyiconnect"."${name}"`));
1491
+ }
1492
+ await db.execute(sql.raw(concurrentDdl));
1493
+ }
1494
+ catch (err) {
1495
+ const code = err?.code ?? err?.cause?.code;
1496
+ // 25001 = active_sql_transaction: CONCURRENTLY cannot run inside a transaction block.
1497
+ if (code !== "25001")
1498
+ throw err;
1499
+ if (existing)
1500
+ await db.execute(sql.raw(`DROP INDEX IF EXISTS "meyiconnect"."${name}"`));
1501
+ await db.execute(sql.raw(concurrentDdl.replace(/\bCONCURRENTLY\s+/i, "")));
1502
+ }
1296
1503
  }
1297
1504
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/migrations/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/migrations/run.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,21 @@
1
1
  import type { ConnectorEnvironment } from "../features/connector-environment/environment.types.js";
2
+ import { type IncidentPriority } from "../features/incident-priority/priority.types.js";
3
+ import type { IncidentSort } from "../constants/incidentCategories.js";
4
+ /** Structured savings range shown next to a cost incident. */
5
+ export interface IncidentSavingsDetail {
6
+ min?: number | null;
7
+ max?: number | null;
8
+ basis?: string | null;
9
+ method?: string | null;
10
+ currency?: string;
11
+ }
12
+ /** Value for the numeric `savings_monthly` column: a 2-dp string, or null. */
13
+ export declare function toSavingsColumn(value: unknown): string | null;
14
+ /** Normalises a savings detail object to its known keys; anything else is dropped. */
15
+ export declare function toSavingsDetail(value: unknown): IncidentSavingsDetail | null;
16
+ /** Postgres unique_violation, possibly wrapped by drizzle (DrizzleQueryError.cause). */
17
+ export declare function isUniqueViolation(err: any, constraint?: string): boolean;
18
+ export declare const EXTERNAL_REF_UNIQUE_INDEX = "insight_incidents_tenant_source_ref_uq";
2
19
  export declare class IncidentModel {
3
20
  private db;
4
21
  private tbl;
@@ -6,6 +23,11 @@ export declare class IncidentModel {
6
23
  findById(id: string, tenantId?: string): Promise<any>;
7
24
  searchUsers(search: string, limit: number, tenantId?: string): Promise<any>;
8
25
  findByIds(ids: string[], tenantId?: string): Promise<any>;
26
+ /** "source not in (...)" — a NULL source counts as operations, so it is never excluded. */
27
+ private excludeSourcesCondition;
28
+ private includeSourcesCondition;
29
+ /** ORDER BY for an allowlisted sort key. The id tiebreak keeps pagination stable. */
30
+ private orderFor;
9
31
  list(params: {
10
32
  page: number;
11
33
  limit: number;
@@ -14,9 +36,13 @@ export declare class IncidentModel {
14
36
  assigneeIds?: string[];
15
37
  statuses?: string[];
16
38
  sourceTypes?: string[];
39
+ /** Sources to exclude (operations = not security and not cost). */
40
+ excludeSourceTypes?: string[];
17
41
  accountNames?: string[];
18
42
  environment?: ConnectorEnvironment;
43
+ priorities?: IncidentPriority[];
19
44
  tenantId?: string;
45
+ sort?: IncidentSort;
20
46
  }): Promise<{
21
47
  incidents: any;
22
48
  total: number;
@@ -28,14 +54,14 @@ export declare class IncidentModel {
28
54
  * Returns only the columns needed for stat computation, optionally scoped
29
55
  * to a tenant and/or a createdAt lower bound.
30
56
  */
31
- findForAggregation(tenantId?: string, sinceIso?: string, sourceTypes?: string[], accountNames?: string[]): Promise<any>;
57
+ findForAggregation(tenantId?: string, sinceIso?: string, sourceTypes?: string[], accountNames?: string[], excludeSourceTypes?: string[]): Promise<any>;
32
58
  create(input: {
33
59
  name: string;
34
60
  source: string;
35
61
  resourceName: string;
36
62
  resourceType: string;
37
63
  downMessage?: string | null;
38
- tags?: Record<string, string>;
64
+ tags?: Record<string, unknown>;
39
65
  downTime?: string;
40
66
  alertId?: string | null;
41
67
  assigneeIds?: string[];
@@ -43,7 +69,26 @@ export declare class IncidentModel {
43
69
  description?: string | null;
44
70
  accountId?: string | null;
45
71
  accountName?: string | null;
72
+ priority?: IncidentPriority;
73
+ externalRef?: string | null;
74
+ savingsMonthly?: number | null;
75
+ savingsDetail?: IncidentSavingsDetail | null;
46
76
  }): Promise<any>;
77
+ /** The open (not resolved/closed) incident with this producer key, if any. Always tenant-scoped. */
78
+ findOpenByExternalRef(tenantId: string, source: string, externalRef: string): Promise<any>;
79
+ /**
80
+ * Refreshes an open incident from its producer. Only updates while the incident is still open, so a
81
+ * concurrent resolve wins; returns false when nothing was updated. Tags are merged, not replaced.
82
+ */
83
+ refreshOpenByExternalRef(id: string, tenantId: string, data: {
84
+ name?: string;
85
+ description?: string | null;
86
+ priority?: IncidentPriority;
87
+ savingsMonthly?: number | null;
88
+ savingsDetail?: IncidentSavingsDetail | null;
89
+ accountName?: string | null;
90
+ tags?: Record<string, unknown>;
91
+ }): Promise<boolean>;
47
92
  update(id: string, data: Record<string, any>, tenantId?: string): Promise<void>;
48
93
  delete(id: string, tenantId?: string): Promise<void>;
49
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"incident.model.d.ts","sourceRoot":"","sources":["../../src/models/incident.model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAEnG,qBAAa,aAAa;IAEtB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;gBADH,EAAE,EAAE,GAAG,EACP,GAAG,EAAE,GAAG;IAGZ,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAWtC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAgB5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;IAU1C,IAAI,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,oBAAoB,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;;;;;;IAoED;;;;OAIG;IACG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;IA8CxG,MAAM,CAAC,KAAK,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IA6DK,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,CAAC,EAAE,MAAM;IAab,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAiB3C"}
1
+ {"version":3,"file":"incident.model.d.ts","sourceRoot":"","sources":["../../src/models/incident.model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK7D;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAgB5E;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAIxE;AAED,eAAO,MAAM,yBAAyB,2CAA2C,CAAC;AAElF,qBAAa,aAAa;IAEtB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;gBADH,EAAE,EAAE,GAAG,EACP,GAAG,EAAE,GAAG;IAGZ,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAWtC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAgB5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;IAUhD,2FAA2F;IAC3F,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,uBAAuB;IAO/B,qFAAqF;IACrF,OAAO,CAAC,QAAQ;IAYV,IAAI,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,mEAAmE;QACnE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,oBAAoB,CAAC;QACnC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB;;;;;;IAmED;;;;OAIG;IACG,kBAAkB,CACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE;IA4CzB,MAAM,CAAC,KAAK,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;KAC9C;IAiED,oGAAoG;IAC9F,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAgBjF;;;OAGG;IACG,wBAAwB,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;QAC7C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GACA,OAAO,CAAC,OAAO,CAAC;IAyBb,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,QAAQ,CAAC,EAAE,MAAM;IAab,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAiB3C"}