@oneuptime/common 12.0.16 → 12.0.18

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 (36) hide show
  1. package/Models/DatabaseModels/DetectionRule.ts +81 -0
  2. package/Server/Infrastructure/Postgres/SchemaMigrations/1788600000000-AddDetectionRuleIncidentColumns.ts +39 -0
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  4. package/Server/Services/BillingService.ts +8 -0
  5. package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +303 -46
  6. package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +17 -0
  7. package/Tests/App/Dashboard/SecurityEventsDetectionRulesPage.test.tsx +250 -0
  8. package/Tests/App/Dashboard/SecurityEventsMonitorStepForm.test.tsx +106 -0
  9. package/Tests/App/Dashboard/SecurityEventsMonitorsPage.test.tsx +185 -0
  10. package/Tests/App/Dashboard/SecurityEventsSetupGuide.test.tsx +200 -0
  11. package/Tests/Models/DetectionRuleCreateContract.test.ts +35 -0
  12. package/Tests/Server/Services/BillingService.test.ts +20 -0
  13. package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +438 -0
  14. package/Tests/Types/Kubernetes/KubernetesObjectParsers.test.ts +794 -0
  15. package/Tests/Types/Kubernetes/KubernetesRightSizing.test.ts +53 -0
  16. package/Tests/Types/Measurement/MeasurementAggregationType.test.ts +100 -0
  17. package/Tests/Types/Monitor/MonitorStepConfigHelpers.test.ts +114 -0
  18. package/Tests/Types/Workspace/WorkspaceType.test.ts +53 -0
  19. package/Tests/Utils/Dashboard/Components/DashboardComponentDefaults.test.ts +257 -0
  20. package/Types/Billing/PayAsYouGoPricing.ts +1 -1
  21. package/Types/SecurityEvent/DetectionFindingConstants.ts +24 -0
  22. package/build/dist/Models/DatabaseModels/DetectionRule.js +81 -0
  23. package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
  24. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788600000000-AddDetectionRuleIncidentColumns.js +24 -0
  25. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788600000000-AddDetectionRuleIncidentColumns.js.map +1 -0
  26. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  27. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  28. package/build/dist/Server/Services/BillingService.js +6 -0
  29. package/build/dist/Server/Services/BillingService.js.map +1 -1
  30. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +220 -24
  31. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
  32. package/build/dist/Types/Billing/PayAsYouGoPricing.js +1 -1
  33. package/build/dist/Types/Billing/PayAsYouGoPricing.js.map +1 -1
  34. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js +18 -0
  35. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js.map +1 -0
  36. package/package.json +1 -1
@@ -9,16 +9,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import DetectionRule from "../../../Models/DatabaseModels/DetectionRule";
11
11
  import Alert from "../../../Models/DatabaseModels/Alert";
12
+ import Incident from "../../../Models/DatabaseModels/Incident";
12
13
  import LIMIT_MAX, { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
13
14
  import OneUptimeDate from "../../../Types/Date";
14
15
  import SortOrder from "../../../Types/BaseDatabase/SortOrder";
16
+ import Includes from "../../../Types/BaseDatabase/Includes";
15
17
  import OcsfSeverity, { OcsfSeverityId, } from "../../../Types/SecurityEvent/OcsfSeverity";
16
18
  import { ocsfCategoryForClassUid } from "../../../Types/SecurityEvent/OcsfEventClass";
17
19
  import { SigmaLevel } from "../../../Types/SecurityEvent/SigmaRule";
20
+ import { DETECTION_FINDING_CLASS_NAME, DETECTION_FINDING_CLASS_UID, DETECTION_GROUP_VALUE_ATTRIBUTE, DETECTION_MATCH_COUNT_ATTRIBUTE, DETECTION_RULE_ID_ATTRIBUTE, DETECTION_RULE_NAME_ATTRIBUTE, DETECTION_SIGMA_ID_ATTRIBUTE, } from "../../../Types/SecurityEvent/DetectionFindingConstants";
18
21
  import SigmaRuleParser from "../../../Utils/SecurityEvent/Sigma/SigmaRuleParser";
19
22
  import MetricSeriesFingerprint from "../../../Utils/Metrics/MetricSeriesFingerprint";
20
23
  import AlertService from "../../Services/AlertService";
21
24
  import AlertSeverityService from "../../Services/AlertSeverityService";
25
+ import IncidentService from "../../Services/IncidentService";
26
+ import IncidentSeverityService from "../../Services/IncidentSeverityService";
22
27
  import DetectionRuleService from "../../Services/DetectionRuleService";
23
28
  import OTelIngestService from "../../Services/OpenTelemetryIngestService";
24
29
  import SecurityEventService from "../../Services/SecurityEventService";
@@ -27,7 +32,6 @@ import logger from "../Logger";
27
32
  import CaptureSpan from "../Telemetry/CaptureSpan";
28
33
  import SigmaClickhouseCompiler, { buildSigmaFieldExpression, } from "./Sigma/SigmaClickhouseCompiler";
29
34
  import { buildSecurityEventDbRow } from "./SecurityEventRow";
30
- const DETECTION_FINDING_CLASS_UID = 2004;
31
35
  const DETECTIONS_SERVICE_NAME = "OneUptime Detections";
32
36
  /*
33
37
  * Cap on how far back one evaluation may scan, whatever lastEvaluatedAt
@@ -66,7 +70,9 @@ export default class DetectionRuleEvaluator {
66
70
  groupByField: true,
67
71
  shouldCreateAlert: true,
68
72
  shouldWriteDetectionFinding: true,
73
+ shouldCreateIncident: true,
69
74
  alertSeverityId: true,
75
+ incidentSeverityId: true,
70
76
  lastEvaluatedAt: true,
71
77
  },
72
78
  skip: 0,
@@ -135,6 +141,7 @@ export default class DetectionRuleEvaluator {
135
141
  return row.matchCount > 0;
136
142
  });
137
143
  let alertsCreated = 0;
144
+ let incidentsCreated = 0;
138
145
  let findingsWritten = 0;
139
146
  let totalMatches = 0;
140
147
  for (const matchGroup of matchedGroups) {
@@ -150,6 +157,21 @@ export default class DetectionRuleEvaluator {
150
157
  endTime,
151
158
  });
152
159
  }
160
+ /*
161
+ * === true, not !== false like the alert gate: incidents are the
162
+ * heavy machinery (on-call, SLAs, status pages), and the column
163
+ * defaults to false — a rule fetched without the column selected
164
+ * must read as off, never as "probably on".
165
+ */
166
+ if (rule.shouldCreateIncident === true) {
167
+ incidentsCreated = await this.openIncidentsForMatches({
168
+ rule,
169
+ parsedRule,
170
+ matchedGroups,
171
+ startTime,
172
+ endTime,
173
+ });
174
+ }
153
175
  if (rule.shouldWriteDetectionFinding !== false) {
154
176
  findingsWritten = await this.writeDetectionFindings({
155
177
  rule,
@@ -170,6 +192,7 @@ export default class DetectionRuleEvaluator {
170
192
  matchedGroups: matchedGroups.length,
171
193
  totalMatches,
172
194
  alertsCreated,
195
+ incidentsCreated,
173
196
  findingsWritten,
174
197
  error: null,
175
198
  };
@@ -195,9 +218,16 @@ export default class DetectionRuleEvaluator {
195
218
  const fingerprints = matchedGroups.map((matchGroup) => {
196
219
  return this.buildFingerprint(rule.id, matchGroup.groupValue);
197
220
  });
221
+ /*
222
+ * Scoped to THIS rule's candidate fingerprints (≤ MAX_GROUPS_PER_
223
+ * EVALUATION), not a scan of every open alert: a project with more
224
+ * open alerts than LIMIT_PER_PROJECT would otherwise age still-open
225
+ * detections out of the fetched window and re-open them every cycle.
226
+ */
198
227
  const openAlerts = await AlertService.findBy({
199
228
  query: {
200
229
  projectId,
230
+ seriesFingerprint: new Includes(fingerprints),
201
231
  currentAlertState: {
202
232
  isResolvedState: false,
203
233
  },
@@ -228,21 +258,14 @@ export default class DetectionRuleEvaluator {
228
258
  }
229
259
  const alert = new Alert();
230
260
  alert.projectId = projectId;
231
- alert.title = matchGroup.groupValue
232
- ? `[Detection] ${rule.name} — ${matchGroup.groupValue}`
233
- : `[Detection] ${rule.name}`;
234
- const descriptionParts = [];
235
- if (rule.description || parsedRule.description) {
236
- descriptionParts.push(rule.description || parsedRule.description);
237
- }
238
- descriptionParts.push(`Detection rule matched ${matchGroup.matchCount} security event${matchGroup.matchCount === 1 ? "" : "s"} between ${OneUptimeDate.getDateAsFormattedString(data.startTime)} and ${OneUptimeDate.getDateAsFormattedString(data.endTime)}.`);
239
- if (matchGroup.sampleMessage) {
240
- descriptionParts.push(`Sample event: ${matchGroup.sampleMessage}`);
241
- }
242
- if (matchGroup.sampleObservables.length > 0) {
243
- descriptionParts.push(`Observables: ${matchGroup.sampleObservables.slice(0, 20).join(", ")}`);
244
- }
245
- alert.description = descriptionParts.join("\n\n");
261
+ alert.title = this.buildMatchTitle(rule, matchGroup);
262
+ alert.description = this.buildMatchDescription({
263
+ rule,
264
+ parsedRule,
265
+ matchGroup,
266
+ startTime: data.startTime,
267
+ endTime: data.endTime,
268
+ });
246
269
  alert.alertSeverityId = alertSeverityId;
247
270
  alert.seriesFingerprint = fingerprint;
248
271
  alert.isCreatedAutomatically = true;
@@ -263,6 +286,131 @@ export default class DetectionRuleEvaluator {
263
286
  }
264
287
  return created;
265
288
  }
289
+ /*
290
+ * The incident twin of openAlertsForMatches: same fingerprint, same
291
+ * title and description, deduped against the project's UNRESOLVED
292
+ * incidents the same way alerts dedupe against open alerts. Kept as a
293
+ * separate method rather than a parameterized one because the two
294
+ * models genuinely differ where it matters — severity comes from
295
+ * IncidentSeverity, and IncidentService.create is far heavier
296
+ * (workspace channels, SLAs, on-call execution), so each create is
297
+ * wrapped so one failing project cannot sink the whole rule.
298
+ *
299
+ * Detection incidents carry no monitors, so monitor-driven auto-resolve
300
+ * never touches them: the fingerprint dedupe is the only thing keeping
301
+ * a still-firing rule from stacking incidents. Dedupe must therefore
302
+ * run BEFORE create — incident numbers are user-visible and consumed
303
+ * per create.
304
+ */
305
+ static async openIncidentsForMatches(data) {
306
+ var _a, _b;
307
+ const { rule, parsedRule, matchedGroups } = data;
308
+ const projectId = rule.projectId;
309
+ const incidentSeverityId = await this.resolveIncidentSeverityId({
310
+ projectId,
311
+ rule,
312
+ parsedRule,
313
+ });
314
+ if (!incidentSeverityId) {
315
+ logger.warn(`DetectionRuleEvaluator: project ${projectId.toString()} has no incident severities; skipping incident creation for rule ${(_a = rule.id) === null || _a === void 0 ? void 0 : _a.toString()}.`);
316
+ return 0;
317
+ }
318
+ const fingerprints = matchedGroups.map((matchGroup) => {
319
+ return this.buildFingerprint(rule.id, matchGroup.groupValue);
320
+ });
321
+ /*
322
+ * Same fingerprint-scoped dedupe as the alert path — and it matters
323
+ * more here: a missed fingerprint re-fires IncidentService.create's
324
+ * whole side-effect train and burns a user-visible incident number.
325
+ */
326
+ const openIncidents = await IncidentService.findBy({
327
+ query: {
328
+ projectId,
329
+ seriesFingerprint: new Includes(fingerprints),
330
+ currentIncidentState: {
331
+ isResolvedState: false,
332
+ },
333
+ },
334
+ select: {
335
+ _id: true,
336
+ seriesFingerprint: true,
337
+ },
338
+ skip: 0,
339
+ limit: LIMIT_PER_PROJECT,
340
+ props: {
341
+ isRoot: true,
342
+ },
343
+ });
344
+ const openFingerprints = new Set(openIncidents
345
+ .map((incident) => {
346
+ return incident.seriesFingerprint || "";
347
+ })
348
+ .filter((fingerprint) => {
349
+ return Boolean(fingerprint);
350
+ }));
351
+ let created = 0;
352
+ for (let index = 0; index < matchedGroups.length; index++) {
353
+ const matchGroup = matchedGroups[index];
354
+ const fingerprint = fingerprints[index];
355
+ if (openFingerprints.has(fingerprint)) {
356
+ continue;
357
+ }
358
+ const incident = new Incident();
359
+ incident.projectId = projectId;
360
+ incident.title = this.buildMatchTitle(rule, matchGroup);
361
+ incident.description = this.buildMatchDescription({
362
+ rule,
363
+ parsedRule,
364
+ matchGroup,
365
+ startTime: data.startTime,
366
+ endTime: data.endTime,
367
+ });
368
+ incident.incidentSeverityId = incidentSeverityId;
369
+ incident.seriesFingerprint = fingerprint;
370
+ incident.isCreatedAutomatically = true;
371
+ incident.rootCause = `Sigma detection rule "${rule.name}" matched security events.`;
372
+ try {
373
+ /*
374
+ * Per-incident try/catch, like the alert path — but here it also
375
+ * guards IncidentService.onBeforeCreate, which throws when the
376
+ * project has no "created" incident state. That cannot be
377
+ * pre-checked the way an empty severity list can.
378
+ */
379
+ await IncidentService.create({
380
+ data: incident,
381
+ props: {
382
+ isRoot: true,
383
+ },
384
+ });
385
+ created++;
386
+ }
387
+ catch (error) {
388
+ logger.error(`DetectionRuleEvaluator: failed creating incident for rule ${(_b = rule.id) === null || _b === void 0 ? void 0 : _b.toString()}:`);
389
+ logger.error(error);
390
+ }
391
+ }
392
+ return created;
393
+ }
394
+ static buildMatchTitle(rule, matchGroup) {
395
+ return matchGroup.groupValue
396
+ ? `[Detection] ${rule.name} — ${matchGroup.groupValue}`
397
+ : `[Detection] ${rule.name}`;
398
+ }
399
+ static buildMatchDescription(data) {
400
+ const { rule, parsedRule, matchGroup } = data;
401
+ const descriptionParts = [];
402
+ if (rule.description || parsedRule.description) {
403
+ descriptionParts.push(rule.description || parsedRule.description);
404
+ }
405
+ descriptionParts.push(`Detection rule matched ${matchGroup.matchCount} security event${matchGroup.matchCount === 1 ? "" : "s"} between ${OneUptimeDate.getDateAsFormattedString(data.startTime)} and ${OneUptimeDate.getDateAsFormattedString(data.endTime)}.`);
406
+ if (matchGroup.sampleMessage) {
407
+ descriptionParts.push(`Sample event: ${matchGroup.sampleMessage}`);
408
+ }
409
+ if (matchGroup.sampleObservables.length > 0) {
410
+ descriptionParts.push(`Observables: ${matchGroup.sampleObservables.slice(0, 20).join(", ")}`);
411
+ }
412
+ return descriptionParts.join("\n\n");
413
+ }
266
414
  static async writeDetectionFindings(data) {
267
415
  const { rule, parsedRule, matchedGroups } = data;
268
416
  const projectId = rule.projectId;
@@ -286,7 +434,7 @@ export default class DetectionRuleEvaluator {
286
434
  categoryUid,
287
435
  categoryName,
288
436
  classUid: DETECTION_FINDING_CLASS_UID,
289
- className: "Detection Finding",
437
+ className: DETECTION_FINDING_CLASS_NAME,
290
438
  activityName: "Create",
291
439
  severityId: OcsfSeverityId[severityName],
292
440
  severityName,
@@ -317,10 +465,10 @@ export default class DetectionRuleEvaluator {
317
465
  }),
318
466
  ]
319
467
  : matchGroup.sampleObservables,
320
- attributes: Object.assign(Object.assign({ "oneuptime.detection.rule_id": rule.id.toString(), "oneuptime.detection.rule_name": rule.name || parsedRule.title, "oneuptime.detection.match_count": String(matchGroup.matchCount) }, (matchGroup.groupValue
321
- ? { "oneuptime.detection.group_value": matchGroup.groupValue }
468
+ attributes: Object.assign(Object.assign({ [DETECTION_RULE_ID_ATTRIBUTE]: rule.id.toString(), [DETECTION_RULE_NAME_ATTRIBUTE]: rule.name || parsedRule.title, [DETECTION_MATCH_COUNT_ATTRIBUTE]: String(matchGroup.matchCount) }, (matchGroup.groupValue
469
+ ? { [DETECTION_GROUP_VALUE_ATTRIBUTE]: matchGroup.groupValue }
322
470
  : {})), (parsedRule.id
323
- ? { "oneuptime.detection.sigma_id": parsedRule.id }
471
+ ? { [DETECTION_SIGMA_ID_ATTRIBUTE]: parsedRule.id }
324
472
  : {})),
325
473
  };
326
474
  return buildSecurityEventDbRow({
@@ -363,19 +511,67 @@ export default class DetectionRuleEvaluator {
363
511
  isRoot: true,
364
512
  },
365
513
  });
514
+ return this.pickSeverityByPrecedence({
515
+ severities,
516
+ explicitSeverityId: data.rule.alertSeverityId,
517
+ level: data.parsedRule.level,
518
+ });
519
+ }
520
+ /*
521
+ * Incident severity precedence, identical in shape to the alert
522
+ * resolver: the rule's explicit incident severity (validated to belong
523
+ * to this project — IncidentService.onBeforeCreate rejects cross-project
524
+ * ids with a thrown exception, so pre-validating here keeps a stale id
525
+ * a soft fallback instead of a hard failure), else a name match on the
526
+ * Sigma level, else severity by rank. Null only when the project has no
527
+ * incident severities at all.
528
+ */
529
+ static async resolveIncidentSeverityId(data) {
530
+ const severities = await IncidentSeverityService.findBy({
531
+ query: {
532
+ projectId: data.projectId,
533
+ },
534
+ select: {
535
+ _id: true,
536
+ name: true,
537
+ },
538
+ sort: {
539
+ order: SortOrder.Ascending,
540
+ },
541
+ skip: 0,
542
+ limit: LIMIT_PER_PROJECT,
543
+ props: {
544
+ isRoot: true,
545
+ },
546
+ });
547
+ return this.pickSeverityByPrecedence({
548
+ severities,
549
+ explicitSeverityId: data.rule.incidentSeverityId,
550
+ level: data.parsedRule.level,
551
+ });
552
+ }
553
+ /*
554
+ * The precedence logic both resolvers share. Severities arrive sorted
555
+ * by order ascending — lowest order is most severe, per the model's
556
+ * own convention — so "most severe" is the first element and "least
557
+ * severe" the last. An explicit id that is not in the list (deleted, or
558
+ * belonging to another project) falls through silently rather than
559
+ * failing the rule.
560
+ */
561
+ static pickSeverityByPrecedence(data) {
562
+ const { severities, explicitSeverityId, level } = data;
366
563
  if (severities.length === 0) {
367
564
  return null;
368
565
  }
369
- if (data.rule.alertSeverityId) {
566
+ if (explicitSeverityId) {
370
567
  const explicit = severities.find((severity) => {
371
- var _a, _b;
372
- return (((_a = severity.id) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = data.rule.alertSeverityId) === null || _b === void 0 ? void 0 : _b.toString()));
568
+ var _a;
569
+ return ((_a = severity.id) === null || _a === void 0 ? void 0 : _a.toString()) === explicitSeverityId.toString();
373
570
  });
374
571
  if (explicit && explicit.id) {
375
572
  return explicit.id;
376
573
  }
377
574
  }
378
- const level = data.parsedRule.level;
379
575
  const nameMatch = severities.find((severity) => {
380
576
  return (severity.name || "").toLowerCase() === level.toLowerCase();
381
577
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DetectionRuleEvaluator.js","sourceRoot":"","sources":["../../../../../Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DetectionRuleEvaluator.js","sourceRoot":"","sources":["../../../../../Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * price quoted in the product that disagrees with the price on the invoice is
10
10
  * worse than quoting no price at all, so there is exactly one copy.
11
11
  */
12
- // Telemetry ingest - logs, traces, metrics and profiles.
12
+ // Telemetry ingest - logs, traces, metrics, profiles and security events.
13
13
  export const TELEMETRY_PRICE_IN_USD_PER_GB = 0.1;
14
14
  /*
15
15
  * Session replay recordings travel on the same ingestion key as the rest of
@@ -1 +1 @@
1
- {"version":3,"file":"PayAsYouGoPricing.js","sourceRoot":"","sources":["../../../../Types/Billing/PayAsYouGoPricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAW,GAAG,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAW,CAAC,CAAC;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,iCAAiC,GAAW,EAAE,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAW,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAW,+BAA+B,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"PayAsYouGoPricing.js","sourceRoot":"","sources":["../../../../Types/Billing/PayAsYouGoPricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,6BAA6B,GAAW,GAAG,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAW,CAAC,CAAC;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,iCAAiC,GAAW,EAAE,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAW,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAW,+BAA+B,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /*
2
+ * The contract between the detection engine and everything that watches
3
+ * its output. writeDetectionFindings (DetectionRuleEvaluator) stamps every
4
+ * finding row with these class/attribute values, and the dashboard's
5
+ * "create a monitor from this rule" flow builds its filters from the same
6
+ * constants — one source, so a renamed attribute cannot silently orphan
7
+ * every monitor built on it.
8
+ */
9
+ // OCSF Findings class the engine writes matches back as.
10
+ export const DETECTION_FINDING_CLASS_UID = 2004;
11
+ export const DETECTION_FINDING_CLASS_NAME = "Detection Finding";
12
+ // Flattened attributes carried by every Detection Finding row.
13
+ export const DETECTION_RULE_ID_ATTRIBUTE = "oneuptime.detection.rule_id";
14
+ export const DETECTION_RULE_NAME_ATTRIBUTE = "oneuptime.detection.rule_name";
15
+ export const DETECTION_MATCH_COUNT_ATTRIBUTE = "oneuptime.detection.match_count";
16
+ export const DETECTION_GROUP_VALUE_ATTRIBUTE = "oneuptime.detection.group_value";
17
+ export const DETECTION_SIGMA_ID_ATTRIBUTE = "oneuptime.detection.sigma_id";
18
+ //# sourceMappingURL=DetectionFindingConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetectionFindingConstants.js","sourceRoot":"","sources":["../../../../Types/SecurityEvent/DetectionFindingConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAW,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,4BAA4B,GAAW,mBAAmB,CAAC;AAExE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GACtC,6BAA6B,CAAC;AAChC,MAAM,CAAC,MAAM,6BAA6B,GACxC,+BAA+B,CAAC;AAClC,MAAM,CAAC,MAAM,+BAA+B,GAC1C,iCAAiC,CAAC;AACpC,MAAM,CAAC,MAAM,+BAA+B,GAC1C,iCAAiC,CAAC;AACpC,MAAM,CAAC,MAAM,4BAA4B,GACvC,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "12.0.16",
3
+ "version": "12.0.18",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",