@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @marinoscar/platform-api
2
2
 
3
+ ## 0.1.0-next.21
4
+
5
+ ### Patch Changes
6
+
7
+ - 3d4b937: Record the `webhookDeliveryDuration` histogram for a delivery attempt that completes in 0 ms. The handler skipped the measurement when the elapsed time was zero; it now skips only when no attempt ran (the endpoint was gone or disabled before sending).
8
+ - @marinoscar/platform-contract@0.1.0-next.21
9
+ - @marinoscar/platform-ai-providers@0.1.0-next.21
10
+
11
+ ## 0.1.0-next.20
12
+
13
+ ### Minor Changes
14
+
15
+ - 7b5796f: Add the `alerts` slice (#1047). `@marinoscar/platform-contract/alerts` carries the wire shapes (rules, the configs of the built-in kinds, incidents, the dry-run response, the kind catalog, the summary). `@marinoscar/platform-api/alerts` adds `AlertsModule.forRoot`, the open rule-kind registry (`registerAlertRuleKind`) with the `metric_threshold`, `node_event`, `verdict`, `node_offline` and `telemetry_unavailable` kinds, the pending/firing/resolved state machine, the `alerts.evaluate`, `alerts.evaluate_event` and `alerts.incidents_purge` server-only jobs, notifications on a transition with an optional webhook port (`ALERTS_WEBHOOK_EMITTER`), eight disabled starter rules, the `/api/admin/alerts` routes behind the new `alerts:read` and `alerts:write` permissions, and the `alerts` conformance suite (`@marinoscar/platform-api/alerts/testing`). The telemetry slice now exports `TelemetryDashboardService` and `createQueryFacade`, accepts a `null` (system) user and an `alert` query source, and the nodes slice exports `deriveNodeHealth`. `@marinoscar/platform-db` adds migration `0040_add_alerts` (`alert_rules`, `alert_incidents` and the raw-SQL partial unique index `alert_incidents_open_uniq_idx`).
16
+ - 6949b6b: Worker nodes report host vitals, power state and events (#1045). Contract: `vitals.host` and `vitals.power`, heartbeat `events` (at most 50, `nodeEventSchema`, `NODE_EVENT_TYPES`), `serverFeatures` / `NODE_SERVER_CAPABILITY_HOST_VITALS` (`node_host_vitals`), the admin event list schemas and `nodeEventListQuerySchema`; the nodes telemetry presentation gains host CPU, host memory, load, power source and battery columns. API: `POST /api/nodes/register` and `POST /api/nodes/:id/heartbeat` advertise `serverFeatures` (the heartbeat repeats it beside the node fields, so a node that never re-registers learns it); heartbeat `events` are persisted to `worker_node_events` (occurredAt clamped to [now-24h, now+5m], at most 120 events per node per hour, the excess dropped and logged) and announced after the write as the `nodes.node.event` domain event (`NODE_EVENT_REPORTED`, `NodeEventReportedEvent`), an `app.nodes.events` counter, a bounded `node.event` span and a log line; `GET /api/nodes/:id/events` (`nodes:read`, same 404/403 answers as `GET /api/nodes/:id`) and `GET /api/admin/nodes/:id/events` (Admin role, `nodes:read`) list them; new gauges `app.nodes.host.cpu.utilization`, `app.nodes.host.memory.used|total|available`, `app.nodes.host.load1`, `app.nodes.power.on_battery` and `app.nodes.power.battery_percent` (a series is skipped when the node did not report the field); the telemetry `nodes` group shows them per node and a node on battery at 10 % or less degrades the dashboard verdict; the daily `nodes.node_events_purge` job (enqueued by `NodeEventsPurgeTask`, kept for `NodesModule.forRoot({ nodeEventsRetentionDays })`, default 30 days, switch `tasks.nodeEventsPurge`) deletes old events. The jobs slice's `JobsTx` gains the `workerNodeEvent` delegate. DB: migration `0038_add_worker_node_events` (already shipped with the table). CLI: the node samples host CPU, load and memory, probes power per OS, turns transitions into events and sends them only after the server advertises `node_host_vitals`, learned from the register response or from any heartbeat response; an already-registered node no longer re-registers on start.
17
+ - fb02006: Add the `@marinoscar/platform-api/webhooks` slice and its `/testing` entry (issue #1046): signed outbound webhooks for a member, an organization or the deployment (`/api/webhooks`, `/api/org/webhooks`, `/api/admin/webhooks`), an open event registry (`registerWebhookEvent`) with built-in node and job events, `WebhooksService.emit`, an SSRF-safe egress guard with a pinned address, signing secrets in the credentials store, the server-only `webhooks.deliver`, `webhooks.fanout` and `webhooks.deliveries_purge` jobs with retries and a circuit breaker, the `webhook` notification channel and `webhooks.endpoint_disabled` event, the `webhooks:*`, `org_webhooks:*` and `system_webhooks:*` permissions (added to `@marinoscar/platform-api/manifest`), the `webhooks` conformance suite and an in-memory test kit. Core gains `isBlockedAddress` (public-address classification). Needs platform migration `0039_add_webhooks`.
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [7b5796f]
22
+ - Updated dependencies [6949b6b]
23
+ - Updated dependencies [f3b9700]
24
+ - @marinoscar/platform-contract@0.1.0-next.20
25
+ - @marinoscar/platform-ai-providers@0.1.0-next.20
26
+
3
27
  ## 0.1.0-next.19
4
28
 
5
29
  ### Minor Changes
package/README.md CHANGED
@@ -26,6 +26,7 @@ Status: pre-release (the current channel and how to install it: the [release run
26
26
  - `@marinoscar/platform-api/telemetry` and `@marinoscar/platform-api/telemetry/testing`: the API side of observability: the `telemetry` settings and runtime export gate, the runtime GreptimeDB connection, the explorer, the AI assistant, the dashboard with its metric-group registry and health verdict, the stack-agent surface, two server-only job types, five Doctor checks and a support-bundle section; the `telemetry` conformance suite. [README](src/telemetry/README.md).
27
27
  - `@marinoscar/platform-api/sharing` and `@marinoscar/platform-api/sharing/testing`: sharing primitives: groups, members and invites inside an organization, the ownership contract, grants (user, group and link), `AccessPolicy`, the "resources I can see" query helpers, link shares and the public-route pattern; the `sharing` conformance suite. [README](src/sharing/README.md).
28
28
  - `@marinoscar/platform-api/notifications` and `@marinoscar/platform-api/notifications/testing`: the notification framework: the event, channel and template registries, the dispatcher and its policy (system, then organization), the email, in-app and Web Push channels, runtime Web Push keys, admin broadcasts and the SSE stream; the `notifications` conformance suite. [README](src/notifications/README.md).
29
+ - `@marinoscar/platform-api/alerts` and `@marinoscar/platform-api/alerts/testing`: alert rules over telemetry metrics, node events and fleet health, incidents with a pending/firing/resolved state machine, notifications and an optional webhook on a transition, the admin routes; the conformance suite and in-memory fakes of its `testing` entry. [README](src/alerts/README.md).
29
30
  - `@marinoscar/platform-api/android-app` and `@marinoscar/platform-api/android-app/testing`: the server half of the Android companion: trusted apps and the Digital Asset Links route, hosted APK releases, the `android_app` notification channel and the test notification; the conformance suites of its `testing` entry. [README](src/android-app/README.md).
30
31
  - `@marinoscar/platform-api/user-data` and `@marinoscar/platform-api/user-data/testing`: the per-user data deletion with scopes, the admin factory reset and organization offboarding, built from the category, scope, keep-or-delete hint, factory-reset step and offboarding-precondition registries; the conformance suites of its `testing` entry. [README](src/user-data/README.md).
31
32
  - `@marinoscar/platform-api/manifest`: what every platform slice registers, in registration order (#866): the platform roles and every slice's permission sets in seed order (`PLATFORM_ROLES`, `PLATFORM_PERMISSION_SETS`, `PLATFORM_PERMISSIONS`), `registerPlatformPermissions()` and its pure twin `platformPermissionCatalog()` (both take the app's own roles and permissions and an optional `slices` filter), and the inventory of platform models with a foreign key to `User` (`PLATFORM_USER_OWNED_MODELS`, `registerPlatformUserOwnedModels()`). Data and plain functions, no Nest module. [README](src/manifest/README.md).
@@ -0,0 +1,40 @@
1
+ import { type AlertIncident, type AlertKind, type AlertRule, type AlertRuleTestResponse, type AlertSummary } from '@marinoscar/platform-contract/alerts';
2
+ import { AlertsEvaluationService } from './alerts-evaluation.service';
3
+ import { AlertsIncidentsService, type AlertIncidentPage } from './alerts-incidents.service';
4
+ import { AlertsRulesService } from './alerts-rules.service';
5
+ import { AlertIncidentListQueryDto, AlertRuleListQueryDto, CreateAlertRuleDto, UpdateAlertRuleDto } from './dto/alerts.dto';
6
+ /**
7
+ * The alerts admin routes: rules, the kind catalog, incidents and the firing
8
+ * summary.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare class AlertsAdminController {
13
+ private readonly rules;
14
+ private readonly incidents;
15
+ private readonly evaluation;
16
+ constructor(rules: AlertsRulesService, incidents: AlertsIncidentsService, evaluation: AlertsEvaluationService);
17
+ /** Lists the rules. */
18
+ listRules(query: AlertRuleListQueryDto): Promise<AlertRule[]>;
19
+ /** Creates a rule. */
20
+ createRule(body: CreateAlertRuleDto, userId: string): Promise<AlertRule>;
21
+ /** One rule. */
22
+ getRule(id: string): Promise<AlertRule>;
23
+ /** Updates a rule. */
24
+ updateRule(id: string, body: UpdateAlertRuleDto): Promise<AlertRule>;
25
+ /** Deletes a rule. */
26
+ deleteRule(id: string): Promise<void>;
27
+ /** Evaluates a rule now without storing or dispatching anything. */
28
+ testRule(id: string): Promise<AlertRuleTestResponse>;
29
+ /** The registered kinds. */
30
+ listKinds(): AlertKind[];
31
+ /** Lists incidents. */
32
+ listIncidents(query: AlertIncidentListQueryDto): Promise<AlertIncidentPage>;
33
+ /** One incident. */
34
+ getIncident(id: string): Promise<AlertIncident>;
35
+ /** Acknowledges an incident. */
36
+ acknowledge(id: string, userId: string): Promise<AlertIncident>;
37
+ /** The firing summary. */
38
+ summary(): Promise<AlertSummary>;
39
+ }
40
+ //# sourceMappingURL=alerts-admin.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-admin.controller.d.ts","sourceRoot":"","sources":["../../src/alerts/alerts-admin.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAEL,yBAAyB,EAGzB,qBAAqB,EAGrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAmC1B;;;;;GAKG;AACH,qBAEa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,uBAAuB;IAGtD,uBAAuB;IAMvB,SAAS,CAAU,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItE,sBAAsB;IAWtB,UAAU,CAAS,IAAI,EAAE,kBAAkB,EAAqB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAInG,gBAAgB;IAQhB,OAAO,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAInE,sBAAsB;IAYtB,UAAU,CAA6B,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxG,sBAAsB;IAUhB,UAAU,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,oEAAoE;IAY9D,QAAQ,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBtF,4BAA4B;IAM5B,SAAS,IAAI,SAAS,EAAE;IAWxB,uBAAuB;IAMvB,aAAa,CAAU,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpF,oBAAoB;IAQpB,WAAW,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3E,gCAAgC;IAShC,WAAW,CAA6B,EAAE,EAAE,MAAM,EAAqB,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9G,0BAA0B;IAM1B,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;CAGjC"}
@@ -0,0 +1,297 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AlertsAdminController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const zod_1 = require("zod");
19
+ const alerts_1 = require("@marinoscar/platform-contract/alerts");
20
+ const index_1 = require("../core/index");
21
+ const index_2 = require("../identity/index");
22
+ const alerts_evaluation_service_1 = require("./alerts-evaluation.service");
23
+ const alerts_incidents_service_1 = require("./alerts-incidents.service");
24
+ const alerts_rules_service_1 = require("./alerts-rules.service");
25
+ const alerts_dto_1 = require("./dto/alerts.dto");
26
+ const alert_kind_registry_1 = require("./kinds/alert-kind.registry");
27
+ const RULE_ID = { name: 'id', type: String, format: 'uuid', description: 'The rule id.' };
28
+ const INCIDENT_ID = { name: 'id', type: String, format: 'uuid', description: 'The incident id.' };
29
+ const NO_READ = { status: 403, description: 'Missing alerts:read', type: index_1.ErrorDto };
30
+ const NO_WRITE = { status: 403, description: 'Missing alerts:write', type: index_1.ErrorDto };
31
+ const NO_RULE = { status: 404, description: '`ALERT_RULE_NOT_FOUND`', type: index_1.ErrorDto };
32
+ const NO_INCIDENT = { status: 404, description: '`ALERT_INCIDENT_NOT_FOUND`', type: index_1.ErrorDto };
33
+ const BAD_CONFIG = { status: 400, description: '`ALERT_UNKNOWN_KIND` or `ALERT_INVALID_CONFIG`', type: index_1.ErrorDto };
34
+ function configJsonSchema(kind) {
35
+ try {
36
+ return zod_1.z.toJSONSchema(kind.configSchema, { io: 'input', unrepresentable: 'any' });
37
+ }
38
+ catch {
39
+ return {};
40
+ }
41
+ }
42
+ const BUILTIN_IDS = new Set(Object.values(alerts_1.ALERT_KIND_IDS));
43
+ // =============================================================================
44
+ // GET /api/admin/alerts/rules alerts:read
45
+ // POST /api/admin/alerts/rules alerts:write
46
+ // GET /api/admin/alerts/rules/:id alerts:read
47
+ // PATCH /api/admin/alerts/rules/:id alerts:write
48
+ // DELETE /api/admin/alerts/rules/:id alerts:write
49
+ // POST /api/admin/alerts/rules/:id/test alerts:write
50
+ // GET /api/admin/alerts/kinds alerts:read
51
+ // GET /api/admin/alerts/incidents alerts:read
52
+ // GET /api/admin/alerts/incidents/:id alerts:read
53
+ // POST /api/admin/alerts/incidents/:id/acknowledge alerts:write
54
+ // GET /api/admin/alerts/summary alerts:read
55
+ // =============================================================================
56
+ /**
57
+ * The alerts admin routes: rules, the kind catalog, incidents and the firing
58
+ * summary.
59
+ *
60
+ * @stability experimental
61
+ */
62
+ let AlertsAdminController = class AlertsAdminController {
63
+ rules;
64
+ incidents;
65
+ evaluation;
66
+ constructor(rules, incidents, evaluation) {
67
+ this.rules = rules;
68
+ this.incidents = incidents;
69
+ this.evaluation = evaluation;
70
+ }
71
+ /** Lists the rules. */
72
+ listRules(query) {
73
+ return this.rules.list(query);
74
+ }
75
+ /** Creates a rule. */
76
+ createRule(body, userId) {
77
+ return this.rules.create(body, userId);
78
+ }
79
+ /** One rule. */
80
+ getRule(id) {
81
+ return this.rules.get(id);
82
+ }
83
+ /** Updates a rule. */
84
+ updateRule(id, body) {
85
+ return this.rules.update(id, body);
86
+ }
87
+ /** Deletes a rule. */
88
+ async deleteRule(id) {
89
+ await this.rules.remove(id);
90
+ }
91
+ /** Evaluates a rule now without storing or dispatching anything. */
92
+ async testRule(id) {
93
+ const row = await this.rules.row(id);
94
+ const started = Date.now();
95
+ const evaluatedAt = new Date();
96
+ try {
97
+ const observations = await this.evaluation.observe(row, evaluatedAt);
98
+ return { ruleId: id, kind: row.kind, evaluatedAt: evaluatedAt.toISOString(), durationMs: Date.now() - started, observations, error: null };
99
+ }
100
+ catch (error) {
101
+ return {
102
+ ruleId: id,
103
+ kind: row.kind,
104
+ evaluatedAt: evaluatedAt.toISOString(),
105
+ durationMs: Date.now() - started,
106
+ observations: [],
107
+ error: (error instanceof Error ? error.message : String(error)).slice(0, 500),
108
+ };
109
+ }
110
+ }
111
+ /** The registered kinds. */
112
+ listKinds() {
113
+ return alert_kind_registry_1.alertRuleKindRegistry.list().map((kind) => ({
114
+ id: kind.id,
115
+ label: kind.label,
116
+ description: kind.description,
117
+ eventDriven: kind.eventDriven === true,
118
+ builtin: BUILTIN_IDS.has(kind.id),
119
+ configSchema: configJsonSchema(kind),
120
+ }));
121
+ }
122
+ /** Lists incidents. */
123
+ listIncidents(query) {
124
+ return this.incidents.list(query);
125
+ }
126
+ /** One incident. */
127
+ getIncident(id) {
128
+ return this.incidents.get(id);
129
+ }
130
+ /** Acknowledges an incident. */
131
+ acknowledge(id, userId) {
132
+ return this.incidents.acknowledge(id, userId);
133
+ }
134
+ /** The firing summary. */
135
+ summary() {
136
+ return this.incidents.summary();
137
+ }
138
+ };
139
+ exports.AlertsAdminController = AlertsAdminController;
140
+ __decorate([
141
+ (0, common_1.Get)('rules'),
142
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
143
+ (0, swagger_1.ApiOperation)({ summary: 'List alert rules (Admin)', description: 'Every rule, oldest first, with its open incident count. Filter by `kind`, `severity` or `enabled`.' }),
144
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertRuleDto, { isArray: true, description: 'The rules' }),
145
+ (0, swagger_1.ApiResponse)(NO_READ),
146
+ __param(0, (0, common_1.Query)()),
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", [alerts_dto_1.AlertRuleListQueryDto]),
149
+ __metadata("design:returntype", Promise)
150
+ ], AlertsAdminController.prototype, "listRules", null);
151
+ __decorate([
152
+ (0, common_1.Post)('rules'),
153
+ (0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
154
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.WRITE] }),
155
+ (0, swagger_1.ApiOperation)({
156
+ summary: 'Create an alert rule (Admin)',
157
+ description: 'The `config` is validated against the kind\'s schema (`GET /kinds`). A rule is created disabled unless `enabled` is true.',
158
+ }),
159
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertRuleDto, { status: 201, description: 'The rule' }),
160
+ (0, swagger_1.ApiResponse)(BAD_CONFIG),
161
+ (0, swagger_1.ApiResponse)(NO_WRITE),
162
+ __param(0, (0, common_1.Body)()),
163
+ __param(1, (0, index_2.CurrentUser)('id')),
164
+ __metadata("design:type", Function),
165
+ __metadata("design:paramtypes", [alerts_dto_1.CreateAlertRuleDto, String]),
166
+ __metadata("design:returntype", Promise)
167
+ ], AlertsAdminController.prototype, "createRule", null);
168
+ __decorate([
169
+ (0, common_1.Get)('rules/:id'),
170
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
171
+ (0, swagger_1.ApiOperation)({ summary: 'Get an alert rule (Admin)' }),
172
+ (0, swagger_1.ApiParam)(RULE_ID),
173
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertRuleDto, { description: 'The rule' }),
174
+ (0, swagger_1.ApiResponse)(NO_READ),
175
+ (0, swagger_1.ApiResponse)(NO_RULE),
176
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
177
+ __metadata("design:type", Function),
178
+ __metadata("design:paramtypes", [String]),
179
+ __metadata("design:returntype", Promise)
180
+ ], AlertsAdminController.prototype, "getRule", null);
181
+ __decorate([
182
+ (0, common_1.Patch)('rules/:id'),
183
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.WRITE] }),
184
+ (0, swagger_1.ApiOperation)({
185
+ summary: 'Update an alert rule (Admin)',
186
+ description: 'A partial update; the kind cannot change. Disabling a rule closes its open incidents without a notification. A starter rule may be edited and disabled.',
187
+ }),
188
+ (0, swagger_1.ApiParam)(RULE_ID),
189
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertRuleDto, { description: 'The rule' }),
190
+ (0, swagger_1.ApiResponse)(BAD_CONFIG),
191
+ (0, swagger_1.ApiResponse)(NO_WRITE),
192
+ (0, swagger_1.ApiResponse)(NO_RULE),
193
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
194
+ __param(1, (0, common_1.Body)()),
195
+ __metadata("design:type", Function),
196
+ __metadata("design:paramtypes", [String, alerts_dto_1.UpdateAlertRuleDto]),
197
+ __metadata("design:returntype", Promise)
198
+ ], AlertsAdminController.prototype, "updateRule", null);
199
+ __decorate([
200
+ (0, common_1.Delete)('rules/:id'),
201
+ (0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
202
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.WRITE] }),
203
+ (0, swagger_1.ApiOperation)({ summary: 'Delete an alert rule (Admin)', description: 'Deletes the rule and its incidents. A starter rule is refused with `ALERT_STARTER_RULE_PROTECTED` (409): disable it instead.' }),
204
+ (0, swagger_1.ApiParam)(RULE_ID),
205
+ (0, swagger_1.ApiResponse)({ status: 204, description: 'Deleted' }),
206
+ (0, swagger_1.ApiResponse)(NO_WRITE),
207
+ (0, swagger_1.ApiResponse)(NO_RULE),
208
+ (0, swagger_1.ApiResponse)({ status: 409, description: `\`${alerts_1.ALERT_ERROR_CODES.STARTER_RULE_PROTECTED}\``, type: index_1.ErrorDto }),
209
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
210
+ __metadata("design:type", Function),
211
+ __metadata("design:paramtypes", [String]),
212
+ __metadata("design:returntype", Promise)
213
+ ], AlertsAdminController.prototype, "deleteRule", null);
214
+ __decorate([
215
+ (0, common_1.Post)('rules/:id/test'),
216
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
217
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.WRITE] }),
218
+ (0, swagger_1.ApiOperation)({
219
+ summary: 'Test an alert rule (Admin)',
220
+ description: 'Evaluates the rule once, now, and returns what it observed. Nothing is stored (no incident, no `lastEvaluatedAt`) and nothing is dispatched. An evaluation failure is returned in `error`, not as an HTTP error.',
221
+ }),
222
+ (0, swagger_1.ApiParam)(RULE_ID),
223
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertRuleTestResponseDto, { description: 'The observations' }),
224
+ (0, swagger_1.ApiResponse)(NO_WRITE),
225
+ (0, swagger_1.ApiResponse)(NO_RULE),
226
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
227
+ __metadata("design:type", Function),
228
+ __metadata("design:paramtypes", [String]),
229
+ __metadata("design:returntype", Promise)
230
+ ], AlertsAdminController.prototype, "testRule", null);
231
+ __decorate([
232
+ (0, common_1.Get)('kinds'),
233
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
234
+ (0, swagger_1.ApiOperation)({ summary: 'List alert rule kinds (Admin)', description: 'Every registered kind with the JSON Schema of its `config`.' }),
235
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertKindDto, { isArray: true, description: 'The kinds' }),
236
+ (0, swagger_1.ApiResponse)(NO_READ),
237
+ __metadata("design:type", Function),
238
+ __metadata("design:paramtypes", []),
239
+ __metadata("design:returntype", Array)
240
+ ], AlertsAdminController.prototype, "listKinds", null);
241
+ __decorate([
242
+ (0, common_1.Get)('incidents'),
243
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
244
+ (0, swagger_1.ApiOperation)({ summary: 'List alert incidents (Admin)', description: 'Newest first. Filter by `state`, `severity` and `ruleId`; paged (`page`, `pageSize` up to 100).' }),
245
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertIncidentDto, { pagination: 'flat', description: 'Paginated incidents' }),
246
+ (0, swagger_1.ApiResponse)(NO_READ),
247
+ __param(0, (0, common_1.Query)()),
248
+ __metadata("design:type", Function),
249
+ __metadata("design:paramtypes", [alerts_dto_1.AlertIncidentListQueryDto]),
250
+ __metadata("design:returntype", Promise)
251
+ ], AlertsAdminController.prototype, "listIncidents", null);
252
+ __decorate([
253
+ (0, common_1.Get)('incidents/:id'),
254
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
255
+ (0, swagger_1.ApiOperation)({ summary: 'Get an alert incident (Admin)' }),
256
+ (0, swagger_1.ApiParam)(INCIDENT_ID),
257
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertIncidentDto, { description: 'The incident' }),
258
+ (0, swagger_1.ApiResponse)(NO_READ),
259
+ (0, swagger_1.ApiResponse)(NO_INCIDENT),
260
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
261
+ __metadata("design:type", Function),
262
+ __metadata("design:paramtypes", [String]),
263
+ __metadata("design:returntype", Promise)
264
+ ], AlertsAdminController.prototype, "getIncident", null);
265
+ __decorate([
266
+ (0, common_1.Post)('incidents/:id/acknowledge'),
267
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
268
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.WRITE] }),
269
+ (0, swagger_1.ApiOperation)({ summary: 'Acknowledge an alert incident (Admin)', description: 'Marks the incident as seen by you. Idempotent: the first acknowledgement is kept. It does not resolve the incident.' }),
270
+ (0, swagger_1.ApiParam)(INCIDENT_ID),
271
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertIncidentDto, { description: 'The incident' }),
272
+ (0, swagger_1.ApiResponse)(NO_WRITE),
273
+ (0, swagger_1.ApiResponse)(NO_INCIDENT),
274
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
275
+ __param(1, (0, index_2.CurrentUser)('id')),
276
+ __metadata("design:type", Function),
277
+ __metadata("design:paramtypes", [String, String]),
278
+ __metadata("design:returntype", Promise)
279
+ ], AlertsAdminController.prototype, "acknowledge", null);
280
+ __decorate([
281
+ (0, common_1.Get)('summary'),
282
+ (0, index_2.Auth)({ permissions: [alerts_1.ALERT_PERMISSIONS.READ] }),
283
+ (0, swagger_1.ApiOperation)({ summary: 'Alerts summary (Admin)', description: 'Incidents firing now by severity, and the newest evaluation: what a dashboard banner shows.' }),
284
+ (0, index_1.ApiDataResponse)(alerts_dto_1.AlertSummaryDto, { description: 'The summary' }),
285
+ (0, swagger_1.ApiResponse)(NO_READ),
286
+ __metadata("design:type", Function),
287
+ __metadata("design:paramtypes", []),
288
+ __metadata("design:returntype", Promise)
289
+ ], AlertsAdminController.prototype, "summary", null);
290
+ exports.AlertsAdminController = AlertsAdminController = __decorate([
291
+ (0, swagger_1.ApiTags)('Alerts'),
292
+ (0, common_1.Controller)('admin/alerts'),
293
+ __metadata("design:paramtypes", [alerts_rules_service_1.AlertsRulesService,
294
+ alerts_incidents_service_1.AlertsIncidentsService,
295
+ alerts_evaluation_service_1.AlertsEvaluationService])
296
+ ], AlertsAdminController);
297
+ //# sourceMappingURL=alerts-admin.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-admin.controller.js","sourceRoot":"","sources":["../../src/alerts/alerts-admin.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { NodeLifecycleService } from '../nodes/index';
2
+ import { TelemetryDashboardService, TelemetryQueryService, TelemetrySchemaService, type TelemetrySqlDialect } from '../telemetry/index';
3
+ import type { AlertEvaluationContext, AlertMetricTable } from './alerts.types';
4
+ import type { AlertsPrisma } from './data/alerts-db';
5
+ /**
6
+ * Maps a telemetry failure to the evaluator's vocabulary: a store that cannot
7
+ * be reached is `AlertStoreUnavailableError` (the rule's incidents are left
8
+ * alone); anything else (a refused or failed statement) is the rule's own bug
9
+ * and surfaces as itself.
10
+ *
11
+ * @param error - what the telemetry slice threw.
12
+ * @returns the error to throw.
13
+ *
14
+ * @stability experimental
15
+ */
16
+ export declare function toAlertStoreError(error: unknown): unknown;
17
+ /**
18
+ * Derives the metric tables of a store schema: tables with the dialect's time
19
+ * and value columns, and their tag columns.
20
+ *
21
+ * @param schema - the store's schema.
22
+ * @param dialect - the store's SQL spelling.
23
+ * @returns the tables by name.
24
+ *
25
+ * @stability experimental
26
+ */
27
+ export declare function metricTablesOfSchema(schema: {
28
+ tables: ReadonlyArray<{
29
+ name: string;
30
+ columns: ReadonlyArray<{
31
+ name: string;
32
+ semanticType: string | null;
33
+ }>;
34
+ }>;
35
+ }, dialect: Pick<TelemetrySqlDialect, 'timestampColumn' | 'valueColumn'>): Map<string, AlertMetricTable>;
36
+ /**
37
+ * Builds the {@link AlertEvaluationContext} of one rule evaluation from the
38
+ * app's services. The telemetry, nodes and dashboard services are optional: a
39
+ * kind that needs one that is not installed gets `AlertStoreUnavailableError`.
40
+ *
41
+ * @stability experimental
42
+ */
43
+ export declare class AlertContextService {
44
+ private readonly prisma;
45
+ private readonly queries?;
46
+ private readonly schema?;
47
+ private readonly dialect?;
48
+ private readonly dashboard?;
49
+ private readonly lifecycle?;
50
+ private readonly logger;
51
+ constructor(prisma: AlertsPrisma, queries?: TelemetryQueryService | undefined, schema?: TelemetrySchemaService | undefined, dialect?: TelemetrySqlDialect | undefined, dashboard?: TelemetryDashboardService | undefined, lifecycle?: NodeLifecycleService | undefined);
52
+ /**
53
+ * The context for one evaluation.
54
+ *
55
+ * @param signal - aborted when the rule's time budget is spent.
56
+ * @param now - the instant the evaluation is for.
57
+ * @returns the context; its lazy members memoise per context.
58
+ */
59
+ create(signal: AbortSignal, now?: Date): AlertEvaluationContext;
60
+ private openTelemetry;
61
+ private readVerdict;
62
+ private readStale;
63
+ }
64
+ //# sourceMappingURL=alerts-context.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts-context.service.d.ts","sourceRoot":"","sources":["../../src/alerts/alerts-context.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAGL,yBAAyB,EAEzB,qBAAqB,EACrB,sBAAsB,EAItB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAsC,MAAM,gBAAgB,CAAC;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMzD;AAUD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,MAAM,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAAE,EAC1H,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,GAAG,aAAa,CAAC,GACpE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAe/B;AAED;;;;;;GAMG;AACH,qBACa,mBAAmB;IAIH,OAAO,CAAC,QAAQ,CAAC,MAAM;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IARzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAGnB,MAAM,EAAE,YAAY,EACjC,OAAO,CAAC,EAAE,qBAAqB,YAAA,EAC/B,MAAM,CAAC,EAAE,sBAAsB,YAAA,EACA,OAAO,CAAC,EAAE,mBAAmB,YAAA,EAC5D,SAAS,CAAC,EAAE,yBAAyB,YAAA,EACrC,SAAS,CAAC,EAAE,oBAAoB,YAAA;IAG/D;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,GAAE,IAAiB,GAAG,sBAAsB;YAe7D,aAAa;YA6Bb,WAAW;YAUX,SAAS;CAOxB"}