@meyicloud/meyi-insight-server 1.0.8 → 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 (67) 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 +10 -1
  7. package/dist/controllers/incident.controller.js.map +1 -1
  8. package/dist/database/schema.d.ts +114 -1
  9. package/dist/database/schema.d.ts.map +1 -1
  10. package/dist/database/schema.js +22 -3
  11. package/dist/database/schema.js.map +1 -1
  12. package/dist/features/sla/domain/sla.defaults.d.ts +9 -5
  13. package/dist/features/sla/domain/sla.defaults.d.ts.map +1 -1
  14. package/dist/features/sla/domain/sla.defaults.js +24 -9
  15. package/dist/features/sla/domain/sla.defaults.js.map +1 -1
  16. package/dist/features/sla/domain/sla.evaluator.d.ts +22 -2
  17. package/dist/features/sla/domain/sla.evaluator.d.ts.map +1 -1
  18. package/dist/features/sla/domain/sla.evaluator.js +24 -3
  19. package/dist/features/sla/domain/sla.evaluator.js.map +1 -1
  20. package/dist/features/sla/domain/sla.resolver.d.ts +41 -9
  21. package/dist/features/sla/domain/sla.resolver.d.ts.map +1 -1
  22. package/dist/features/sla/domain/sla.resolver.js +91 -23
  23. package/dist/features/sla/domain/sla.resolver.js.map +1 -1
  24. package/dist/features/sla/domain/sla.types.d.ts +32 -11
  25. package/dist/features/sla/domain/sla.types.d.ts.map +1 -1
  26. package/dist/features/sla/domain/sla.types.js +1 -0
  27. package/dist/features/sla/domain/sla.types.js.map +1 -1
  28. package/dist/features/sla/sla-policy.model.d.ts +10 -3
  29. package/dist/features/sla/sla-policy.model.d.ts.map +1 -1
  30. package/dist/features/sla/sla-policy.model.js +23 -9
  31. package/dist/features/sla/sla-policy.model.js.map +1 -1
  32. package/dist/features/sla/sla-policy.service.d.ts +12 -3
  33. package/dist/features/sla/sla-policy.service.d.ts.map +1 -1
  34. package/dist/features/sla/sla-policy.service.js +50 -13
  35. package/dist/features/sla/sla-policy.service.js.map +1 -1
  36. package/dist/features/sla/sla.schema.d.ts +70 -5
  37. package/dist/features/sla/sla.schema.d.ts.map +1 -1
  38. package/dist/features/sla/sla.schema.js +20 -3
  39. package/dist/features/sla/sla.schema.js.map +1 -1
  40. package/dist/index.d.ts +3 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/migrations/run.d.ts.map +1 -1
  45. package/dist/migrations/run.js +137 -7
  46. package/dist/migrations/run.js.map +1 -1
  47. package/dist/models/incident.model.d.ts +44 -2
  48. package/dist/models/incident.model.d.ts.map +1 -1
  49. package/dist/models/incident.model.js +121 -21
  50. package/dist/models/incident.model.js.map +1 -1
  51. package/dist/server.d.ts +2 -0
  52. package/dist/server.d.ts.map +1 -1
  53. package/dist/server.js +2 -1
  54. package/dist/server.js.map +1 -1
  55. package/dist/service.d.ts +26 -2
  56. package/dist/service.d.ts.map +1 -1
  57. package/dist/service.js +13 -1
  58. package/dist/service.js.map +1 -1
  59. package/dist/services/incident.service.d.ts +42 -2
  60. package/dist/services/incident.service.d.ts.map +1 -1
  61. package/dist/services/incident.service.js +95 -13
  62. package/dist/services/incident.service.js.map +1 -1
  63. package/dist/services/retention.service.d.ts +63 -0
  64. package/dist/services/retention.service.d.ts.map +1 -0
  65. package/dist/services/retention.service.js +264 -0
  66. package/dist/services/retention.service.js.map +1 -0
  67. package/package.json +2 -1
@@ -1,18 +1,47 @@
1
1
  /**
2
2
  * Incident categorization and source type mappings.
3
3
  *
4
- * Maps top-level incident categories (operations, security, cost) to their
5
- * corresponding source types in the Insight engine.
4
+ * Maps top-level incident groups (operations, security, cost) to their
5
+ * corresponding source types in the Insight engine. The group of an incident
6
+ * is derived from its `source` and never stored, so it cannot drift.
6
7
  */
7
- export declare const INCIDENT_TYPE_SOURCES: Record<string, string[]>;
8
+ export type IncidentGroup = "operations" | "security" | "cost";
9
+ export declare const INCIDENT_GROUPS: readonly IncidentGroup[];
10
+ export declare const INCIDENT_TYPE_SOURCES: Record<IncidentGroup, string[]>;
11
+ /** Sources that are NOT operations. Everything else (including unknown sources) is operations. */
12
+ export declare const NON_OPERATIONS_SOURCES: readonly string[];
13
+ export declare function isIncidentGroup(value: unknown): value is IncidentGroup;
8
14
  /**
9
- * Resolves the effective source types for a given incident type / category.
15
+ * The incident group for a source. Security and cost are explicit lists; any other source
16
+ * (manual, prometheus, datadog, grafana, unknown, null) is operations, so a new source is never invisible.
17
+ */
18
+ export declare function incidentGroupForSource(source: string | null | undefined): IncidentGroup;
19
+ /** How an incident query is narrowed by source. `sourceTypes` = include list; `excludeSourceTypes` = exclude list. */
20
+ export interface IncidentSourceFilter {
21
+ sourceTypes?: string[];
22
+ excludeSourceTypes?: string[];
23
+ }
24
+ /**
25
+ * Resolves the source filter for an incident type (group) plus optional explicit source types.
10
26
  *
11
- * - If incidentType matches a configured category, returns the mapped sources.
12
- * If explicit sourceTypes are also provided, returns their intersection.
13
- * - If incidentType is provided but unrecognized (or has 0 sources), returns []
14
- * so the database query matches 0 records instead of failing open.
15
- * - If incidentType is omitted (or "all"), falls back to explicit sourceTypes or undefined.
27
+ * - security / cost: the group's source list, intersected with explicit sources when given.
28
+ * - operations: "not security and not cost" (exclude list), or the explicit sources that are operations.
29
+ * - unknown type: matches nothing (fails closed).
30
+ * - omitted / "all": explicit sources, or no filter.
31
+ */
32
+ export declare function resolveSourceFilterForIncidentType(incidentType?: string, explicitSourceTypes?: string[]): IncidentSourceFilter;
33
+ /**
34
+ * @deprecated Use `resolveSourceFilterForIncidentType`, which also covers unlisted operations sources.
35
+ * Kept for package consumers; returns only an include list (operations yields its explicit list).
16
36
  */
17
37
  export declare function resolveSourcesForIncidentType(incidentType?: string, explicitSourceTypes?: string[]): string[] | undefined;
38
+ /** Allowlisted list sort keys. The client never sends raw column names. */
39
+ export declare const INCIDENT_SORTS: readonly ["created_desc", "priority_savings"];
40
+ export type IncidentSort = (typeof INCIDENT_SORTS)[number];
41
+ export declare function isIncidentSort(value: unknown): value is IncidentSort;
42
+ /**
43
+ * The effective sort: an allowlisted explicit value, else `priority_savings` for the cost group and
44
+ * `created_desc` for everything else. Returns null for a value that is not on the allowlist.
45
+ */
46
+ export declare function resolveIncidentSort(sort: unknown, incidentType?: string): IncidentSort | null;
18
47
  //# sourceMappingURL=incidentCategories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"incidentCategories.d.ts","sourceRoot":"","sources":["../../src/constants/incidentCategories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAI1D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,CAAC,EAAE,MAAM,EACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,MAAM,EAAE,GAAG,SAAS,CAkBtB"}
1
+ {"version":3,"file":"incidentCategories.d.ts","sourceRoot":"","sources":["../../src/constants/incidentCategories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAE/D,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA+D,CAAC;AAEpH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAIjE,CAAC;AAKF,kGAAkG;AAClG,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAGlD,CAAC;AAEH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,CAKvF;AAED,sHAAsH;AACtH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,CAAC,EAAE,MAAM,EACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,oBAAoB,CAgBtB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,CAAC,EAAE,MAAM,EACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,MAAM,EAAE,GAAG,SAAS,CAkBtB;AAID,2EAA2E;AAC3E,eAAO,MAAM,cAAc,+CAAgD,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAM7F"}
@@ -1,27 +1,70 @@
1
1
  /**
2
2
  * Incident categorization and source type mappings.
3
3
  *
4
- * Maps top-level incident categories (operations, security, cost) to their
5
- * corresponding source types in the Insight engine.
4
+ * Maps top-level incident groups (operations, security, cost) to their
5
+ * corresponding source types in the Insight engine. The group of an incident
6
+ * is derived from its `source` and never stored, so it cannot drift.
6
7
  */
8
+ export const INCIDENT_GROUPS = Object.freeze(["operations", "security", "cost"]);
7
9
  export const INCIDENT_TYPE_SOURCES = {
8
10
  operations: ["cloudwatch", "cloudtrail", "pulse", "meyi_pulse"],
9
11
  security: ["guardduty", "securityhub", "waf", "iam_access_analyzer"],
10
- cost: ["cost", "cur", "cost_anomaly", "budgets", "aws_cost"],
12
+ cost: ["cost", "cur", "cost_anomaly", "budgets", "aws_cost", "cost-ai-analyser", "finops-ai"],
11
13
  };
14
+ const SECURITY_SOURCES = new Set(INCIDENT_TYPE_SOURCES.security);
15
+ const COST_SOURCES = new Set(INCIDENT_TYPE_SOURCES.cost);
16
+ /** Sources that are NOT operations. Everything else (including unknown sources) is operations. */
17
+ export const NON_OPERATIONS_SOURCES = Object.freeze([
18
+ ...INCIDENT_TYPE_SOURCES.security,
19
+ ...INCIDENT_TYPE_SOURCES.cost,
20
+ ]);
21
+ export function isIncidentGroup(value) {
22
+ return typeof value === "string" && INCIDENT_GROUPS.includes(value);
23
+ }
24
+ /**
25
+ * The incident group for a source. Security and cost are explicit lists; any other source
26
+ * (manual, prometheus, datadog, grafana, unknown, null) is operations, so a new source is never invisible.
27
+ */
28
+ export function incidentGroupForSource(source) {
29
+ const key = typeof source === "string" ? source.trim().toLowerCase() : "";
30
+ if (SECURITY_SOURCES.has(key))
31
+ return "security";
32
+ if (COST_SOURCES.has(key))
33
+ return "cost";
34
+ return "operations";
35
+ }
12
36
  /**
13
- * Resolves the effective source types for a given incident type / category.
37
+ * Resolves the source filter for an incident type (group) plus optional explicit source types.
14
38
  *
15
- * - If incidentType matches a configured category, returns the mapped sources.
16
- * If explicit sourceTypes are also provided, returns their intersection.
17
- * - If incidentType is provided but unrecognized (or has 0 sources), returns []
18
- * so the database query matches 0 records instead of failing open.
19
- * - If incidentType is omitted (or "all"), falls back to explicit sourceTypes or undefined.
39
+ * - security / cost: the group's source list, intersected with explicit sources when given.
40
+ * - operations: "not security and not cost" (exclude list), or the explicit sources that are operations.
41
+ * - unknown type: matches nothing (fails closed).
42
+ * - omitted / "all": explicit sources, or no filter.
43
+ */
44
+ export function resolveSourceFilterForIncidentType(incidentType, explicitSourceTypes) {
45
+ const normType = incidentType?.trim().toLowerCase();
46
+ const explicit = explicitSourceTypes && explicitSourceTypes.length > 0 ? explicitSourceTypes : undefined;
47
+ if (!normType || normType === "all") {
48
+ return explicit ? { sourceTypes: explicit } : {};
49
+ }
50
+ if (!isIncidentGroup(normType))
51
+ return { sourceTypes: [] };
52
+ if (explicit) {
53
+ return { sourceTypes: explicit.filter((s) => incidentGroupForSource(s) === normType) };
54
+ }
55
+ if (normType === "operations") {
56
+ return { excludeSourceTypes: [...NON_OPERATIONS_SOURCES] };
57
+ }
58
+ return { sourceTypes: [...INCIDENT_TYPE_SOURCES[normType]] };
59
+ }
60
+ /**
61
+ * @deprecated Use `resolveSourceFilterForIncidentType`, which also covers unlisted operations sources.
62
+ * Kept for package consumers; returns only an include list (operations yields its explicit list).
20
63
  */
21
64
  export function resolveSourcesForIncidentType(incidentType, explicitSourceTypes) {
22
65
  const normType = incidentType?.trim().toLowerCase();
23
66
  if (normType && normType !== "all") {
24
- const categorySources = INCIDENT_TYPE_SOURCES[normType];
67
+ const categorySources = isIncidentGroup(normType) ? INCIDENT_TYPE_SOURCES[normType] : undefined;
25
68
  if (!categorySources || categorySources.length === 0) {
26
69
  return [];
27
70
  }
@@ -33,4 +76,21 @@ export function resolveSourcesForIncidentType(incidentType, explicitSourceTypes)
33
76
  }
34
77
  return explicitSourceTypes && explicitSourceTypes.length > 0 ? explicitSourceTypes : undefined;
35
78
  }
79
+ // ─── List sort ────────────────────────────────────────────────────────────────
80
+ /** Allowlisted list sort keys. The client never sends raw column names. */
81
+ export const INCIDENT_SORTS = ["created_desc", "priority_savings"];
82
+ export function isIncidentSort(value) {
83
+ return typeof value === "string" && INCIDENT_SORTS.includes(value);
84
+ }
85
+ /**
86
+ * The effective sort: an allowlisted explicit value, else `priority_savings` for the cost group and
87
+ * `created_desc` for everything else. Returns null for a value that is not on the allowlist.
88
+ */
89
+ export function resolveIncidentSort(sort, incidentType) {
90
+ if (sort !== undefined && sort !== null && sort !== "") {
91
+ const key = String(sort).trim().toLowerCase();
92
+ return isIncidentSort(key) ? key : null;
93
+ }
94
+ return incidentType?.trim().toLowerCase() === "cost" ? "priority_savings" : "created_desc";
95
+ }
36
96
  //# sourceMappingURL=incidentCategories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incidentCategories.js","sourceRoot":"","sources":["../../src/constants/incidentCategories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC;IAC/D,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,CAAC;IACpE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,YAAqB,EACrB,mBAA8B;IAE9B,MAAM,QAAQ,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEpD,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"incidentCategories.js","sourceRoot":"","sources":["../../src/constants/incidentCategories.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"incident.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/incident.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAoBvE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe;cAE7C,OAAO,OAAO,QAAQ;mBAoDjB,OAAO,OAAO,QAAQ;mBAetB,OAAO,OAAO,QAAQ;aAiB5B,OAAO,OAAO,QAAQ;mBAiBhB,OAAO,OAAO,QAAQ;gBAmBzB,OAAO,OAAO,QAAQ;yBAcb,OAAO,OAAO,QAAQ;gBAmB/B,OAAO,OAAO,QAAQ;gBAUtB,OAAO,OAAO,QAAQ;gBAoBtB,OAAO,OAAO,QAAQ;oBAUlB,OAAO,OAAO,QAAQ;EAuB/C"}
1
+ {"version":3,"file":"incident.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/incident.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAsBvE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe;cAE7C,OAAO,OAAO,QAAQ;mBA0DjB,OAAO,OAAO,QAAQ;mBAetB,OAAO,OAAO,QAAQ;aAiB5B,OAAO,OAAO,QAAQ;mBAiBhB,OAAO,OAAO,QAAQ;gBAmBzB,OAAO,OAAO,QAAQ;yBAcb,OAAO,OAAO,QAAQ;gBAmB/B,OAAO,OAAO,QAAQ;gBAUtB,OAAO,OAAO,QAAQ;gBAoBtB,OAAO,OAAO,QAAQ;oBAUlB,OAAO,OAAO,QAAQ;EAuB/C"}
@@ -1,6 +1,8 @@
1
+ import { DUPLICATE_OPEN_INCIDENT } from "../services/incident.service.js";
1
2
  import { resolveTenantId } from "../tenancy.js";
2
3
  import { parseEnvironmentQuery } from "../features/connector-environment/environment.query.js";
3
4
  import { normalizePriority } from "../features/incident-priority/priority.rules.js";
5
+ import { resolveIncidentSort } from "../constants/incidentCategories.js";
4
6
  function actorLabel(req) {
5
7
  const u = req.user;
6
8
  if (!u)
@@ -38,6 +40,11 @@ export function createIncidentController(service) {
38
40
  const priorities = requestedPriorities.map(normalizePriority);
39
41
  if (priorities.some((p) => p === null))
40
42
  return res.status(400).json({ ok: false, error: "Invalid priority" });
43
+ // Allowlisted sort key only; absent = per-group default (cost: priority_savings, else created_desc).
44
+ const rawSort = Array.isArray(req.query.sort) ? req.query.sort[0] : req.query.sort;
45
+ const sort = resolveIncidentSort(rawSort, incidentType);
46
+ if (!sort)
47
+ return res.status(400).json({ ok: false, error: "Invalid sort" });
41
48
  const result = await service.list({
42
49
  page,
43
50
  limit,
@@ -51,6 +58,7 @@ export function createIncidentController(service) {
51
58
  environment: env.environment,
52
59
  priorities: priorities.length > 0 ? priorities : undefined,
53
60
  tenantId: resolveTenantId(req),
61
+ sort,
54
62
  });
55
63
  const incidents = result.incidents.map((inc) => ({
56
64
  ...inc,
@@ -62,6 +70,7 @@ export function createIncidentController(service) {
62
70
  total: result.total,
63
71
  page: result.page,
64
72
  limit: result.limit,
73
+ sort: result.sort,
65
74
  });
66
75
  }
67
76
  catch (e) {
@@ -190,7 +199,7 @@ export function createIncidentController(service) {
190
199
  return res.json({ ok: true });
191
200
  }
192
201
  catch (e) {
193
- const status = e.message === "Incident not found" ? 404 : 500;
202
+ const status = e.message === "Incident not found" ? 404 : e.message === DUPLICATE_OPEN_INCIDENT ? 409 : 500;
194
203
  return res.status(status).json({ ok: false, error: e.cause?.message ? `${e.message} - ${e.cause.message}` : e.message });
195
204
  }
196
205
  },
@@ -1 +1 @@
1
- {"version":3,"file":"incident.controller.js","sourceRoot":"","sources":["../../src/controllers/incident.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"incident.controller.js","sourceRoot":"","sources":["../../src/controllers/incident.controller.ts"],"names":[],"mappings":"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"}
@@ -1199,6 +1199,59 @@ export declare const insightIncidents: import("drizzle-orm/pg-core").PgTableWith
1199
1199
  identity: undefined;
1200
1200
  generated: undefined;
1201
1201
  }, {}, {}>;
1202
+ externalRef: import("drizzle-orm/pg-core").PgColumn<{
1203
+ name: "external_ref";
1204
+ tableName: "insight_incidents";
1205
+ dataType: "string";
1206
+ columnType: "PgText";
1207
+ data: string;
1208
+ driverParam: string;
1209
+ notNull: false;
1210
+ hasDefault: false;
1211
+ isPrimaryKey: false;
1212
+ isAutoincrement: false;
1213
+ hasRuntimeDefault: false;
1214
+ enumValues: [string, ...string[]];
1215
+ baseColumn: never;
1216
+ identity: undefined;
1217
+ generated: undefined;
1218
+ }, {}, {}>;
1219
+ savingsMonthly: import("drizzle-orm/pg-core").PgColumn<{
1220
+ name: "savings_monthly";
1221
+ tableName: "insight_incidents";
1222
+ dataType: "string";
1223
+ columnType: "PgNumeric";
1224
+ data: string;
1225
+ driverParam: string;
1226
+ notNull: false;
1227
+ hasDefault: false;
1228
+ isPrimaryKey: false;
1229
+ isAutoincrement: false;
1230
+ hasRuntimeDefault: false;
1231
+ enumValues: undefined;
1232
+ baseColumn: never;
1233
+ identity: undefined;
1234
+ generated: undefined;
1235
+ }, {}, {}>;
1236
+ savingsDetail: import("drizzle-orm/pg-core").PgColumn<{
1237
+ name: "savings_detail";
1238
+ tableName: "insight_incidents";
1239
+ dataType: "json";
1240
+ columnType: "PgJsonb";
1241
+ data: Record<string, unknown>;
1242
+ driverParam: unknown;
1243
+ notNull: false;
1244
+ hasDefault: false;
1245
+ isPrimaryKey: false;
1246
+ isAutoincrement: false;
1247
+ hasRuntimeDefault: false;
1248
+ enumValues: undefined;
1249
+ baseColumn: never;
1250
+ identity: undefined;
1251
+ generated: undefined;
1252
+ }, {}, {
1253
+ $type: Record<string, unknown>;
1254
+ }>;
1202
1255
  resolvedAt: import("drizzle-orm/pg-core").PgColumn<{
1203
1256
  name: "resolved_at";
1204
1257
  tableName: "insight_incidents";
@@ -5250,6 +5303,49 @@ export declare const connectorSlaPolicies: import("drizzle-orm/pg-core").PgTable
5250
5303
  identity: undefined;
5251
5304
  generated: undefined;
5252
5305
  }, {}, {}>;
5306
+ appliesTo: import("drizzle-orm/pg-core").PgColumn<{
5307
+ name: "applies_to";
5308
+ tableName: "insight_connector_sla_policies";
5309
+ dataType: "array";
5310
+ columnType: "PgArray";
5311
+ data: string[];
5312
+ driverParam: string | string[];
5313
+ notNull: true;
5314
+ hasDefault: true;
5315
+ isPrimaryKey: false;
5316
+ isAutoincrement: false;
5317
+ hasRuntimeDefault: false;
5318
+ enumValues: [string, ...string[]];
5319
+ baseColumn: import("drizzle-orm").Column<{
5320
+ name: "applies_to";
5321
+ tableName: "insight_connector_sla_policies";
5322
+ dataType: "string";
5323
+ columnType: "PgText";
5324
+ data: string;
5325
+ driverParam: string;
5326
+ notNull: false;
5327
+ hasDefault: false;
5328
+ isPrimaryKey: false;
5329
+ isAutoincrement: false;
5330
+ hasRuntimeDefault: false;
5331
+ enumValues: [string, ...string[]];
5332
+ baseColumn: never;
5333
+ identity: undefined;
5334
+ generated: undefined;
5335
+ }, {}, {}>;
5336
+ identity: undefined;
5337
+ generated: undefined;
5338
+ }, {}, {
5339
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
5340
+ name: "applies_to";
5341
+ dataType: "string";
5342
+ columnType: "PgText";
5343
+ data: string;
5344
+ enumValues: [string, ...string[]];
5345
+ driverParam: string;
5346
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
5347
+ size: undefined;
5348
+ }>;
5253
5349
  updatedBy: import("drizzle-orm/pg-core").PgColumn<{
5254
5350
  name: "updated_by";
5255
5351
  tableName: "insight_connector_sla_policies";
@@ -5359,6 +5455,23 @@ export declare const connectorSlaTargets: import("drizzle-orm/pg-core").PgTableW
5359
5455
  identity: undefined;
5360
5456
  generated: undefined;
5361
5457
  }, {}, {}>;
5458
+ incidentGroup: import("drizzle-orm/pg-core").PgColumn<{
5459
+ name: "incident_group";
5460
+ tableName: "insight_connector_sla_targets";
5461
+ dataType: "string";
5462
+ columnType: "PgText";
5463
+ data: string;
5464
+ driverParam: string;
5465
+ notNull: true;
5466
+ hasDefault: true;
5467
+ isPrimaryKey: false;
5468
+ isAutoincrement: false;
5469
+ hasRuntimeDefault: false;
5470
+ enumValues: [string, ...string[]];
5471
+ baseColumn: never;
5472
+ identity: undefined;
5473
+ generated: undefined;
5474
+ }, {}, {}>;
5362
5475
  priority: import("drizzle-orm/pg-core").PgColumn<{
5363
5476
  name: "priority";
5364
5477
  tableName: "insight_connector_sla_targets";
@@ -5400,7 +5513,7 @@ export declare const connectorSlaTargets: import("drizzle-orm/pg-core").PgTableW
5400
5513
  columnType: "PgInteger";
5401
5514
  data: number;
5402
5515
  driverParam: string | number;
5403
- notNull: true;
5516
+ notNull: false;
5404
5517
  hasDefault: false;
5405
5518
  isPrimaryKey: false;
5406
5519
  isAutoincrement: false;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { real, pgSchema, uuid, text, varchar, integer, timestamp, jsonb, index, boolean, serial, uniqueIndex } from "drizzle-orm/pg-core";
1
+ import { sql } from "drizzle-orm";
2
+ import { real, pgSchema, uuid, text, varchar, integer, numeric, timestamp, jsonb, index, boolean, serial, uniqueIndex } from "drizzle-orm/pg-core";
2
3
  import { createInsightGrafanaSourceSetups } from "../features/sources/grafana/schema.js";
3
4
  import { createInsightSourceHealth, createInsightWebhookFailureLogs, } from "../features/sources/observability/schema.js";
4
5
  import { createInsightCloudTrailSourceSetups } from "../features/sources/cloudtrail/schema.js";
@@ -103,6 +104,12 @@ export const insightIncidents = meyiconnect.table("insight_incidents", {
103
104
  accountId: text("account_id"),
104
105
  accountName: text("account_name"),
105
106
  priority: text("priority").notNull().default("P2"), // 'P1' | 'P2' | 'P3' | 'P4'
107
+ // Stable producer key (e.g. cost finding key). Unique per (tenant, source) among open incidents.
108
+ externalRef: text("external_ref"),
109
+ // Estimated monthly savings in USD (exact estimate, else lower bound). pg returns numeric as a string.
110
+ savingsMonthly: numeric("savings_monthly", { precision: 14, scale: 2 }),
111
+ // { min, max, basis, method, currency } for display.
112
+ savingsDetail: jsonb("savings_detail").$type(),
106
113
  resolvedAt: timestamp("resolved_at", { withTimezone: true }),
107
114
  status: text("status").notNull().default("open"), // 'open' | 'in_progress' | 'resolved' | 'closed'
108
115
  analysisStatus: text("analysis_status").notNull().default("pending"),
@@ -135,6 +142,11 @@ export const insightIncidents = meyiconnect.table("insight_incidents", {
135
142
  index("insight_incidents_tags_idx").using("gin", t.tags),
136
143
  index("insight_incidents_tenant_id_idx").on(t.tenantId),
137
144
  index("insight_incidents_tenant_priority_idx").on(t.tenantId, t.priority),
145
+ uniqueIndex("insight_incidents_tenant_source_ref_uq")
146
+ .on(t.tenantId, t.source, t.externalRef)
147
+ .where(sql `external_ref IS NOT NULL AND status NOT IN ('resolved','closed')`),
148
+ index("insight_incidents_cost_sort_idx").on(t.tenantId, t.priority, t.savingsMonthly.desc().nullsLast(), t.createdAt.desc()),
149
+ index("insight_incidents_tenant_status_resolved_idx").on(t.tenantId, t.status, t.resolvedAt),
138
150
  ]);
139
151
  // ─── Incident Logs ───────────────────────────────────────────────────────────
140
152
  export const incidentComments = meyiconnect.table("incident_comments", {
@@ -265,6 +277,7 @@ export const insightAlerts = meyiconnect.table("insight_alerts", {
265
277
  index("insight_alerts_source_id_idx").on(t.sourceId),
266
278
  index("insight_alerts_status_idx").on(t.status),
267
279
  index("insight_alerts_tags_idx").using("gin", t.tags),
280
+ index("insight_alerts_tenant_created_idx").on(t.tenantId, t.createdAt),
268
281
  index("insight_alerts_tenant_id_idx").on(t.tenantId),
269
282
  index("insight_alerts_pipeline_status_idx").on(t.pipelineStatus),
270
283
  ]);
@@ -326,6 +339,7 @@ export const insightWorkflowExecutions = meyiconnect.table("insight_workflow_exe
326
339
  index("insight_workflow_executions_workflow_id_idx").on(t.workflowId),
327
340
  index("insight_workflow_executions_alert_id_idx").on(t.alertId),
328
341
  index("insight_workflow_executions_status_idx").on(t.status),
342
+ index("insight_workflow_executions_tenant_triggered_idx").on(t.tenantId, t.triggeredAt),
329
343
  ]);
330
344
  // ═══════════════════════════════════════════════════════════════════════════════
331
345
  // ─── Alert Pipeline Tables (Phase 1) ─────────────────────────────────────────
@@ -508,6 +522,8 @@ export const connectorSlaPolicies = meyiconnect.table("insight_connector_sla_pol
508
522
  tenantId: text("tenant_id").notNull(),
509
523
  accountId: text("account_id").notNull(),
510
524
  enabled: boolean("enabled").notNull().default(true),
525
+ // Incident groups the account default applies to; CHECK <@ {operations,security,cost}.
526
+ appliesTo: text("applies_to").array().notNull().default(sql `'{operations,security,cost}'::text[]`),
511
527
  updatedBy: text("updated_by"),
512
528
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
513
529
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
@@ -520,13 +536,16 @@ export const connectorSlaTargets = meyiconnect.table("insight_connector_sla_targ
520
536
  id: uuid("id").primaryKey().defaultRandom(),
521
537
  tenantId: text("tenant_id").notNull(),
522
538
  accountId: text("account_id").notNull(),
539
+ // 'default' = the account default; 'operations' | 'security' | 'cost' = a group override.
540
+ incidentGroup: text("incident_group").notNull().default("default"),
523
541
  priority: text("priority").notNull(), // 'P1' | 'P2' | 'P3' | 'P4'
524
542
  ackMinutes: integer("ack_minutes").notNull(),
525
- resolveMinutes: integer("resolve_minutes").notNull(),
543
+ // NULL = best effort (no resolve limit).
544
+ resolveMinutes: integer("resolve_minutes"),
526
545
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
527
546
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
528
547
  }, (t) => [
529
- uniqueIndex("insight_connector_sla_targets_tenant_account_priority_unique").on(t.tenantId, t.accountId, t.priority),
548
+ uniqueIndex("insight_connector_sla_targets_tenant_account_group_priority_unique").on(t.tenantId, t.accountId, t.incidentGroup, t.priority),
530
549
  index("insight_connector_sla_targets_tenant_idx").on(t.tenantId),
531
550
  ]);
532
551
  // ─── Job Queue ─────────────────────────────────────────