@marinoscar/platform-api 0.1.0-next.19 → 0.1.0-next.21

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 (437) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -0
  3. package/dist/alerts/alerts-admin.controller.d.ts +40 -0
  4. package/dist/alerts/alerts-admin.controller.d.ts.map +1 -0
  5. package/dist/alerts/alerts-admin.controller.js +297 -0
  6. package/dist/alerts/alerts-admin.controller.js.map +1 -0
  7. package/dist/alerts/alerts-context.service.d.ts +64 -0
  8. package/dist/alerts/alerts-context.service.d.ts.map +1 -0
  9. package/dist/alerts/alerts-context.service.js +190 -0
  10. package/dist/alerts/alerts-context.service.js.map +1 -0
  11. package/dist/alerts/alerts-dispatch.service.d.ts +53 -0
  12. package/dist/alerts/alerts-dispatch.service.d.ts.map +1 -0
  13. package/dist/alerts/alerts-dispatch.service.js +135 -0
  14. package/dist/alerts/alerts-dispatch.service.js.map +1 -0
  15. package/dist/alerts/alerts-evaluation.service.d.ts +88 -0
  16. package/dist/alerts/alerts-evaluation.service.d.ts.map +1 -0
  17. package/dist/alerts/alerts-evaluation.service.js +296 -0
  18. package/dist/alerts/alerts-evaluation.service.js.map +1 -0
  19. package/dist/alerts/alerts-event.listener.d.ts +22 -0
  20. package/dist/alerts/alerts-event.listener.d.ts.map +1 -0
  21. package/dist/alerts/alerts-event.listener.js +72 -0
  22. package/dist/alerts/alerts-event.listener.js.map +1 -0
  23. package/dist/alerts/alerts-incidents.service.d.ts +86 -0
  24. package/dist/alerts/alerts-incidents.service.d.ts.map +1 -0
  25. package/dist/alerts/alerts-incidents.service.js +144 -0
  26. package/dist/alerts/alerts-incidents.service.js.map +1 -0
  27. package/dist/alerts/alerts-rules.service.d.ts +73 -0
  28. package/dist/alerts/alerts-rules.service.d.ts.map +1 -0
  29. package/dist/alerts/alerts-rules.service.js +205 -0
  30. package/dist/alerts/alerts-rules.service.js.map +1 -0
  31. package/dist/alerts/alerts-seed.service.d.ts +25 -0
  32. package/dist/alerts/alerts-seed.service.d.ts.map +1 -0
  33. package/dist/alerts/alerts-seed.service.js +82 -0
  34. package/dist/alerts/alerts-seed.service.js.map +1 -0
  35. package/dist/alerts/alerts.constants.d.ts +53 -0
  36. package/dist/alerts/alerts.constants.d.ts.map +1 -0
  37. package/dist/alerts/alerts.constants.js +57 -0
  38. package/dist/alerts/alerts.constants.js.map +1 -0
  39. package/dist/alerts/alerts.errors.d.ts +44 -0
  40. package/dist/alerts/alerts.errors.d.ts.map +1 -0
  41. package/dist/alerts/alerts.errors.js +47 -0
  42. package/dist/alerts/alerts.errors.js.map +1 -0
  43. package/dist/alerts/alerts.metrics.d.ts +60 -0
  44. package/dist/alerts/alerts.metrics.d.ts.map +1 -0
  45. package/dist/alerts/alerts.metrics.js +135 -0
  46. package/dist/alerts/alerts.metrics.js.map +1 -0
  47. package/dist/alerts/alerts.module.d.ts +35 -0
  48. package/dist/alerts/alerts.module.d.ts.map +1 -0
  49. package/dist/alerts/alerts.module.js +96 -0
  50. package/dist/alerts/alerts.module.js.map +1 -0
  51. package/dist/alerts/alerts.options.d.ts +64 -0
  52. package/dist/alerts/alerts.options.d.ts.map +1 -0
  53. package/dist/alerts/alerts.options.js +34 -0
  54. package/dist/alerts/alerts.options.js.map +1 -0
  55. package/dist/alerts/alerts.permissions.d.ts +27 -0
  56. package/dist/alerts/alerts.permissions.d.ts.map +1 -0
  57. package/dist/alerts/alerts.permissions.js +29 -0
  58. package/dist/alerts/alerts.permissions.js.map +1 -0
  59. package/dist/alerts/alerts.types.d.ts +182 -0
  60. package/dist/alerts/alerts.types.d.ts.map +1 -0
  61. package/dist/alerts/alerts.types.js +3 -0
  62. package/dist/alerts/alerts.types.js.map +1 -0
  63. package/dist/alerts/data/alerts-db.d.ts +169 -0
  64. package/dist/alerts/data/alerts-db.d.ts.map +1 -0
  65. package/dist/alerts/data/alerts-db.js +18 -0
  66. package/dist/alerts/data/alerts-db.js.map +1 -0
  67. package/dist/alerts/dto/alerts.dto.d.ts +132 -0
  68. package/dist/alerts/dto/alerts.dto.d.ts.map +1 -0
  69. package/dist/alerts/dto/alerts.dto.js +42 -0
  70. package/dist/alerts/dto/alerts.dto.js.map +1 -0
  71. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts +23 -0
  72. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts.map +1 -0
  73. package/dist/alerts/handlers/alerts-evaluate-event.handler.js +71 -0
  74. package/dist/alerts/handlers/alerts-evaluate-event.handler.js.map +1 -0
  75. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts +25 -0
  76. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts.map +1 -0
  77. package/dist/alerts/handlers/alerts-evaluate.handler.js +54 -0
  78. package/dist/alerts/handlers/alerts-evaluate.handler.js.map +1 -0
  79. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts +29 -0
  80. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts.map +1 -0
  81. package/dist/alerts/handlers/alerts-incidents-purge.handler.js +76 -0
  82. package/dist/alerts/handlers/alerts-incidents-purge.handler.js.map +1 -0
  83. package/dist/alerts/index.d.ts +45 -0
  84. package/dist/alerts/index.d.ts.map +1 -0
  85. package/dist/alerts/index.js +108 -0
  86. package/dist/alerts/index.js.map +1 -0
  87. package/dist/alerts/kinds/alert-kind.registry.d.ts +33 -0
  88. package/dist/alerts/kinds/alert-kind.registry.d.ts.map +1 -0
  89. package/dist/alerts/kinds/alert-kind.registry.js +63 -0
  90. package/dist/alerts/kinds/alert-kind.registry.js.map +1 -0
  91. package/dist/alerts/kinds/builtin-kinds.d.ts +18 -0
  92. package/dist/alerts/kinds/builtin-kinds.d.ts.map +1 -0
  93. package/dist/alerts/kinds/builtin-kinds.js +33 -0
  94. package/dist/alerts/kinds/builtin-kinds.js.map +1 -0
  95. package/dist/alerts/kinds/metric-threshold.kind.d.ts +11 -0
  96. package/dist/alerts/kinds/metric-threshold.kind.d.ts.map +1 -0
  97. package/dist/alerts/kinds/metric-threshold.kind.js +63 -0
  98. package/dist/alerts/kinds/metric-threshold.kind.js.map +1 -0
  99. package/dist/alerts/kinds/metric-threshold.sql.d.ts +41 -0
  100. package/dist/alerts/kinds/metric-threshold.sql.d.ts.map +1 -0
  101. package/dist/alerts/kinds/metric-threshold.sql.js +124 -0
  102. package/dist/alerts/kinds/metric-threshold.sql.js.map +1 -0
  103. package/dist/alerts/kinds/node-event.kind.d.ts +44 -0
  104. package/dist/alerts/kinds/node-event.kind.d.ts.map +1 -0
  105. package/dist/alerts/kinds/node-event.kind.js +113 -0
  106. package/dist/alerts/kinds/node-event.kind.js.map +1 -0
  107. package/dist/alerts/kinds/node-offline.kind.d.ts +11 -0
  108. package/dist/alerts/kinds/node-offline.kind.d.ts.map +1 -0
  109. package/dist/alerts/kinds/node-offline.kind.js +41 -0
  110. package/dist/alerts/kinds/node-offline.kind.js.map +1 -0
  111. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts +11 -0
  112. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts.map +1 -0
  113. package/dist/alerts/kinds/telemetry-unavailable.kind.js +40 -0
  114. package/dist/alerts/kinds/telemetry-unavailable.kind.js.map +1 -0
  115. package/dist/alerts/kinds/verdict.kind.d.ts +13 -0
  116. package/dist/alerts/kinds/verdict.kind.d.ts.map +1 -0
  117. package/dist/alerts/kinds/verdict.kind.js +34 -0
  118. package/dist/alerts/kinds/verdict.kind.js.map +1 -0
  119. package/dist/alerts/notifications/alerts.notifications.d.ts +77 -0
  120. package/dist/alerts/notifications/alerts.notifications.d.ts.map +1 -0
  121. package/dist/alerts/notifications/alerts.notifications.js +145 -0
  122. package/dist/alerts/notifications/alerts.notifications.js.map +1 -0
  123. package/dist/alerts/starter-rules.d.ts +21 -0
  124. package/dist/alerts/starter-rules.d.ts.map +1 -0
  125. package/dist/alerts/starter-rules.js +141 -0
  126. package/dist/alerts/starter-rules.js.map +1 -0
  127. package/dist/alerts/state/alert-state-machine.d.ts +92 -0
  128. package/dist/alerts/state/alert-state-machine.d.ts.map +1 -0
  129. package/dist/alerts/state/alert-state-machine.js +96 -0
  130. package/dist/alerts/state/alert-state-machine.js.map +1 -0
  131. package/dist/alerts/tasks/alerts-evaluate.task.d.ts +18 -0
  132. package/dist/alerts/tasks/alerts-evaluate.task.d.ts.map +1 -0
  133. package/dist/alerts/tasks/alerts-evaluate.task.js +61 -0
  134. package/dist/alerts/tasks/alerts-evaluate.task.js.map +1 -0
  135. package/dist/alerts/tasks/alerts-purge.task.d.ts +15 -0
  136. package/dist/alerts/tasks/alerts-purge.task.d.ts.map +1 -0
  137. package/dist/alerts/tasks/alerts-purge.task.js +58 -0
  138. package/dist/alerts/tasks/alerts-purge.task.js.map +1 -0
  139. package/dist/alerts/testing/conformance.d.ts +58 -0
  140. package/dist/alerts/testing/conformance.d.ts.map +1 -0
  141. package/dist/alerts/testing/conformance.js +198 -0
  142. package/dist/alerts/testing/conformance.js.map +1 -0
  143. package/dist/alerts/testing/fakes.d.ts +80 -0
  144. package/dist/alerts/testing/fakes.d.ts.map +1 -0
  145. package/dist/alerts/testing/fakes.js +230 -0
  146. package/dist/alerts/testing/fakes.js.map +1 -0
  147. package/dist/alerts/testing/index.d.ts +5 -0
  148. package/dist/alerts/testing/index.d.ts.map +1 -0
  149. package/dist/alerts/testing/index.js +15 -0
  150. package/dist/alerts/testing/index.js.map +1 -0
  151. package/dist/core/index.d.ts +1 -0
  152. package/dist/core/index.d.ts.map +1 -1
  153. package/dist/core/index.js +8 -2
  154. package/dist/core/index.js.map +1 -1
  155. package/dist/core/net/ip-classify.d.ts +39 -0
  156. package/dist/core/net/ip-classify.d.ts.map +1 -0
  157. package/dist/core/net/ip-classify.js +196 -0
  158. package/dist/core/net/ip-classify.js.map +1 -0
  159. package/dist/credentials/testing/conformance.d.ts.map +1 -1
  160. package/dist/credentials/testing/conformance.js +1 -0
  161. package/dist/credentials/testing/conformance.js.map +1 -1
  162. package/dist/jobs/data/jobs-db.d.ts +26 -0
  163. package/dist/jobs/data/jobs-db.d.ts.map +1 -1
  164. package/dist/jobs/index.d.ts +1 -1
  165. package/dist/jobs/index.d.ts.map +1 -1
  166. package/dist/jobs/index.js.map +1 -1
  167. package/dist/manifest/platform-model-ownership.d.ts +1 -1
  168. package/dist/manifest/platform-model-ownership.d.ts.map +1 -1
  169. package/dist/manifest/platform-model-ownership.js +30 -1
  170. package/dist/manifest/platform-model-ownership.js.map +1 -1
  171. package/dist/manifest/platform-permissions.d.ts +6 -2
  172. package/dist/manifest/platform-permissions.d.ts.map +1 -1
  173. package/dist/manifest/platform-permissions.js +56 -44
  174. package/dist/manifest/platform-permissions.js.map +1 -1
  175. package/dist/manifest/platform-user-owned-models.d.ts.map +1 -1
  176. package/dist/manifest/platform-user-owned-models.js +16 -0
  177. package/dist/manifest/platform-user-owned-models.js.map +1 -1
  178. package/dist/nodes/dto/node-admin.dto.d.ts +5 -0
  179. package/dist/nodes/dto/node-admin.dto.d.ts.map +1 -1
  180. package/dist/nodes/dto/node-admin.dto.js +19 -0
  181. package/dist/nodes/dto/node-admin.dto.js.map +1 -1
  182. package/dist/nodes/dto/node-control-plane.dto.d.ts +26 -0
  183. package/dist/nodes/dto/node-control-plane.dto.d.ts.map +1 -1
  184. package/dist/nodes/dto/node-event.dto.d.ts +100 -0
  185. package/dist/nodes/dto/node-event.dto.d.ts.map +1 -0
  186. package/dist/nodes/dto/node-event.dto.js +239 -0
  187. package/dist/nodes/dto/node-event.dto.js.map +1 -0
  188. package/dist/nodes/dto/node-response.dto.d.ts +21 -0
  189. package/dist/nodes/dto/node-response.dto.d.ts.map +1 -1
  190. package/dist/nodes/dto/node-response.dto.js +42 -1
  191. package/dist/nodes/dto/node-response.dto.js.map +1 -1
  192. package/dist/nodes/events/node-event.event.d.ts +41 -0
  193. package/dist/nodes/events/node-event.event.d.ts.map +1 -0
  194. package/dist/nodes/events/node-event.event.js +69 -0
  195. package/dist/nodes/events/node-event.event.js.map +1 -0
  196. package/dist/nodes/handlers/node-events-purge.handler.d.ts +31 -0
  197. package/dist/nodes/handlers/node-events-purge.handler.d.ts.map +1 -0
  198. package/dist/nodes/handlers/node-events-purge.handler.js +91 -0
  199. package/dist/nodes/handlers/node-events-purge.handler.js.map +1 -0
  200. package/dist/nodes/index.d.ts +11 -4
  201. package/dist/nodes/index.d.ts.map +1 -1
  202. package/dist/nodes/index.js +20 -1
  203. package/dist/nodes/index.js.map +1 -1
  204. package/dist/nodes/node-events.service.d.ts +87 -0
  205. package/dist/nodes/node-events.service.d.ts.map +1 -0
  206. package/dist/nodes/node-events.service.js +271 -0
  207. package/dist/nodes/node-events.service.js.map +1 -0
  208. package/dist/nodes/node-fleet-metrics.service.d.ts +10 -1
  209. package/dist/nodes/node-fleet-metrics.service.d.ts.map +1 -1
  210. package/dist/nodes/node-fleet-metrics.service.js +31 -0
  211. package/dist/nodes/node-fleet-metrics.service.js.map +1 -1
  212. package/dist/nodes/node-lifecycle.service.d.ts +16 -1
  213. package/dist/nodes/node-lifecycle.service.d.ts.map +1 -1
  214. package/dist/nodes/node-lifecycle.service.js +7 -0
  215. package/dist/nodes/node-lifecycle.service.js.map +1 -1
  216. package/dist/nodes/nodes-admin.controller.d.ts +5 -1
  217. package/dist/nodes/nodes-admin.controller.d.ts.map +1 -1
  218. package/dist/nodes/nodes-admin.controller.js +32 -2
  219. package/dist/nodes/nodes-admin.controller.js.map +1 -1
  220. package/dist/nodes/nodes.controller.d.ts +7 -3
  221. package/dist/nodes/nodes.controller.d.ts.map +1 -1
  222. package/dist/nodes/nodes.controller.js +46 -6
  223. package/dist/nodes/nodes.controller.js.map +1 -1
  224. package/dist/nodes/nodes.metrics.d.ts +23 -1
  225. package/dist/nodes/nodes.metrics.d.ts.map +1 -1
  226. package/dist/nodes/nodes.metrics.js +80 -1
  227. package/dist/nodes/nodes.metrics.js.map +1 -1
  228. package/dist/nodes/nodes.module.d.ts.map +1 -1
  229. package/dist/nodes/nodes.module.js +6 -0
  230. package/dist/nodes/nodes.module.js.map +1 -1
  231. package/dist/nodes/nodes.options.d.ts +17 -0
  232. package/dist/nodes/nodes.options.d.ts.map +1 -1
  233. package/dist/nodes/nodes.options.js +13 -2
  234. package/dist/nodes/nodes.options.js.map +1 -1
  235. package/dist/nodes/nodes.service.d.ts +3 -1
  236. package/dist/nodes/nodes.service.d.ts.map +1 -1
  237. package/dist/nodes/nodes.service.js +14 -3
  238. package/dist/nodes/nodes.service.js.map +1 -1
  239. package/dist/nodes/tasks/node-events-purge.task.d.ts +13 -0
  240. package/dist/nodes/tasks/node-events-purge.task.d.ts.map +1 -0
  241. package/dist/nodes/tasks/node-events-purge.task.js +73 -0
  242. package/dist/nodes/tasks/node-events-purge.task.js.map +1 -0
  243. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +30 -8
  244. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -1
  245. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +12 -0
  246. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -1
  247. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +15 -0
  248. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -1
  249. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +17 -2
  250. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -1
  251. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +3 -3
  252. package/dist/telemetry/index.d.ts +4 -2
  253. package/dist/telemetry/index.d.ts.map +1 -1
  254. package/dist/telemetry/index.js +4 -1
  255. package/dist/telemetry/index.js.map +1 -1
  256. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -1
  257. package/dist/telemetry/metrics/groups/nodes.metric-group.js +77 -0
  258. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -1
  259. package/dist/telemetry/metrics/metric-verdict.d.ts +1 -1
  260. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -1
  261. package/dist/telemetry/metrics/metric-verdict.js +15 -1
  262. package/dist/telemetry/metrics/metric-verdict.js.map +1 -1
  263. package/dist/telemetry/query/telemetry-query-facade.d.ts +1 -1
  264. package/dist/telemetry/query/telemetry-query-facade.d.ts.map +1 -1
  265. package/dist/telemetry/query/telemetry-query-facade.js.map +1 -1
  266. package/dist/telemetry/query/telemetry-query.service.d.ts +2 -2
  267. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -1
  268. package/dist/telemetry/query/telemetry-query.service.js +4 -0
  269. package/dist/telemetry/query/telemetry-query.service.js.map +1 -1
  270. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +1 -1
  271. package/dist/telemetry/telemetry-support-bundle.section.d.ts +4 -4
  272. package/dist/telemetry/telemetry.module.d.ts.map +1 -1
  273. package/dist/telemetry/telemetry.module.js +1 -0
  274. package/dist/telemetry/telemetry.module.js.map +1 -1
  275. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -1
  276. package/dist/telemetry/testing/metric-schema.fixture.js +56 -0
  277. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -1
  278. package/dist/user-data/platform-user-data.d.ts.map +1 -1
  279. package/dist/user-data/platform-user-data.js +2 -0
  280. package/dist/user-data/platform-user-data.js.map +1 -1
  281. package/dist/webhooks/data/webhooks-db.d.ts +176 -0
  282. package/dist/webhooks/data/webhooks-db.d.ts.map +1 -0
  283. package/dist/webhooks/data/webhooks-db.js +14 -0
  284. package/dist/webhooks/data/webhooks-db.js.map +1 -0
  285. package/dist/webhooks/egress/egress-guard.d.ts +99 -0
  286. package/dist/webhooks/egress/egress-guard.d.ts.map +1 -0
  287. package/dist/webhooks/egress/egress-guard.js +172 -0
  288. package/dist/webhooks/egress/egress-guard.js.map +1 -0
  289. package/dist/webhooks/egress/transport.d.ts +58 -0
  290. package/dist/webhooks/egress/transport.d.ts.map +1 -0
  291. package/dist/webhooks/egress/transport.js +115 -0
  292. package/dist/webhooks/egress/transport.js.map +1 -0
  293. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts +76 -0
  294. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts.map +1 -0
  295. package/dist/webhooks/handlers/webhook-deliver.handler.js +333 -0
  296. package/dist/webhooks/handlers/webhook-deliver.handler.js.map +1 -0
  297. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts +28 -0
  298. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts.map +1 -0
  299. package/dist/webhooks/handlers/webhook-fanout.handler.js +73 -0
  300. package/dist/webhooks/handlers/webhook-fanout.handler.js.map +1 -0
  301. package/dist/webhooks/handlers/webhook-purge.handler.d.ts +33 -0
  302. package/dist/webhooks/handlers/webhook-purge.handler.d.ts.map +1 -0
  303. package/dist/webhooks/handlers/webhook-purge.handler.js +77 -0
  304. package/dist/webhooks/handlers/webhook-purge.handler.js.map +1 -0
  305. package/dist/webhooks/http/admin-webhooks.controller.d.ts +36 -0
  306. package/dist/webhooks/http/admin-webhooks.controller.d.ts.map +1 -0
  307. package/dist/webhooks/http/admin-webhooks.controller.js +250 -0
  308. package/dist/webhooks/http/admin-webhooks.controller.js.map +1 -0
  309. package/dist/webhooks/http/org-webhooks.controller.d.ts +36 -0
  310. package/dist/webhooks/http/org-webhooks.controller.d.ts.map +1 -0
  311. package/dist/webhooks/http/org-webhooks.controller.js +249 -0
  312. package/dist/webhooks/http/org-webhooks.controller.js.map +1 -0
  313. package/dist/webhooks/http/scope-context.d.ts +17 -0
  314. package/dist/webhooks/http/scope-context.d.ts.map +1 -0
  315. package/dist/webhooks/http/scope-context.js +28 -0
  316. package/dist/webhooks/http/scope-context.js.map +1 -0
  317. package/dist/webhooks/http/webhook.dto.d.ts +174 -0
  318. package/dist/webhooks/http/webhook.dto.d.ts.map +1 -0
  319. package/dist/webhooks/http/webhook.dto.js +58 -0
  320. package/dist/webhooks/http/webhook.dto.js.map +1 -0
  321. package/dist/webhooks/http/webhooks.controller.d.ts +36 -0
  322. package/dist/webhooks/http/webhooks.controller.d.ts.map +1 -0
  323. package/dist/webhooks/http/webhooks.controller.js +243 -0
  324. package/dist/webhooks/http/webhooks.controller.js.map +1 -0
  325. package/dist/webhooks/index.d.ts +43 -0
  326. package/dist/webhooks/index.d.ts.map +1 -0
  327. package/dist/webhooks/index.js +147 -0
  328. package/dist/webhooks/index.js.map +1 -0
  329. package/dist/webhooks/listeners/webhook-event.listeners.d.ts +23 -0
  330. package/dist/webhooks/listeners/webhook-event.listeners.d.ts.map +1 -0
  331. package/dist/webhooks/listeners/webhook-event.listeners.js +120 -0
  332. package/dist/webhooks/listeners/webhook-event.listeners.js.map +1 -0
  333. package/dist/webhooks/notifications/webhook-notification.channel.d.ts +31 -0
  334. package/dist/webhooks/notifications/webhook-notification.channel.d.ts.map +1 -0
  335. package/dist/webhooks/notifications/webhook-notification.channel.js +127 -0
  336. package/dist/webhooks/notifications/webhook-notification.channel.js.map +1 -0
  337. package/dist/webhooks/notifications/webhook-notifications.d.ts +98 -0
  338. package/dist/webhooks/notifications/webhook-notifications.d.ts.map +1 -0
  339. package/dist/webhooks/notifications/webhook-notifications.js +150 -0
  340. package/dist/webhooks/notifications/webhook-notifications.js.map +1 -0
  341. package/dist/webhooks/ports.d.ts +29 -0
  342. package/dist/webhooks/ports.d.ts.map +1 -0
  343. package/dist/webhooks/ports.js +23 -0
  344. package/dist/webhooks/ports.js.map +1 -0
  345. package/dist/webhooks/registry/builtin-events.d.ts +57 -0
  346. package/dist/webhooks/registry/builtin-events.d.ts.map +1 -0
  347. package/dist/webhooks/registry/builtin-events.js +113 -0
  348. package/dist/webhooks/registry/builtin-events.js.map +1 -0
  349. package/dist/webhooks/registry/webhook-catalog.d.ts +63 -0
  350. package/dist/webhooks/registry/webhook-catalog.d.ts.map +1 -0
  351. package/dist/webhooks/registry/webhook-catalog.js +123 -0
  352. package/dist/webhooks/registry/webhook-catalog.js.map +1 -0
  353. package/dist/webhooks/registry/webhook-event.registry.d.ts +116 -0
  354. package/dist/webhooks/registry/webhook-event.registry.d.ts.map +1 -0
  355. package/dist/webhooks/registry/webhook-event.registry.js +152 -0
  356. package/dist/webhooks/registry/webhook-event.registry.js.map +1 -0
  357. package/dist/webhooks/signing.d.ts +31 -0
  358. package/dist/webhooks/signing.d.ts.map +1 -0
  359. package/dist/webhooks/signing.js +48 -0
  360. package/dist/webhooks/signing.js.map +1 -0
  361. package/dist/webhooks/tasks/webhook-purge.task.d.ts +17 -0
  362. package/dist/webhooks/tasks/webhook-purge.task.d.ts.map +1 -0
  363. package/dist/webhooks/tasks/webhook-purge.task.js +68 -0
  364. package/dist/webhooks/tasks/webhook-purge.task.js.map +1 -0
  365. package/dist/webhooks/testing/conformance.d.ts +61 -0
  366. package/dist/webhooks/testing/conformance.d.ts.map +1 -0
  367. package/dist/webhooks/testing/conformance.js +316 -0
  368. package/dist/webhooks/testing/conformance.js.map +1 -0
  369. package/dist/webhooks/testing/in-memory.d.ts +156 -0
  370. package/dist/webhooks/testing/in-memory.d.ts.map +1 -0
  371. package/dist/webhooks/testing/in-memory.js +323 -0
  372. package/dist/webhooks/testing/in-memory.js.map +1 -0
  373. package/dist/webhooks/testing/index.d.ts +7 -0
  374. package/dist/webhooks/testing/index.d.ts.map +1 -0
  375. package/dist/webhooks/testing/index.js +25 -0
  376. package/dist/webhooks/testing/index.js.map +1 -0
  377. package/dist/webhooks/testing/kit.d.ts +86 -0
  378. package/dist/webhooks/testing/kit.d.ts.map +1 -0
  379. package/dist/webhooks/testing/kit.js +113 -0
  380. package/dist/webhooks/testing/kit.js.map +1 -0
  381. package/dist/webhooks/webhook-endpoints.service.d.ts +142 -0
  382. package/dist/webhooks/webhook-endpoints.service.d.ts.map +1 -0
  383. package/dist/webhooks/webhook-endpoints.service.js +366 -0
  384. package/dist/webhooks/webhook-endpoints.service.js.map +1 -0
  385. package/dist/webhooks/webhook-envelope.d.ts +36 -0
  386. package/dist/webhooks/webhook-envelope.d.ts.map +1 -0
  387. package/dist/webhooks/webhook-envelope.js +46 -0
  388. package/dist/webhooks/webhook-envelope.js.map +1 -0
  389. package/dist/webhooks/webhook-secrets.service.d.ts +49 -0
  390. package/dist/webhooks/webhook-secrets.service.d.ts.map +1 -0
  391. package/dist/webhooks/webhook-secrets.service.js +118 -0
  392. package/dist/webhooks/webhook-secrets.service.js.map +1 -0
  393. package/dist/webhooks/webhook-views.d.ts +34 -0
  394. package/dist/webhooks/webhook-views.d.ts.map +1 -0
  395. package/dist/webhooks/webhook-views.js +83 -0
  396. package/dist/webhooks/webhook-views.js.map +1 -0
  397. package/dist/webhooks/webhooks.access.d.ts +28 -0
  398. package/dist/webhooks/webhooks.access.d.ts.map +1 -0
  399. package/dist/webhooks/webhooks.access.js +55 -0
  400. package/dist/webhooks/webhooks.access.js.map +1 -0
  401. package/dist/webhooks/webhooks.constants.d.ts +73 -0
  402. package/dist/webhooks/webhooks.constants.d.ts.map +1 -0
  403. package/dist/webhooks/webhooks.constants.js +100 -0
  404. package/dist/webhooks/webhooks.constants.js.map +1 -0
  405. package/dist/webhooks/webhooks.credentials.d.ts +28 -0
  406. package/dist/webhooks/webhooks.credentials.d.ts.map +1 -0
  407. package/dist/webhooks/webhooks.credentials.js +51 -0
  408. package/dist/webhooks/webhooks.credentials.js.map +1 -0
  409. package/dist/webhooks/webhooks.errors.d.ts +25 -0
  410. package/dist/webhooks/webhooks.errors.d.ts.map +1 -0
  411. package/dist/webhooks/webhooks.errors.js +65 -0
  412. package/dist/webhooks/webhooks.errors.js.map +1 -0
  413. package/dist/webhooks/webhooks.metrics.d.ts +24 -0
  414. package/dist/webhooks/webhooks.metrics.d.ts.map +1 -0
  415. package/dist/webhooks/webhooks.metrics.js +70 -0
  416. package/dist/webhooks/webhooks.metrics.js.map +1 -0
  417. package/dist/webhooks/webhooks.module.d.ts +29 -0
  418. package/dist/webhooks/webhooks.module.d.ts.map +1 -0
  419. package/dist/webhooks/webhooks.module.js +108 -0
  420. package/dist/webhooks/webhooks.module.js.map +1 -0
  421. package/dist/webhooks/webhooks.options.d.ts +119 -0
  422. package/dist/webhooks/webhooks.options.d.ts.map +1 -0
  423. package/dist/webhooks/webhooks.options.js +80 -0
  424. package/dist/webhooks/webhooks.options.js.map +1 -0
  425. package/dist/webhooks/webhooks.permissions.d.ts +47 -0
  426. package/dist/webhooks/webhooks.permissions.d.ts.map +1 -0
  427. package/dist/webhooks/webhooks.permissions.js +83 -0
  428. package/dist/webhooks/webhooks.permissions.js.map +1 -0
  429. package/dist/webhooks/webhooks.repository.d.ts +162 -0
  430. package/dist/webhooks/webhooks.repository.d.ts.map +1 -0
  431. package/dist/webhooks/webhooks.repository.js +246 -0
  432. package/dist/webhooks/webhooks.repository.js.map +1 -0
  433. package/dist/webhooks/webhooks.service.d.ts +91 -0
  434. package/dist/webhooks/webhooks.service.d.ts.map +1 -0
  435. package/dist/webhooks/webhooks.service.js +216 -0
  436. package/dist/webhooks/webhooks.service.js.map +1 -0
  437. package/package.json +19 -3
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var AlertsEvaluateEventHandler_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.AlertsEvaluateEventHandler = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const index_1 = require("../../jobs/index");
16
+ const alerts_evaluation_service_1 = require("../alerts-evaluation.service");
17
+ const alerts_constants_1 = require("../alerts.constants");
18
+ function toPayload(raw) {
19
+ if (!raw || typeof raw !== 'object')
20
+ return null;
21
+ const p = raw;
22
+ if (typeof p.nodeId !== 'string' || typeof p.type !== 'string')
23
+ return null;
24
+ return {
25
+ nodeId: p.nodeId,
26
+ nodeName: typeof p.nodeName === 'string' ? p.nodeName : p.nodeId,
27
+ type: p.type,
28
+ severity: typeof p.severity === 'string' ? p.severity : 'info',
29
+ attrs: (p.attrs && typeof p.attrs === 'object' ? p.attrs : {}),
30
+ occurredAt: typeof p.occurredAt === 'string' ? p.occurredAt : new Date().toISOString(),
31
+ };
32
+ }
33
+ /**
34
+ * `alerts.evaluate_event`: evaluates only the event-driven rules the reported
35
+ * node event can change. SERVER-ONLY.
36
+ *
37
+ * @stability experimental
38
+ */
39
+ let AlertsEvaluateEventHandler = AlertsEvaluateEventHandler_1 = class AlertsEvaluateEventHandler {
40
+ registry;
41
+ evaluation;
42
+ logger = new common_1.Logger(AlertsEvaluateEventHandler_1.name);
43
+ type = alerts_constants_1.ALERTS_EVALUATE_EVENT_TYPE;
44
+ label = 'Alert evaluation (node event)';
45
+ profile = { maxRuntimeMs: 60_000, maxAttempts: 1 };
46
+ constructor(registry, evaluation) {
47
+ this.registry = registry;
48
+ this.evaluation = evaluation;
49
+ }
50
+ /** Registers the handler with the job registry. */
51
+ onModuleInit() {
52
+ this.registry.register(this);
53
+ }
54
+ /** A payload that is not a node event is dropped (nothing to evaluate); a database error throws. */
55
+ async process(job) {
56
+ const event = toPayload(job.payload);
57
+ if (!event) {
58
+ this.logger.warn(`Job ${job.id} carries no node event; nothing to evaluate`);
59
+ return;
60
+ }
61
+ const outcomes = await this.evaluation.evaluateEnabled({ event });
62
+ this.logger.log(`Evaluated ${outcomes.length} rule(s) for node event ${event.type} (job ${job.id})`);
63
+ }
64
+ };
65
+ exports.AlertsEvaluateEventHandler = AlertsEvaluateEventHandler;
66
+ exports.AlertsEvaluateEventHandler = AlertsEvaluateEventHandler = AlertsEvaluateEventHandler_1 = __decorate([
67
+ (0, common_1.Injectable)(),
68
+ __metadata("design:paramtypes", [index_1.JobHandlerRegistry,
69
+ alerts_evaluation_service_1.AlertsEvaluationService])
70
+ ], AlertsEvaluateEventHandler);
71
+ //# sourceMappingURL=alerts-evaluate-event.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-evaluate-event.handler.js","sourceRoot":"","sources":["../../../src/alerts/handlers/alerts-evaluate-event.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAElE,4CAA2G;AAC3G,4EAAuE;AACvE,0DAAiE;AAGjE,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QAChE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QAC9D,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAmC;QAChG,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AAEI,IAAM,0BAA0B,kCAAhC,MAAM,0BAA0B;IAOlB;IACA;IAPF,MAAM,GAAG,IAAI,eAAM,CAAC,4BAA0B,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,GAAG,6CAA0B,CAAC;IAClC,KAAK,GAAG,+BAA+B,CAAC;IACxC,OAAO,GAAwB,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAEjF,YACmB,QAA4B,EAC5B,UAAmC;QADnC,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,eAAU,GAAV,UAAU,CAAyB;IACnD,CAAC;IAEJ,mDAAmD;IACnD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,6CAA6C,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,2BAA2B,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvG,CAAC;CACF,CAAA;AA1BY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAQkB,0BAAkB;QAChB,mDAAuB;GAR3C,0BAA0B,CA0BtC"}
@@ -0,0 +1,25 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { JobHandlerRegistry, type Job, type JobExecutionProfile, type JobHandler } from '../../jobs/index';
3
+ import { AlertsEvaluationService } from '../alerts-evaluation.service';
4
+ /**
5
+ * `alerts.evaluate`: evaluates every enabled rule. SERVER-ONLY (no
6
+ * `nodeResultSchema`): it reads the telemetry store and the database and
7
+ * dispatches notifications, none of which a remote node may do. A rule's
8
+ * failure is recorded on the rule and never fails the job.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare class AlertsEvaluateHandler implements JobHandler, OnModuleInit {
13
+ private readonly registry;
14
+ private readonly evaluation;
15
+ private readonly logger;
16
+ readonly type = "alerts.evaluate";
17
+ readonly label = "Alert evaluation";
18
+ readonly profile: JobExecutionProfile;
19
+ constructor(registry: JobHandlerRegistry, evaluation: AlertsEvaluationService);
20
+ /** Registers the handler with the job registry. */
21
+ onModuleInit(): void;
22
+ /** Throws only when the rule list cannot be read (a database error). */
23
+ process(job: Job): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=alerts-evaluate.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-evaluate.handler.d.ts","sourceRoot":"","sources":["../../../src/alerts/handlers/alerts-evaluate.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE;;;;;;;GAOG;AACH,qBACa,qBAAsB,YAAW,UAAU,EAAE,YAAY;IAOlE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,QAAQ,CAAC,IAAI,qBAAwB;IACrC,QAAQ,CAAC,KAAK,sBAAsB;IACpC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAA6C;gBAG/D,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,uBAAuB;IAGtD,mDAAmD;IACnD,YAAY,IAAI,IAAI;IAIpB,wEAAwE;IAClE,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAKvC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var AlertsEvaluateHandler_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.AlertsEvaluateHandler = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const index_1 = require("../../jobs/index");
16
+ const alerts_evaluation_service_1 = require("../alerts-evaluation.service");
17
+ const alerts_constants_1 = require("../alerts.constants");
18
+ /**
19
+ * `alerts.evaluate`: evaluates every enabled rule. SERVER-ONLY (no
20
+ * `nodeResultSchema`): it reads the telemetry store and the database and
21
+ * dispatches notifications, none of which a remote node may do. A rule's
22
+ * failure is recorded on the rule and never fails the job.
23
+ *
24
+ * @stability experimental
25
+ */
26
+ let AlertsEvaluateHandler = AlertsEvaluateHandler_1 = class AlertsEvaluateHandler {
27
+ registry;
28
+ evaluation;
29
+ logger = new common_1.Logger(AlertsEvaluateHandler_1.name);
30
+ type = alerts_constants_1.ALERTS_EVALUATE_TYPE;
31
+ label = 'Alert evaluation';
32
+ profile = { maxRuntimeMs: 120_000, maxAttempts: 1 };
33
+ constructor(registry, evaluation) {
34
+ this.registry = registry;
35
+ this.evaluation = evaluation;
36
+ }
37
+ /** Registers the handler with the job registry. */
38
+ onModuleInit() {
39
+ this.registry.register(this);
40
+ }
41
+ /** Throws only when the rule list cannot be read (a database error). */
42
+ async process(job) {
43
+ const outcomes = await this.evaluation.evaluateEnabled();
44
+ const failed = outcomes.filter((o) => o.status === 'error').length;
45
+ this.logger.log(`Evaluated ${outcomes.length} alert rule(s), ${failed} failed (job ${job.id})`);
46
+ }
47
+ };
48
+ exports.AlertsEvaluateHandler = AlertsEvaluateHandler;
49
+ exports.AlertsEvaluateHandler = AlertsEvaluateHandler = AlertsEvaluateHandler_1 = __decorate([
50
+ (0, common_1.Injectable)(),
51
+ __metadata("design:paramtypes", [index_1.JobHandlerRegistry,
52
+ alerts_evaluation_service_1.AlertsEvaluationService])
53
+ ], AlertsEvaluateHandler);
54
+ //# sourceMappingURL=alerts-evaluate.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-evaluate.handler.js","sourceRoot":"","sources":["../../../src/alerts/handlers/alerts-evaluate.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAElE,4CAA2G;AAC3G,4EAAuE;AACvE,0DAA2D;AAE3D;;;;;;;GAOG;AAEI,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAOb;IACA;IAPF,MAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,GAAG,uCAAoB,CAAC;IAC5B,KAAK,GAAG,kBAAkB,CAAC;IAC3B,OAAO,GAAwB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAElF,YACmB,QAA4B,EAC5B,UAAmC;QADnC,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,eAAU,GAAV,UAAU,CAAyB;IACnD,CAAC;IAEJ,mDAAmD;IACnD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,mBAAmB,MAAM,gBAAgB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAClG,CAAC;CACF,CAAA;AAtBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAQkB,0BAAkB;QAChB,mDAAuB;GAR3C,qBAAqB,CAsBjC"}
@@ -0,0 +1,29 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { JobHandlerRegistry, type Job, type JobExecutionProfile, type JobHandler } from '../../jobs/index';
3
+ import type { ResolvedAlertsModuleOptions } from '../alerts.options';
4
+ import type { AlertsPrisma } from '../data/alerts-db';
5
+ /** Rows deleted per statement. */
6
+ export declare const ALERTS_PURGE_BATCH = 1000;
7
+ /** Safety stop on the batch loop. */
8
+ export declare const ALERTS_PURGE_MAX_BATCHES = 500;
9
+ /**
10
+ * `alerts.incidents_purge`: deletes RESOLVED incidents older than the
11
+ * retention. Open incidents are never touched. SERVER-ONLY.
12
+ *
13
+ * @stability experimental
14
+ */
15
+ export declare class AlertsIncidentsPurgeHandler implements JobHandler, OnModuleInit {
16
+ private readonly registry;
17
+ private readonly prisma;
18
+ private readonly options;
19
+ private readonly logger;
20
+ readonly type = "alerts.incidents_purge";
21
+ readonly label = "Alert incident purge";
22
+ readonly profile: JobExecutionProfile;
23
+ constructor(registry: JobHandlerRegistry, prisma: AlertsPrisma, options: ResolvedAlertsModuleOptions);
24
+ /** Registers the handler with the job registry. */
25
+ onModuleInit(): void;
26
+ /** Throws on a database error so the queue retries. */
27
+ process(job: Job): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=alerts-incidents-purge.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-incidents-purge.handler.d.ts","sourceRoot":"","sources":["../../../src/alerts/handlers/alerts-incidents-purge.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,qCAAqC;AACrC,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;;;;GAKG;AACH,qBACa,2BAA4B,YAAW,UAAU,EAAE,YAAY;IAOxE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACA,OAAO,CAAC,QAAQ,CAAC,MAAM;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARlD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;IACvE,QAAQ,CAAC,IAAI,4BAA+B;IAC5C,QAAQ,CAAC,KAAK,0BAA0B;IACxC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAiD;gBAGnE,QAAQ,EAAE,kBAAkB,EACH,MAAM,EAAE,YAAY,EACrB,OAAO,EAAE,2BAA2B;IAG/E,mDAAmD;IACnD,YAAY,IAAI,IAAI;IAIpB,uDAAuD;IACjD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBvC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var AlertsIncidentsPurgeHandler_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AlertsIncidentsPurgeHandler = exports.ALERTS_PURGE_MAX_BATCHES = exports.ALERTS_PURGE_BATCH = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const index_1 = require("../../core/index");
19
+ const index_2 = require("../../jobs/index");
20
+ const alerts_constants_1 = require("../alerts.constants");
21
+ /** Rows deleted per statement. */
22
+ exports.ALERTS_PURGE_BATCH = 1_000;
23
+ /** Safety stop on the batch loop. */
24
+ exports.ALERTS_PURGE_MAX_BATCHES = 500;
25
+ /**
26
+ * `alerts.incidents_purge`: deletes RESOLVED incidents older than the
27
+ * retention. Open incidents are never touched. SERVER-ONLY.
28
+ *
29
+ * @stability experimental
30
+ */
31
+ let AlertsIncidentsPurgeHandler = AlertsIncidentsPurgeHandler_1 = class AlertsIncidentsPurgeHandler {
32
+ registry;
33
+ prisma;
34
+ options;
35
+ logger = new common_1.Logger(AlertsIncidentsPurgeHandler_1.name);
36
+ type = alerts_constants_1.ALERTS_INCIDENTS_PURGE_TYPE;
37
+ label = 'Alert incident purge';
38
+ profile = { maxRuntimeMs: 10 * 60_000, maxAttempts: 3 };
39
+ constructor(registry, prisma, options) {
40
+ this.registry = registry;
41
+ this.prisma = prisma;
42
+ this.options = options;
43
+ }
44
+ /** Registers the handler with the job registry. */
45
+ onModuleInit() {
46
+ this.registry.register(this);
47
+ }
48
+ /** Throws on a database error so the queue retries. */
49
+ async process(job) {
50
+ const cutoff = new Date(Date.now() - this.options.incidentRetentionDays * 86_400_000);
51
+ let deleted = 0;
52
+ for (let batch = 0; batch < exports.ALERTS_PURGE_MAX_BATCHES; batch += 1) {
53
+ const rows = await this.prisma.alertIncident.findMany({
54
+ where: { state: 'resolved', resolvedAt: { lt: cutoff } },
55
+ select: { id: true },
56
+ orderBy: { resolvedAt: 'asc' },
57
+ take: exports.ALERTS_PURGE_BATCH,
58
+ });
59
+ if (rows.length === 0)
60
+ break;
61
+ const result = await this.prisma.alertIncident.deleteMany({ where: { id: { in: rows.map((r) => r.id) }, state: 'resolved' } });
62
+ deleted += result.count;
63
+ if (rows.length < exports.ALERTS_PURGE_BATCH)
64
+ break;
65
+ }
66
+ this.logger.log(`Alert incident purge removed ${deleted} incident(s) resolved before ${cutoff.toISOString()} (job ${job.id})`);
67
+ }
68
+ };
69
+ exports.AlertsIncidentsPurgeHandler = AlertsIncidentsPurgeHandler;
70
+ exports.AlertsIncidentsPurgeHandler = AlertsIncidentsPurgeHandler = AlertsIncidentsPurgeHandler_1 = __decorate([
71
+ (0, common_1.Injectable)(),
72
+ __param(1, (0, common_1.Inject)(index_1.PLATFORM_PRISMA)),
73
+ __param(2, (0, common_1.Inject)(alerts_constants_1.ALERTS_OPTIONS)),
74
+ __metadata("design:paramtypes", [index_2.JobHandlerRegistry, Object, Object])
75
+ ], AlertsIncidentsPurgeHandler);
76
+ //# sourceMappingURL=alerts-incidents-purge.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-incidents-purge.handler.js","sourceRoot":"","sources":["../../../src/alerts/handlers/alerts-incidents-purge.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA0E;AAE1E,4CAAmD;AACnD,4CAA2G;AAC3G,0DAAkF;AAIlF,kCAAkC;AACrB,QAAA,kBAAkB,GAAG,KAAK,CAAC;AACxC,qCAAqC;AACxB,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;;;GAKG;AAEI,IAAM,2BAA2B,mCAAjC,MAAM,2BAA2B;IAOnB;IACyB;IACD;IAR1B,MAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,GAAG,8CAA2B,CAAC;IACnC,KAAK,GAAG,sBAAsB,CAAC;IAC/B,OAAO,GAAwB,EAAE,YAAY,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAEtF,YACmB,QAA4B,EACH,MAAoB,EACrB,OAAoC;QAF5D,aAAQ,GAAR,QAAQ,CAAoB;QACH,WAAM,GAAN,MAAM,CAAc;QACrB,YAAO,GAAP,OAAO,CAA6B;IAC5E,CAAC;IAEJ,mDAAmD;IACnD,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC;QACtF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gCAAwB,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACpD,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;gBACxD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;gBACpB,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;gBAC9B,IAAI,EAAE,0BAAkB;aACzB,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/H,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,GAAG,0BAAkB;gBAAE,MAAM;QAC9C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,OAAO,gCAAgC,MAAM,CAAC,WAAW,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACjI,CAAC;CACF,CAAA;AAnCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,uBAAe,CAAC,CAAA;IACvB,WAAA,IAAA,eAAM,EAAC,iCAAc,CAAC,CAAA;qCAFI,0BAAkB;GAPpC,2BAA2B,CAmCvC"}
@@ -0,0 +1,45 @@
1
+ export { AlertsModule } from './alerts.module';
2
+ export { resolveAlertsModuleOptions } from './alerts.options';
3
+ export type { AlertsImport, AlertsModuleOptions, ResolvedAlertsModuleOptions } from './alerts.options';
4
+ export { ALERTS_EVALUATE_EVENT_TYPE, ALERTS_EVALUATE_TYPE, ALERTS_INCIDENTS_PURGE_TYPE, ALERTS_OPTIONS, ALERTS_WEBHOOK_EMITTER, ALERT_FIRED_NOTIFICATION, ALERT_OPEN_INCIDENT_INDEX, ALERT_RESOLVED_NOTIFICATION, } from './alerts.constants';
5
+ export { ALERTS_PERMISSIONS } from './alerts.permissions';
6
+ export type { AlertsPermissionDeclaration } from './alerts.permissions';
7
+ export { AlertConfigError, AlertStoreUnavailableError } from './alerts.errors';
8
+ export type { AlertConfigIssue } from './alerts.errors';
9
+ export type { AlertEvaluationContext, AlertMetricTable, AlertNodeEventPayload, AlertObservation, AlertRuleKind, AlertRuleView, AlertTelemetryAccess, AlertVerdict, AlertsWebhookEmitter, } from './alerts.types';
10
+ export { alertRuleKindRegistry, parseAlertConfig, registerAlertRuleKind } from './kinds/alert-kind.registry';
11
+ export { BUILTIN_ALERT_KINDS, registerBuiltinAlertKinds } from './kinds/builtin-kinds';
12
+ export { metricThresholdKind } from './kinds/metric-threshold.kind';
13
+ export { buildMetricThresholdSql, compareValue, resolveMetricTable } from './kinds/metric-threshold.sql';
14
+ export { classifyNodeEvent, eventTypeMatches, nodeEventKind } from './kinds/node-event.kind';
15
+ export type { NodeEventClassification } from './kinds/node-event.kind';
16
+ export { nodeOfflineKind } from './kinds/node-offline.kind';
17
+ export { telemetryUnavailableKind } from './kinds/telemetry-unavailable.kind';
18
+ export { verdictKind } from './kinds/verdict.kind';
19
+ export { labelsKeyOf, nextTransition, shouldNotify } from './state/alert-state-machine';
20
+ export type { OpenIncidentState, Transition, TransitionInput, TransitionObservation } from './state/alert-state-machine';
21
+ export { AlertContextService, metricTablesOfSchema, toAlertStoreError } from './alerts-context.service';
22
+ export { AlertsEvaluationService, isUniqueViolation } from './alerts-evaluation.service';
23
+ export type { AlertEvaluationOutcome } from './alerts-evaluation.service';
24
+ export { ALERT_WEBHOOK_EVENT_DEFS, AlertsDispatchService } from './alerts-dispatch.service';
25
+ export type { AlertWebhookEventDef } from './alerts-dispatch.service';
26
+ export { AlertsRulesService, toAlertRule } from './alerts-rules.service';
27
+ export { AlertsIncidentsService, toAlertIncident } from './alerts-incidents.service';
28
+ export type { AlertIncidentPage, AlertIncidentRule, IncidentWithRule } from './alerts-incidents.service';
29
+ export { AlertsSeedService } from './alerts-seed.service';
30
+ export { STARTER_ALERT_RULES } from './starter-rules';
31
+ export type { StarterAlertRule } from './starter-rules';
32
+ export { ALERTS_APP_METRICS, AlertsMetrics } from './alerts.metrics';
33
+ export type { AlertsAppMetricDef } from './alerts.metrics';
34
+ export { ALERTS_NOTIFICATIONS, ALERT_EMAIL_TEMPLATES, alertBrowserTemplate, alertEmail, registerAlertsEmailTemplates } from './notifications/alerts.notifications';
35
+ export type { AlertNotificationData } from './notifications/alerts.notifications';
36
+ export { AlertsAdminController } from './alerts-admin.controller';
37
+ export { AlertsEventListener } from './alerts-event.listener';
38
+ export { AlertsEvaluateHandler } from './handlers/alerts-evaluate.handler';
39
+ export { AlertsEvaluateEventHandler } from './handlers/alerts-evaluate-event.handler';
40
+ export { AlertsIncidentsPurgeHandler } from './handlers/alerts-incidents-purge.handler';
41
+ export { AlertsEvaluateTask } from './tasks/alerts-evaluate.task';
42
+ export { AlertsPurgeTask } from './tasks/alerts-purge.task';
43
+ export { AlertIncidentDto, AlertIncidentListQueryDto, AlertKindDto, AlertRuleDto, AlertRuleListQueryDto, AlertRuleTestResponseDto, AlertSummaryDto, CreateAlertRuleDto, UpdateAlertRuleDto, } from './dto/alerts.dto';
44
+ export type { AlertIncidentRow, AlertNodeEventRow, AlertNodeRow, AlertRuleRow, AlertsBatchResult, AlertsDelegate, AlertsPrisma, AlertsQueryArgs } from './data/alerts-db';
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/alerts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ // `@marinoscar/platform-api/alerts`: the alerts slice (issue #1047): rules over
3
+ // telemetry metrics, worker-node events and fleet health, incidents and their
4
+ // state machine, notifications and optional webhooks on a transition, the
5
+ // admin routes under /api/admin/alerts. Documented in ./README.md. Explicit
6
+ // named exports only.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.alertEmail = exports.alertBrowserTemplate = exports.ALERT_EMAIL_TEMPLATES = exports.ALERTS_NOTIFICATIONS = exports.AlertsMetrics = exports.ALERTS_APP_METRICS = exports.STARTER_ALERT_RULES = exports.AlertsSeedService = exports.toAlertIncident = exports.AlertsIncidentsService = exports.toAlertRule = exports.AlertsRulesService = exports.AlertsDispatchService = exports.ALERT_WEBHOOK_EVENT_DEFS = exports.isUniqueViolation = exports.AlertsEvaluationService = exports.toAlertStoreError = exports.metricTablesOfSchema = exports.AlertContextService = exports.shouldNotify = exports.nextTransition = exports.labelsKeyOf = exports.verdictKind = exports.telemetryUnavailableKind = exports.nodeOfflineKind = exports.nodeEventKind = exports.eventTypeMatches = exports.classifyNodeEvent = exports.resolveMetricTable = exports.compareValue = exports.buildMetricThresholdSql = exports.metricThresholdKind = exports.registerBuiltinAlertKinds = exports.BUILTIN_ALERT_KINDS = exports.registerAlertRuleKind = exports.parseAlertConfig = exports.alertRuleKindRegistry = exports.AlertStoreUnavailableError = exports.AlertConfigError = exports.ALERTS_PERMISSIONS = exports.ALERT_RESOLVED_NOTIFICATION = exports.ALERT_OPEN_INCIDENT_INDEX = exports.ALERT_FIRED_NOTIFICATION = exports.ALERTS_WEBHOOK_EMITTER = exports.ALERTS_OPTIONS = exports.ALERTS_INCIDENTS_PURGE_TYPE = exports.ALERTS_EVALUATE_TYPE = exports.ALERTS_EVALUATE_EVENT_TYPE = exports.resolveAlertsModuleOptions = exports.AlertsModule = void 0;
9
+ exports.UpdateAlertRuleDto = exports.CreateAlertRuleDto = exports.AlertSummaryDto = exports.AlertRuleTestResponseDto = exports.AlertRuleListQueryDto = exports.AlertRuleDto = exports.AlertKindDto = exports.AlertIncidentListQueryDto = exports.AlertIncidentDto = exports.AlertsPurgeTask = exports.AlertsEvaluateTask = exports.AlertsIncidentsPurgeHandler = exports.AlertsEvaluateEventHandler = exports.AlertsEvaluateHandler = exports.AlertsEventListener = exports.AlertsAdminController = exports.registerAlertsEmailTemplates = void 0;
10
+ var alerts_module_1 = require("./alerts.module");
11
+ Object.defineProperty(exports, "AlertsModule", { enumerable: true, get: function () { return alerts_module_1.AlertsModule; } });
12
+ var alerts_options_1 = require("./alerts.options");
13
+ Object.defineProperty(exports, "resolveAlertsModuleOptions", { enumerable: true, get: function () { return alerts_options_1.resolveAlertsModuleOptions; } });
14
+ var alerts_constants_1 = require("./alerts.constants");
15
+ Object.defineProperty(exports, "ALERTS_EVALUATE_EVENT_TYPE", { enumerable: true, get: function () { return alerts_constants_1.ALERTS_EVALUATE_EVENT_TYPE; } });
16
+ Object.defineProperty(exports, "ALERTS_EVALUATE_TYPE", { enumerable: true, get: function () { return alerts_constants_1.ALERTS_EVALUATE_TYPE; } });
17
+ Object.defineProperty(exports, "ALERTS_INCIDENTS_PURGE_TYPE", { enumerable: true, get: function () { return alerts_constants_1.ALERTS_INCIDENTS_PURGE_TYPE; } });
18
+ Object.defineProperty(exports, "ALERTS_OPTIONS", { enumerable: true, get: function () { return alerts_constants_1.ALERTS_OPTIONS; } });
19
+ Object.defineProperty(exports, "ALERTS_WEBHOOK_EMITTER", { enumerable: true, get: function () { return alerts_constants_1.ALERTS_WEBHOOK_EMITTER; } });
20
+ Object.defineProperty(exports, "ALERT_FIRED_NOTIFICATION", { enumerable: true, get: function () { return alerts_constants_1.ALERT_FIRED_NOTIFICATION; } });
21
+ Object.defineProperty(exports, "ALERT_OPEN_INCIDENT_INDEX", { enumerable: true, get: function () { return alerts_constants_1.ALERT_OPEN_INCIDENT_INDEX; } });
22
+ Object.defineProperty(exports, "ALERT_RESOLVED_NOTIFICATION", { enumerable: true, get: function () { return alerts_constants_1.ALERT_RESOLVED_NOTIFICATION; } });
23
+ var alerts_permissions_1 = require("./alerts.permissions");
24
+ Object.defineProperty(exports, "ALERTS_PERMISSIONS", { enumerable: true, get: function () { return alerts_permissions_1.ALERTS_PERMISSIONS; } });
25
+ var alerts_errors_1 = require("./alerts.errors");
26
+ Object.defineProperty(exports, "AlertConfigError", { enumerable: true, get: function () { return alerts_errors_1.AlertConfigError; } });
27
+ Object.defineProperty(exports, "AlertStoreUnavailableError", { enumerable: true, get: function () { return alerts_errors_1.AlertStoreUnavailableError; } });
28
+ var alert_kind_registry_1 = require("./kinds/alert-kind.registry");
29
+ Object.defineProperty(exports, "alertRuleKindRegistry", { enumerable: true, get: function () { return alert_kind_registry_1.alertRuleKindRegistry; } });
30
+ Object.defineProperty(exports, "parseAlertConfig", { enumerable: true, get: function () { return alert_kind_registry_1.parseAlertConfig; } });
31
+ Object.defineProperty(exports, "registerAlertRuleKind", { enumerable: true, get: function () { return alert_kind_registry_1.registerAlertRuleKind; } });
32
+ var builtin_kinds_1 = require("./kinds/builtin-kinds");
33
+ Object.defineProperty(exports, "BUILTIN_ALERT_KINDS", { enumerable: true, get: function () { return builtin_kinds_1.BUILTIN_ALERT_KINDS; } });
34
+ Object.defineProperty(exports, "registerBuiltinAlertKinds", { enumerable: true, get: function () { return builtin_kinds_1.registerBuiltinAlertKinds; } });
35
+ var metric_threshold_kind_1 = require("./kinds/metric-threshold.kind");
36
+ Object.defineProperty(exports, "metricThresholdKind", { enumerable: true, get: function () { return metric_threshold_kind_1.metricThresholdKind; } });
37
+ var metric_threshold_sql_1 = require("./kinds/metric-threshold.sql");
38
+ Object.defineProperty(exports, "buildMetricThresholdSql", { enumerable: true, get: function () { return metric_threshold_sql_1.buildMetricThresholdSql; } });
39
+ Object.defineProperty(exports, "compareValue", { enumerable: true, get: function () { return metric_threshold_sql_1.compareValue; } });
40
+ Object.defineProperty(exports, "resolveMetricTable", { enumerable: true, get: function () { return metric_threshold_sql_1.resolveMetricTable; } });
41
+ var node_event_kind_1 = require("./kinds/node-event.kind");
42
+ Object.defineProperty(exports, "classifyNodeEvent", { enumerable: true, get: function () { return node_event_kind_1.classifyNodeEvent; } });
43
+ Object.defineProperty(exports, "eventTypeMatches", { enumerable: true, get: function () { return node_event_kind_1.eventTypeMatches; } });
44
+ Object.defineProperty(exports, "nodeEventKind", { enumerable: true, get: function () { return node_event_kind_1.nodeEventKind; } });
45
+ var node_offline_kind_1 = require("./kinds/node-offline.kind");
46
+ Object.defineProperty(exports, "nodeOfflineKind", { enumerable: true, get: function () { return node_offline_kind_1.nodeOfflineKind; } });
47
+ var telemetry_unavailable_kind_1 = require("./kinds/telemetry-unavailable.kind");
48
+ Object.defineProperty(exports, "telemetryUnavailableKind", { enumerable: true, get: function () { return telemetry_unavailable_kind_1.telemetryUnavailableKind; } });
49
+ var verdict_kind_1 = require("./kinds/verdict.kind");
50
+ Object.defineProperty(exports, "verdictKind", { enumerable: true, get: function () { return verdict_kind_1.verdictKind; } });
51
+ var alert_state_machine_1 = require("./state/alert-state-machine");
52
+ Object.defineProperty(exports, "labelsKeyOf", { enumerable: true, get: function () { return alert_state_machine_1.labelsKeyOf; } });
53
+ Object.defineProperty(exports, "nextTransition", { enumerable: true, get: function () { return alert_state_machine_1.nextTransition; } });
54
+ Object.defineProperty(exports, "shouldNotify", { enumerable: true, get: function () { return alert_state_machine_1.shouldNotify; } });
55
+ var alerts_context_service_1 = require("./alerts-context.service");
56
+ Object.defineProperty(exports, "AlertContextService", { enumerable: true, get: function () { return alerts_context_service_1.AlertContextService; } });
57
+ Object.defineProperty(exports, "metricTablesOfSchema", { enumerable: true, get: function () { return alerts_context_service_1.metricTablesOfSchema; } });
58
+ Object.defineProperty(exports, "toAlertStoreError", { enumerable: true, get: function () { return alerts_context_service_1.toAlertStoreError; } });
59
+ var alerts_evaluation_service_1 = require("./alerts-evaluation.service");
60
+ Object.defineProperty(exports, "AlertsEvaluationService", { enumerable: true, get: function () { return alerts_evaluation_service_1.AlertsEvaluationService; } });
61
+ Object.defineProperty(exports, "isUniqueViolation", { enumerable: true, get: function () { return alerts_evaluation_service_1.isUniqueViolation; } });
62
+ var alerts_dispatch_service_1 = require("./alerts-dispatch.service");
63
+ Object.defineProperty(exports, "ALERT_WEBHOOK_EVENT_DEFS", { enumerable: true, get: function () { return alerts_dispatch_service_1.ALERT_WEBHOOK_EVENT_DEFS; } });
64
+ Object.defineProperty(exports, "AlertsDispatchService", { enumerable: true, get: function () { return alerts_dispatch_service_1.AlertsDispatchService; } });
65
+ var alerts_rules_service_1 = require("./alerts-rules.service");
66
+ Object.defineProperty(exports, "AlertsRulesService", { enumerable: true, get: function () { return alerts_rules_service_1.AlertsRulesService; } });
67
+ Object.defineProperty(exports, "toAlertRule", { enumerable: true, get: function () { return alerts_rules_service_1.toAlertRule; } });
68
+ var alerts_incidents_service_1 = require("./alerts-incidents.service");
69
+ Object.defineProperty(exports, "AlertsIncidentsService", { enumerable: true, get: function () { return alerts_incidents_service_1.AlertsIncidentsService; } });
70
+ Object.defineProperty(exports, "toAlertIncident", { enumerable: true, get: function () { return alerts_incidents_service_1.toAlertIncident; } });
71
+ var alerts_seed_service_1 = require("./alerts-seed.service");
72
+ Object.defineProperty(exports, "AlertsSeedService", { enumerable: true, get: function () { return alerts_seed_service_1.AlertsSeedService; } });
73
+ var starter_rules_1 = require("./starter-rules");
74
+ Object.defineProperty(exports, "STARTER_ALERT_RULES", { enumerable: true, get: function () { return starter_rules_1.STARTER_ALERT_RULES; } });
75
+ var alerts_metrics_1 = require("./alerts.metrics");
76
+ Object.defineProperty(exports, "ALERTS_APP_METRICS", { enumerable: true, get: function () { return alerts_metrics_1.ALERTS_APP_METRICS; } });
77
+ Object.defineProperty(exports, "AlertsMetrics", { enumerable: true, get: function () { return alerts_metrics_1.AlertsMetrics; } });
78
+ var alerts_notifications_1 = require("./notifications/alerts.notifications");
79
+ Object.defineProperty(exports, "ALERTS_NOTIFICATIONS", { enumerable: true, get: function () { return alerts_notifications_1.ALERTS_NOTIFICATIONS; } });
80
+ Object.defineProperty(exports, "ALERT_EMAIL_TEMPLATES", { enumerable: true, get: function () { return alerts_notifications_1.ALERT_EMAIL_TEMPLATES; } });
81
+ Object.defineProperty(exports, "alertBrowserTemplate", { enumerable: true, get: function () { return alerts_notifications_1.alertBrowserTemplate; } });
82
+ Object.defineProperty(exports, "alertEmail", { enumerable: true, get: function () { return alerts_notifications_1.alertEmail; } });
83
+ Object.defineProperty(exports, "registerAlertsEmailTemplates", { enumerable: true, get: function () { return alerts_notifications_1.registerAlertsEmailTemplates; } });
84
+ var alerts_admin_controller_1 = require("./alerts-admin.controller");
85
+ Object.defineProperty(exports, "AlertsAdminController", { enumerable: true, get: function () { return alerts_admin_controller_1.AlertsAdminController; } });
86
+ var alerts_event_listener_1 = require("./alerts-event.listener");
87
+ Object.defineProperty(exports, "AlertsEventListener", { enumerable: true, get: function () { return alerts_event_listener_1.AlertsEventListener; } });
88
+ var alerts_evaluate_handler_1 = require("./handlers/alerts-evaluate.handler");
89
+ Object.defineProperty(exports, "AlertsEvaluateHandler", { enumerable: true, get: function () { return alerts_evaluate_handler_1.AlertsEvaluateHandler; } });
90
+ var alerts_evaluate_event_handler_1 = require("./handlers/alerts-evaluate-event.handler");
91
+ Object.defineProperty(exports, "AlertsEvaluateEventHandler", { enumerable: true, get: function () { return alerts_evaluate_event_handler_1.AlertsEvaluateEventHandler; } });
92
+ var alerts_incidents_purge_handler_1 = require("./handlers/alerts-incidents-purge.handler");
93
+ Object.defineProperty(exports, "AlertsIncidentsPurgeHandler", { enumerable: true, get: function () { return alerts_incidents_purge_handler_1.AlertsIncidentsPurgeHandler; } });
94
+ var alerts_evaluate_task_1 = require("./tasks/alerts-evaluate.task");
95
+ Object.defineProperty(exports, "AlertsEvaluateTask", { enumerable: true, get: function () { return alerts_evaluate_task_1.AlertsEvaluateTask; } });
96
+ var alerts_purge_task_1 = require("./tasks/alerts-purge.task");
97
+ Object.defineProperty(exports, "AlertsPurgeTask", { enumerable: true, get: function () { return alerts_purge_task_1.AlertsPurgeTask; } });
98
+ var alerts_dto_1 = require("./dto/alerts.dto");
99
+ Object.defineProperty(exports, "AlertIncidentDto", { enumerable: true, get: function () { return alerts_dto_1.AlertIncidentDto; } });
100
+ Object.defineProperty(exports, "AlertIncidentListQueryDto", { enumerable: true, get: function () { return alerts_dto_1.AlertIncidentListQueryDto; } });
101
+ Object.defineProperty(exports, "AlertKindDto", { enumerable: true, get: function () { return alerts_dto_1.AlertKindDto; } });
102
+ Object.defineProperty(exports, "AlertRuleDto", { enumerable: true, get: function () { return alerts_dto_1.AlertRuleDto; } });
103
+ Object.defineProperty(exports, "AlertRuleListQueryDto", { enumerable: true, get: function () { return alerts_dto_1.AlertRuleListQueryDto; } });
104
+ Object.defineProperty(exports, "AlertRuleTestResponseDto", { enumerable: true, get: function () { return alerts_dto_1.AlertRuleTestResponseDto; } });
105
+ Object.defineProperty(exports, "AlertSummaryDto", { enumerable: true, get: function () { return alerts_dto_1.AlertSummaryDto; } });
106
+ Object.defineProperty(exports, "CreateAlertRuleDto", { enumerable: true, get: function () { return alerts_dto_1.CreateAlertRuleDto; } });
107
+ Object.defineProperty(exports, "UpdateAlertRuleDto", { enumerable: true, get: function () { return alerts_dto_1.UpdateAlertRuleDto; } });
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alerts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { AlertRuleKind } from '../alerts.types';
2
+ /**
3
+ * Every registered rule kind. Open: an app adds its own with
4
+ * {@link registerAlertRuleKind} at import time, before the application
5
+ * bootstraps (the registry freezes then).
6
+ *
7
+ * @extensionPoint registry
8
+ * @stability experimental
9
+ */
10
+ export declare const alertRuleKindRegistry: import("../../core/index").Registry<AlertRuleKind<any>>;
11
+ /**
12
+ * Registers a rule kind. Kind ids are PERMANENT once rules of the kind exist.
13
+ *
14
+ * @param kind - the kind.
15
+ * @throws RegistryError `INVALID_ID`, `INVALID_ENTRY`, `DUPLICATE_ID` or `FROZEN`.
16
+ *
17
+ * @extensionPoint registry
18
+ * @stability experimental
19
+ */
20
+ export declare function registerAlertRuleKind<C>(kind: AlertRuleKind<C>): void;
21
+ /**
22
+ * Validates `config` against the schema of `kind`, returning the parsed (and
23
+ * defaulted) value.
24
+ *
25
+ * @param kind - the kind id.
26
+ * @param config - the raw config.
27
+ * @returns the parsed config.
28
+ * @throws AlertConfigError `ALERT_UNKNOWN_KIND` or `ALERT_INVALID_CONFIG`.
29
+ *
30
+ * @stability experimental
31
+ */
32
+ export declare function parseAlertConfig(kind: string, config: unknown): unknown;
33
+ //# sourceMappingURL=alert-kind.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-kind.registry.d.ts","sourceRoot":"","sources":["../../../src/alerts/kinds/alert-kind.registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,yDAYhC,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAYvE"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.alertRuleKindRegistry = void 0;
4
+ exports.registerAlertRuleKind = registerAlertRuleKind;
5
+ exports.parseAlertConfig = parseAlertConfig;
6
+ const index_1 = require("../../core/index");
7
+ const alerts_1 = require("@marinoscar/platform-contract/alerts");
8
+ const alerts_errors_1 = require("../alerts.errors");
9
+ /**
10
+ * Every registered rule kind. Open: an app adds its own with
11
+ * {@link registerAlertRuleKind} at import time, before the application
12
+ * bootstraps (the registry freezes then).
13
+ *
14
+ * @extensionPoint registry
15
+ * @stability experimental
16
+ */
17
+ exports.alertRuleKindRegistry = (0, index_1.defineRegistry)({
18
+ name: 'alert-rule-kinds',
19
+ idOf: (kind) => kind.id,
20
+ idPattern: alerts_1.ALERT_KIND_PATTERN,
21
+ validate: (kind) => {
22
+ if (typeof kind.evaluate !== 'function')
23
+ throw new Error('an alert rule kind needs an evaluate function');
24
+ if (!kind.configSchema || typeof kind.configSchema.safeParse !== 'function') {
25
+ throw new Error('an alert rule kind needs a zod configSchema');
26
+ }
27
+ },
28
+ describeDuplicate: (existing) => `Duplicate alert rule kind "${existing.id}". Kind ids are persisted on rules; pick a new id.`,
29
+ });
30
+ /**
31
+ * Registers a rule kind. Kind ids are PERMANENT once rules of the kind exist.
32
+ *
33
+ * @param kind - the kind.
34
+ * @throws RegistryError `INVALID_ID`, `INVALID_ENTRY`, `DUPLICATE_ID` or `FROZEN`.
35
+ *
36
+ * @extensionPoint registry
37
+ * @stability experimental
38
+ */
39
+ function registerAlertRuleKind(kind) {
40
+ exports.alertRuleKindRegistry.register(kind);
41
+ }
42
+ /**
43
+ * Validates `config` against the schema of `kind`, returning the parsed (and
44
+ * defaulted) value.
45
+ *
46
+ * @param kind - the kind id.
47
+ * @param config - the raw config.
48
+ * @returns the parsed config.
49
+ * @throws AlertConfigError `ALERT_UNKNOWN_KIND` or `ALERT_INVALID_CONFIG`.
50
+ *
51
+ * @stability experimental
52
+ */
53
+ function parseAlertConfig(kind, config) {
54
+ const def = exports.alertRuleKindRegistry.get(kind);
55
+ if (!def)
56
+ throw new alerts_errors_1.AlertConfigError('ALERT_UNKNOWN_KIND', `There is no alert rule kind "${kind}".`);
57
+ const parsed = def.configSchema.safeParse(config ?? {});
58
+ if (!parsed.success) {
59
+ throw new alerts_errors_1.AlertConfigError('ALERT_INVALID_CONFIG', `The config does not match the "${kind}" kind.`, parsed.error.issues.map((issue) => ({ path: issue.path.join('.'), message: issue.message })));
60
+ }
61
+ return parsed.data;
62
+ }
63
+ //# sourceMappingURL=alert-kind.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-kind.registry.js","sourceRoot":"","sources":["../../../src/alerts/kinds/alert-kind.registry.ts"],"names":[],"mappings":";;;AAsCA,sDAEC;AAaD,4CAYC;AA/DD,4CAAkD;AAClD,iEAA0E;AAC1E,oDAAoD;AAGpD;;;;;;;GAOG;AACU,QAAA,qBAAqB,GAAG,IAAA,sBAAc,EAAgB;IACjE,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;IACvB,SAAS,EAAE,2BAAkB;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC1G,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAQ,IAAI,CAAC,YAA0B,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC9B,8BAA8B,QAAQ,CAAC,EAAE,oDAAoD;CAChG,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAI,IAAsB;IAC7D,6BAAqB,CAAC,QAAQ,CAAC,IAAqB,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,MAAe;IAC5D,MAAM,GAAG,GAAG,6BAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,gCAAgB,CAAC,oBAAoB,EAAE,gCAAgC,IAAI,IAAI,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,gCAAgB,CACxB,sBAAsB,EACtB,kCAAkC,IAAI,SAAS,EAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AlertRuleKind } from '../alerts.types';
2
+ /**
3
+ * The five kinds the slice ships, in registration order.
4
+ *
5
+ * @stability experimental
6
+ */
7
+ export declare const BUILTIN_ALERT_KINDS: readonly AlertRuleKind[];
8
+ /**
9
+ * Registers the built-in kinds. IDEMPOTENT: a kind already registered with the
10
+ * built-in definition is skipped (`AlertsModule.forRoot` and an app may both
11
+ * call it).
12
+ *
13
+ * @throws RegistryError `FROZEN` when something is left to register after the application bootstrapped.
14
+ *
15
+ * @stability experimental
16
+ */
17
+ export declare function registerBuiltinAlertKinds(): void;
18
+ //# sourceMappingURL=builtin-kinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-kinds.d.ts","sourceRoot":"","sources":["../../../src/alerts/kinds/builtin-kinds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQrD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,aAAa,EAAiG,CAAC;AAE1J;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}