@marinoscar/platform-api 0.1.0-next.18 → 0.1.0-next.20

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 (598) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -0
  3. package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
  4. package/dist/ai/runtime/ai-limits.service.js +8 -1
  5. package/dist/ai/runtime/ai-limits.service.js.map +1 -1
  6. package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
  7. package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
  8. package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
  9. package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
  10. package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
  11. package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
  12. package/dist/ai/usage/ai-usage.controller.js +18 -11
  13. package/dist/ai/usage/ai-usage.controller.js.map +1 -1
  14. package/dist/ai/usage/ai-usage.service.d.ts +19 -4
  15. package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
  16. package/dist/ai/usage/ai-usage.service.js +84 -43
  17. package/dist/ai/usage/ai-usage.service.js.map +1 -1
  18. package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
  19. package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
  20. package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
  21. package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
  22. package/dist/alerts/alerts-admin.controller.d.ts +40 -0
  23. package/dist/alerts/alerts-admin.controller.d.ts.map +1 -0
  24. package/dist/alerts/alerts-admin.controller.js +297 -0
  25. package/dist/alerts/alerts-admin.controller.js.map +1 -0
  26. package/dist/alerts/alerts-context.service.d.ts +64 -0
  27. package/dist/alerts/alerts-context.service.d.ts.map +1 -0
  28. package/dist/alerts/alerts-context.service.js +190 -0
  29. package/dist/alerts/alerts-context.service.js.map +1 -0
  30. package/dist/alerts/alerts-dispatch.service.d.ts +53 -0
  31. package/dist/alerts/alerts-dispatch.service.d.ts.map +1 -0
  32. package/dist/alerts/alerts-dispatch.service.js +135 -0
  33. package/dist/alerts/alerts-dispatch.service.js.map +1 -0
  34. package/dist/alerts/alerts-evaluation.service.d.ts +88 -0
  35. package/dist/alerts/alerts-evaluation.service.d.ts.map +1 -0
  36. package/dist/alerts/alerts-evaluation.service.js +296 -0
  37. package/dist/alerts/alerts-evaluation.service.js.map +1 -0
  38. package/dist/alerts/alerts-event.listener.d.ts +22 -0
  39. package/dist/alerts/alerts-event.listener.d.ts.map +1 -0
  40. package/dist/alerts/alerts-event.listener.js +72 -0
  41. package/dist/alerts/alerts-event.listener.js.map +1 -0
  42. package/dist/alerts/alerts-incidents.service.d.ts +86 -0
  43. package/dist/alerts/alerts-incidents.service.d.ts.map +1 -0
  44. package/dist/alerts/alerts-incidents.service.js +144 -0
  45. package/dist/alerts/alerts-incidents.service.js.map +1 -0
  46. package/dist/alerts/alerts-rules.service.d.ts +73 -0
  47. package/dist/alerts/alerts-rules.service.d.ts.map +1 -0
  48. package/dist/alerts/alerts-rules.service.js +205 -0
  49. package/dist/alerts/alerts-rules.service.js.map +1 -0
  50. package/dist/alerts/alerts-seed.service.d.ts +25 -0
  51. package/dist/alerts/alerts-seed.service.d.ts.map +1 -0
  52. package/dist/alerts/alerts-seed.service.js +82 -0
  53. package/dist/alerts/alerts-seed.service.js.map +1 -0
  54. package/dist/alerts/alerts.constants.d.ts +53 -0
  55. package/dist/alerts/alerts.constants.d.ts.map +1 -0
  56. package/dist/alerts/alerts.constants.js +57 -0
  57. package/dist/alerts/alerts.constants.js.map +1 -0
  58. package/dist/alerts/alerts.errors.d.ts +44 -0
  59. package/dist/alerts/alerts.errors.d.ts.map +1 -0
  60. package/dist/alerts/alerts.errors.js +47 -0
  61. package/dist/alerts/alerts.errors.js.map +1 -0
  62. package/dist/alerts/alerts.metrics.d.ts +60 -0
  63. package/dist/alerts/alerts.metrics.d.ts.map +1 -0
  64. package/dist/alerts/alerts.metrics.js +135 -0
  65. package/dist/alerts/alerts.metrics.js.map +1 -0
  66. package/dist/alerts/alerts.module.d.ts +35 -0
  67. package/dist/alerts/alerts.module.d.ts.map +1 -0
  68. package/dist/alerts/alerts.module.js +96 -0
  69. package/dist/alerts/alerts.module.js.map +1 -0
  70. package/dist/alerts/alerts.options.d.ts +64 -0
  71. package/dist/alerts/alerts.options.d.ts.map +1 -0
  72. package/dist/alerts/alerts.options.js +34 -0
  73. package/dist/alerts/alerts.options.js.map +1 -0
  74. package/dist/alerts/alerts.permissions.d.ts +27 -0
  75. package/dist/alerts/alerts.permissions.d.ts.map +1 -0
  76. package/dist/alerts/alerts.permissions.js +29 -0
  77. package/dist/alerts/alerts.permissions.js.map +1 -0
  78. package/dist/alerts/alerts.types.d.ts +182 -0
  79. package/dist/alerts/alerts.types.d.ts.map +1 -0
  80. package/dist/alerts/alerts.types.js +3 -0
  81. package/dist/alerts/alerts.types.js.map +1 -0
  82. package/dist/alerts/data/alerts-db.d.ts +169 -0
  83. package/dist/alerts/data/alerts-db.d.ts.map +1 -0
  84. package/dist/alerts/data/alerts-db.js +18 -0
  85. package/dist/alerts/data/alerts-db.js.map +1 -0
  86. package/dist/alerts/dto/alerts.dto.d.ts +132 -0
  87. package/dist/alerts/dto/alerts.dto.d.ts.map +1 -0
  88. package/dist/alerts/dto/alerts.dto.js +42 -0
  89. package/dist/alerts/dto/alerts.dto.js.map +1 -0
  90. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts +23 -0
  91. package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts.map +1 -0
  92. package/dist/alerts/handlers/alerts-evaluate-event.handler.js +71 -0
  93. package/dist/alerts/handlers/alerts-evaluate-event.handler.js.map +1 -0
  94. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts +25 -0
  95. package/dist/alerts/handlers/alerts-evaluate.handler.d.ts.map +1 -0
  96. package/dist/alerts/handlers/alerts-evaluate.handler.js +54 -0
  97. package/dist/alerts/handlers/alerts-evaluate.handler.js.map +1 -0
  98. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts +29 -0
  99. package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts.map +1 -0
  100. package/dist/alerts/handlers/alerts-incidents-purge.handler.js +76 -0
  101. package/dist/alerts/handlers/alerts-incidents-purge.handler.js.map +1 -0
  102. package/dist/alerts/index.d.ts +45 -0
  103. package/dist/alerts/index.d.ts.map +1 -0
  104. package/dist/alerts/index.js +108 -0
  105. package/dist/alerts/index.js.map +1 -0
  106. package/dist/alerts/kinds/alert-kind.registry.d.ts +33 -0
  107. package/dist/alerts/kinds/alert-kind.registry.d.ts.map +1 -0
  108. package/dist/alerts/kinds/alert-kind.registry.js +63 -0
  109. package/dist/alerts/kinds/alert-kind.registry.js.map +1 -0
  110. package/dist/alerts/kinds/builtin-kinds.d.ts +18 -0
  111. package/dist/alerts/kinds/builtin-kinds.d.ts.map +1 -0
  112. package/dist/alerts/kinds/builtin-kinds.js +33 -0
  113. package/dist/alerts/kinds/builtin-kinds.js.map +1 -0
  114. package/dist/alerts/kinds/metric-threshold.kind.d.ts +11 -0
  115. package/dist/alerts/kinds/metric-threshold.kind.d.ts.map +1 -0
  116. package/dist/alerts/kinds/metric-threshold.kind.js +63 -0
  117. package/dist/alerts/kinds/metric-threshold.kind.js.map +1 -0
  118. package/dist/alerts/kinds/metric-threshold.sql.d.ts +41 -0
  119. package/dist/alerts/kinds/metric-threshold.sql.d.ts.map +1 -0
  120. package/dist/alerts/kinds/metric-threshold.sql.js +124 -0
  121. package/dist/alerts/kinds/metric-threshold.sql.js.map +1 -0
  122. package/dist/alerts/kinds/node-event.kind.d.ts +44 -0
  123. package/dist/alerts/kinds/node-event.kind.d.ts.map +1 -0
  124. package/dist/alerts/kinds/node-event.kind.js +113 -0
  125. package/dist/alerts/kinds/node-event.kind.js.map +1 -0
  126. package/dist/alerts/kinds/node-offline.kind.d.ts +11 -0
  127. package/dist/alerts/kinds/node-offline.kind.d.ts.map +1 -0
  128. package/dist/alerts/kinds/node-offline.kind.js +41 -0
  129. package/dist/alerts/kinds/node-offline.kind.js.map +1 -0
  130. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts +11 -0
  131. package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts.map +1 -0
  132. package/dist/alerts/kinds/telemetry-unavailable.kind.js +40 -0
  133. package/dist/alerts/kinds/telemetry-unavailable.kind.js.map +1 -0
  134. package/dist/alerts/kinds/verdict.kind.d.ts +13 -0
  135. package/dist/alerts/kinds/verdict.kind.d.ts.map +1 -0
  136. package/dist/alerts/kinds/verdict.kind.js +34 -0
  137. package/dist/alerts/kinds/verdict.kind.js.map +1 -0
  138. package/dist/alerts/notifications/alerts.notifications.d.ts +77 -0
  139. package/dist/alerts/notifications/alerts.notifications.d.ts.map +1 -0
  140. package/dist/alerts/notifications/alerts.notifications.js +145 -0
  141. package/dist/alerts/notifications/alerts.notifications.js.map +1 -0
  142. package/dist/alerts/starter-rules.d.ts +21 -0
  143. package/dist/alerts/starter-rules.d.ts.map +1 -0
  144. package/dist/alerts/starter-rules.js +141 -0
  145. package/dist/alerts/starter-rules.js.map +1 -0
  146. package/dist/alerts/state/alert-state-machine.d.ts +92 -0
  147. package/dist/alerts/state/alert-state-machine.d.ts.map +1 -0
  148. package/dist/alerts/state/alert-state-machine.js +96 -0
  149. package/dist/alerts/state/alert-state-machine.js.map +1 -0
  150. package/dist/alerts/tasks/alerts-evaluate.task.d.ts +18 -0
  151. package/dist/alerts/tasks/alerts-evaluate.task.d.ts.map +1 -0
  152. package/dist/alerts/tasks/alerts-evaluate.task.js +61 -0
  153. package/dist/alerts/tasks/alerts-evaluate.task.js.map +1 -0
  154. package/dist/alerts/tasks/alerts-purge.task.d.ts +15 -0
  155. package/dist/alerts/tasks/alerts-purge.task.d.ts.map +1 -0
  156. package/dist/alerts/tasks/alerts-purge.task.js +58 -0
  157. package/dist/alerts/tasks/alerts-purge.task.js.map +1 -0
  158. package/dist/alerts/testing/conformance.d.ts +58 -0
  159. package/dist/alerts/testing/conformance.d.ts.map +1 -0
  160. package/dist/alerts/testing/conformance.js +198 -0
  161. package/dist/alerts/testing/conformance.js.map +1 -0
  162. package/dist/alerts/testing/fakes.d.ts +80 -0
  163. package/dist/alerts/testing/fakes.d.ts.map +1 -0
  164. package/dist/alerts/testing/fakes.js +230 -0
  165. package/dist/alerts/testing/fakes.js.map +1 -0
  166. package/dist/alerts/testing/index.d.ts +5 -0
  167. package/dist/alerts/testing/index.d.ts.map +1 -0
  168. package/dist/alerts/testing/index.js +15 -0
  169. package/dist/alerts/testing/index.js.map +1 -0
  170. package/dist/core/index.d.ts +3 -0
  171. package/dist/core/index.d.ts.map +1 -1
  172. package/dist/core/index.js +13 -2
  173. package/dist/core/index.js.map +1 -1
  174. package/dist/core/net/ip-classify.d.ts +39 -0
  175. package/dist/core/net/ip-classify.d.ts.map +1 -0
  176. package/dist/core/net/ip-classify.js +196 -0
  177. package/dist/core/net/ip-classify.js.map +1 -0
  178. package/dist/core/timezone/request-time-zone.d.ts +61 -0
  179. package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
  180. package/dist/core/timezone/request-time-zone.js +71 -0
  181. package/dist/core/timezone/request-time-zone.js.map +1 -0
  182. package/dist/credentials/testing/conformance.d.ts.map +1 -1
  183. package/dist/credentials/testing/conformance.js +1 -0
  184. package/dist/credentials/testing/conformance.js.map +1 -1
  185. package/dist/email/email-settings.controller.d.ts +5 -2
  186. package/dist/email/email-settings.controller.d.ts.map +1 -1
  187. package/dist/email/email-settings.controller.js +11 -5
  188. package/dist/email/email-settings.controller.js.map +1 -1
  189. package/dist/email/email-test-send.service.d.ts +11 -1
  190. package/dist/email/email-test-send.service.d.ts.map +1 -1
  191. package/dist/email/email-test-send.service.js +17 -3
  192. package/dist/email/email-test-send.service.js.map +1 -1
  193. package/dist/email/index.d.ts +2 -2
  194. package/dist/email/index.d.ts.map +1 -1
  195. package/dist/email/index.js +3 -1
  196. package/dist/email/index.js.map +1 -1
  197. package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
  198. package/dist/email/templates/backup-failed.email.js +9 -5
  199. package/dist/email/templates/backup-failed.email.js.map +1 -1
  200. package/dist/email/templates/format-date.d.ts +39 -0
  201. package/dist/email/templates/format-date.d.ts.map +1 -0
  202. package/dist/email/templates/format-date.js +103 -0
  203. package/dist/email/templates/format-date.js.map +1 -0
  204. package/dist/email/templates/index.d.ts +2 -0
  205. package/dist/email/templates/index.d.ts.map +1 -1
  206. package/dist/email/templates/index.js +4 -1
  207. package/dist/email/templates/index.js.map +1 -1
  208. package/dist/email/templates/job-failed.email.d.ts +1 -1
  209. package/dist/email/templates/job-failed.email.d.ts.map +1 -1
  210. package/dist/email/templates/job-failed.email.js +6 -6
  211. package/dist/email/templates/job-failed.email.js.map +1 -1
  212. package/dist/email/templates/node-offline.email.d.ts.map +1 -1
  213. package/dist/email/templates/node-offline.email.js +11 -7
  214. package/dist/email/templates/node-offline.email.js.map +1 -1
  215. package/dist/email/templates/render-context.d.ts +5 -0
  216. package/dist/email/templates/render-context.d.ts.map +1 -1
  217. package/dist/email/templates/render-context.js.map +1 -1
  218. package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
  219. package/dist/email/templates/restore-completed.email.js +9 -5
  220. package/dist/email/templates/restore-completed.email.js.map +1 -1
  221. package/dist/email/templates/role-changed.email.d.ts +1 -1
  222. package/dist/email/templates/role-changed.email.d.ts.map +1 -1
  223. package/dist/email/templates/role-changed.email.js +6 -7
  224. package/dist/email/templates/role-changed.email.js.map +1 -1
  225. package/dist/email/templates/test-email.email.d.ts +1 -1
  226. package/dist/email/templates/test-email.email.d.ts.map +1 -1
  227. package/dist/email/templates/test-email.email.js +6 -11
  228. package/dist/email/templates/test-email.email.js.map +1 -1
  229. package/dist/exports/export-job.d.ts +1 -0
  230. package/dist/exports/export-job.d.ts.map +1 -1
  231. package/dist/exports/export-job.js +2 -0
  232. package/dist/exports/export-job.js.map +1 -1
  233. package/dist/exports/export.types.d.ts +8 -0
  234. package/dist/exports/export.types.d.ts.map +1 -1
  235. package/dist/exports/exports.controller.d.ts +4 -2
  236. package/dist/exports/exports.controller.d.ts.map +1 -1
  237. package/dist/exports/exports.controller.js +15 -6
  238. package/dist/exports/exports.controller.js.map +1 -1
  239. package/dist/exports/exports.service.d.ts +5 -0
  240. package/dist/exports/exports.service.d.ts.map +1 -1
  241. package/dist/exports/exports.service.js +3 -0
  242. package/dist/exports/exports.service.js.map +1 -1
  243. package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
  244. package/dist/exports/handlers/export-run.handler.js +4 -1
  245. package/dist/exports/handlers/export-run.handler.js.map +1 -1
  246. package/dist/exports/index.d.ts +1 -0
  247. package/dist/exports/index.d.ts.map +1 -1
  248. package/dist/exports/index.js +7 -2
  249. package/dist/exports/index.js.map +1 -1
  250. package/dist/exports/testing/conformance.d.ts.map +1 -1
  251. package/dist/exports/testing/conformance.js +1 -0
  252. package/dist/exports/testing/conformance.js.map +1 -1
  253. package/dist/host/http/cors-options.d.ts +5 -1
  254. package/dist/host/http/cors-options.d.ts.map +1 -1
  255. package/dist/host/http/cors-options.js.map +1 -1
  256. package/dist/identity/pat/pat.controller.d.ts +4 -3
  257. package/dist/identity/pat/pat.controller.d.ts.map +1 -1
  258. package/dist/identity/pat/pat.controller.js +19 -5
  259. package/dist/identity/pat/pat.controller.js.map +1 -1
  260. package/dist/identity/pat/pat.service.d.ts +21 -0
  261. package/dist/identity/pat/pat.service.d.ts.map +1 -1
  262. package/dist/identity/pat/pat.service.js +27 -10
  263. package/dist/identity/pat/pat.service.js.map +1 -1
  264. package/dist/jobs/data/jobs-db.d.ts +26 -0
  265. package/dist/jobs/data/jobs-db.d.ts.map +1 -1
  266. package/dist/jobs/index.d.ts +1 -1
  267. package/dist/jobs/index.d.ts.map +1 -1
  268. package/dist/jobs/index.js.map +1 -1
  269. package/dist/manifest/platform-model-ownership.d.ts +1 -1
  270. package/dist/manifest/platform-model-ownership.d.ts.map +1 -1
  271. package/dist/manifest/platform-model-ownership.js +30 -1
  272. package/dist/manifest/platform-model-ownership.js.map +1 -1
  273. package/dist/manifest/platform-permissions.d.ts +6 -2
  274. package/dist/manifest/platform-permissions.d.ts.map +1 -1
  275. package/dist/manifest/platform-permissions.js +56 -44
  276. package/dist/manifest/platform-permissions.js.map +1 -1
  277. package/dist/manifest/platform-user-owned-models.d.ts.map +1 -1
  278. package/dist/manifest/platform-user-owned-models.js +16 -0
  279. package/dist/manifest/platform-user-owned-models.js.map +1 -1
  280. package/dist/nodes/dto/node-admin.dto.d.ts +5 -0
  281. package/dist/nodes/dto/node-admin.dto.d.ts.map +1 -1
  282. package/dist/nodes/dto/node-admin.dto.js +19 -0
  283. package/dist/nodes/dto/node-admin.dto.js.map +1 -1
  284. package/dist/nodes/dto/node-control-plane.dto.d.ts +26 -0
  285. package/dist/nodes/dto/node-control-plane.dto.d.ts.map +1 -1
  286. package/dist/nodes/dto/node-event.dto.d.ts +100 -0
  287. package/dist/nodes/dto/node-event.dto.d.ts.map +1 -0
  288. package/dist/nodes/dto/node-event.dto.js +239 -0
  289. package/dist/nodes/dto/node-event.dto.js.map +1 -0
  290. package/dist/nodes/dto/node-response.dto.d.ts +21 -0
  291. package/dist/nodes/dto/node-response.dto.d.ts.map +1 -1
  292. package/dist/nodes/dto/node-response.dto.js +42 -1
  293. package/dist/nodes/dto/node-response.dto.js.map +1 -1
  294. package/dist/nodes/events/node-event.event.d.ts +41 -0
  295. package/dist/nodes/events/node-event.event.d.ts.map +1 -0
  296. package/dist/nodes/events/node-event.event.js +69 -0
  297. package/dist/nodes/events/node-event.event.js.map +1 -0
  298. package/dist/nodes/handlers/node-events-purge.handler.d.ts +31 -0
  299. package/dist/nodes/handlers/node-events-purge.handler.d.ts.map +1 -0
  300. package/dist/nodes/handlers/node-events-purge.handler.js +91 -0
  301. package/dist/nodes/handlers/node-events-purge.handler.js.map +1 -0
  302. package/dist/nodes/index.d.ts +11 -4
  303. package/dist/nodes/index.d.ts.map +1 -1
  304. package/dist/nodes/index.js +20 -1
  305. package/dist/nodes/index.js.map +1 -1
  306. package/dist/nodes/node-events.service.d.ts +87 -0
  307. package/dist/nodes/node-events.service.d.ts.map +1 -0
  308. package/dist/nodes/node-events.service.js +271 -0
  309. package/dist/nodes/node-events.service.js.map +1 -0
  310. package/dist/nodes/node-fleet-metrics.service.d.ts +10 -1
  311. package/dist/nodes/node-fleet-metrics.service.d.ts.map +1 -1
  312. package/dist/nodes/node-fleet-metrics.service.js +31 -0
  313. package/dist/nodes/node-fleet-metrics.service.js.map +1 -1
  314. package/dist/nodes/node-lifecycle.service.d.ts +16 -1
  315. package/dist/nodes/node-lifecycle.service.d.ts.map +1 -1
  316. package/dist/nodes/node-lifecycle.service.js +7 -0
  317. package/dist/nodes/node-lifecycle.service.js.map +1 -1
  318. package/dist/nodes/nodes-admin.controller.d.ts +5 -1
  319. package/dist/nodes/nodes-admin.controller.d.ts.map +1 -1
  320. package/dist/nodes/nodes-admin.controller.js +32 -2
  321. package/dist/nodes/nodes-admin.controller.js.map +1 -1
  322. package/dist/nodes/nodes.controller.d.ts +7 -3
  323. package/dist/nodes/nodes.controller.d.ts.map +1 -1
  324. package/dist/nodes/nodes.controller.js +46 -6
  325. package/dist/nodes/nodes.controller.js.map +1 -1
  326. package/dist/nodes/nodes.metrics.d.ts +23 -1
  327. package/dist/nodes/nodes.metrics.d.ts.map +1 -1
  328. package/dist/nodes/nodes.metrics.js +80 -1
  329. package/dist/nodes/nodes.metrics.js.map +1 -1
  330. package/dist/nodes/nodes.module.d.ts.map +1 -1
  331. package/dist/nodes/nodes.module.js +6 -0
  332. package/dist/nodes/nodes.module.js.map +1 -1
  333. package/dist/nodes/nodes.options.d.ts +17 -0
  334. package/dist/nodes/nodes.options.d.ts.map +1 -1
  335. package/dist/nodes/nodes.options.js +13 -2
  336. package/dist/nodes/nodes.options.js.map +1 -1
  337. package/dist/nodes/nodes.service.d.ts +3 -1
  338. package/dist/nodes/nodes.service.d.ts.map +1 -1
  339. package/dist/nodes/nodes.service.js +14 -3
  340. package/dist/nodes/nodes.service.js.map +1 -1
  341. package/dist/nodes/tasks/node-events-purge.task.d.ts +13 -0
  342. package/dist/nodes/tasks/node-events-purge.task.d.ts.map +1 -0
  343. package/dist/nodes/tasks/node-events-purge.task.js +73 -0
  344. package/dist/nodes/tasks/node-events-purge.task.js.map +1 -0
  345. package/dist/notifications/channels/browser-notification.channel.js +1 -1
  346. package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
  347. package/dist/notifications/channels/browser-templates.d.ts +12 -1
  348. package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
  349. package/dist/notifications/channels/browser-templates.js +5 -4
  350. package/dist/notifications/channels/browser-templates.js.map +1 -1
  351. package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
  352. package/dist/notifications/channels/email-notification.channel.js +3 -3
  353. package/dist/notifications/channels/email-notification.channel.js.map +1 -1
  354. package/dist/notifications/channels/push-notification.channel.js +1 -1
  355. package/dist/notifications/channels/push-notification.channel.js.map +1 -1
  356. package/dist/notifications/index.d.ts +1 -1
  357. package/dist/notifications/index.d.ts.map +1 -1
  358. package/dist/notifications/notification.types.d.ts +15 -0
  359. package/dist/notifications/notification.types.d.ts.map +1 -1
  360. package/dist/notifications/notification.types.js.map +1 -1
  361. package/dist/notifications/notifications.service.d.ts.map +1 -1
  362. package/dist/notifications/notifications.service.js +8 -0
  363. package/dist/notifications/notifications.service.js.map +1 -1
  364. package/dist/notifications/push-config.controller.d.ts +5 -2
  365. package/dist/notifications/push-config.controller.d.ts.map +1 -1
  366. package/dist/notifications/push-config.controller.js +11 -5
  367. package/dist/notifications/push-config.controller.js.map +1 -1
  368. package/dist/notifications/push-test.service.d.ts +1 -1
  369. package/dist/notifications/push-test.service.d.ts.map +1 -1
  370. package/dist/notifications/push-test.service.js +6 -4
  371. package/dist/notifications/push-test.service.js.map +1 -1
  372. package/dist/settings/settings-resolver.d.ts +28 -1
  373. package/dist/settings/settings-resolver.d.ts.map +1 -1
  374. package/dist/settings/settings-resolver.js +41 -0
  375. package/dist/settings/settings-resolver.js.map +1 -1
  376. package/dist/settings/settings.module.d.ts.map +1 -1
  377. package/dist/settings/settings.module.js +9 -4
  378. package/dist/settings/settings.module.js.map +1 -1
  379. package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
  380. package/dist/settings/user-settings/user-settings.service.js +2 -4
  381. package/dist/settings/user-settings/user-settings.service.js.map +1 -1
  382. package/dist/sharing/grants/grants.service.js +2 -2
  383. package/dist/sharing/grants/grants.service.js.map +1 -1
  384. package/dist/sharing/groups/group-invites.service.js +1 -1
  385. package/dist/sharing/groups/group-invites.service.js.map +1 -1
  386. package/dist/sharing/groups/sharing-effects.d.ts +2 -1
  387. package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
  388. package/dist/sharing/groups/sharing-effects.js +4 -4
  389. package/dist/sharing/groups/sharing-effects.js.map +1 -1
  390. package/dist/sharing/index.d.ts +1 -1
  391. package/dist/sharing/index.d.ts.map +1 -1
  392. package/dist/sharing/index.js.map +1 -1
  393. package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
  394. package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
  395. package/dist/sharing/notifications/group-invitation.templates.js +17 -2
  396. package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
  397. package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
  398. package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
  399. package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
  400. package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
  401. package/dist/sharing/ports.d.ts +15 -2
  402. package/dist/sharing/ports.d.ts.map +1 -1
  403. package/dist/sharing/ports.js.map +1 -1
  404. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +30 -8
  405. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -1
  406. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +12 -0
  407. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -1
  408. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +15 -0
  409. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -1
  410. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +17 -2
  411. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -1
  412. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +3 -3
  413. package/dist/telemetry/index.d.ts +4 -2
  414. package/dist/telemetry/index.d.ts.map +1 -1
  415. package/dist/telemetry/index.js +4 -1
  416. package/dist/telemetry/index.js.map +1 -1
  417. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -1
  418. package/dist/telemetry/metrics/groups/nodes.metric-group.js +77 -0
  419. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -1
  420. package/dist/telemetry/metrics/metric-verdict.d.ts +1 -1
  421. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -1
  422. package/dist/telemetry/metrics/metric-verdict.js +15 -1
  423. package/dist/telemetry/metrics/metric-verdict.js.map +1 -1
  424. package/dist/telemetry/query/telemetry-query-facade.d.ts +1 -1
  425. package/dist/telemetry/query/telemetry-query-facade.d.ts.map +1 -1
  426. package/dist/telemetry/query/telemetry-query-facade.js.map +1 -1
  427. package/dist/telemetry/query/telemetry-query.service.d.ts +2 -2
  428. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -1
  429. package/dist/telemetry/query/telemetry-query.service.js +4 -0
  430. package/dist/telemetry/query/telemetry-query.service.js.map +1 -1
  431. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +1 -1
  432. package/dist/telemetry/telemetry-support-bundle.section.d.ts +4 -4
  433. package/dist/telemetry/telemetry.module.d.ts.map +1 -1
  434. package/dist/telemetry/telemetry.module.js +1 -0
  435. package/dist/telemetry/telemetry.module.js.map +1 -1
  436. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -1
  437. package/dist/telemetry/testing/metric-schema.fixture.js +56 -0
  438. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -1
  439. package/dist/user-data/platform-user-data.d.ts.map +1 -1
  440. package/dist/user-data/platform-user-data.js +2 -0
  441. package/dist/user-data/platform-user-data.js.map +1 -1
  442. package/dist/webhooks/data/webhooks-db.d.ts +176 -0
  443. package/dist/webhooks/data/webhooks-db.d.ts.map +1 -0
  444. package/dist/webhooks/data/webhooks-db.js +14 -0
  445. package/dist/webhooks/data/webhooks-db.js.map +1 -0
  446. package/dist/webhooks/egress/egress-guard.d.ts +99 -0
  447. package/dist/webhooks/egress/egress-guard.d.ts.map +1 -0
  448. package/dist/webhooks/egress/egress-guard.js +172 -0
  449. package/dist/webhooks/egress/egress-guard.js.map +1 -0
  450. package/dist/webhooks/egress/transport.d.ts +58 -0
  451. package/dist/webhooks/egress/transport.d.ts.map +1 -0
  452. package/dist/webhooks/egress/transport.js +115 -0
  453. package/dist/webhooks/egress/transport.js.map +1 -0
  454. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts +76 -0
  455. package/dist/webhooks/handlers/webhook-deliver.handler.d.ts.map +1 -0
  456. package/dist/webhooks/handlers/webhook-deliver.handler.js +332 -0
  457. package/dist/webhooks/handlers/webhook-deliver.handler.js.map +1 -0
  458. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts +28 -0
  459. package/dist/webhooks/handlers/webhook-fanout.handler.d.ts.map +1 -0
  460. package/dist/webhooks/handlers/webhook-fanout.handler.js +73 -0
  461. package/dist/webhooks/handlers/webhook-fanout.handler.js.map +1 -0
  462. package/dist/webhooks/handlers/webhook-purge.handler.d.ts +33 -0
  463. package/dist/webhooks/handlers/webhook-purge.handler.d.ts.map +1 -0
  464. package/dist/webhooks/handlers/webhook-purge.handler.js +77 -0
  465. package/dist/webhooks/handlers/webhook-purge.handler.js.map +1 -0
  466. package/dist/webhooks/http/admin-webhooks.controller.d.ts +36 -0
  467. package/dist/webhooks/http/admin-webhooks.controller.d.ts.map +1 -0
  468. package/dist/webhooks/http/admin-webhooks.controller.js +250 -0
  469. package/dist/webhooks/http/admin-webhooks.controller.js.map +1 -0
  470. package/dist/webhooks/http/org-webhooks.controller.d.ts +36 -0
  471. package/dist/webhooks/http/org-webhooks.controller.d.ts.map +1 -0
  472. package/dist/webhooks/http/org-webhooks.controller.js +249 -0
  473. package/dist/webhooks/http/org-webhooks.controller.js.map +1 -0
  474. package/dist/webhooks/http/scope-context.d.ts +17 -0
  475. package/dist/webhooks/http/scope-context.d.ts.map +1 -0
  476. package/dist/webhooks/http/scope-context.js +28 -0
  477. package/dist/webhooks/http/scope-context.js.map +1 -0
  478. package/dist/webhooks/http/webhook.dto.d.ts +174 -0
  479. package/dist/webhooks/http/webhook.dto.d.ts.map +1 -0
  480. package/dist/webhooks/http/webhook.dto.js +58 -0
  481. package/dist/webhooks/http/webhook.dto.js.map +1 -0
  482. package/dist/webhooks/http/webhooks.controller.d.ts +36 -0
  483. package/dist/webhooks/http/webhooks.controller.d.ts.map +1 -0
  484. package/dist/webhooks/http/webhooks.controller.js +243 -0
  485. package/dist/webhooks/http/webhooks.controller.js.map +1 -0
  486. package/dist/webhooks/index.d.ts +43 -0
  487. package/dist/webhooks/index.d.ts.map +1 -0
  488. package/dist/webhooks/index.js +147 -0
  489. package/dist/webhooks/index.js.map +1 -0
  490. package/dist/webhooks/listeners/webhook-event.listeners.d.ts +23 -0
  491. package/dist/webhooks/listeners/webhook-event.listeners.d.ts.map +1 -0
  492. package/dist/webhooks/listeners/webhook-event.listeners.js +120 -0
  493. package/dist/webhooks/listeners/webhook-event.listeners.js.map +1 -0
  494. package/dist/webhooks/notifications/webhook-notification.channel.d.ts +31 -0
  495. package/dist/webhooks/notifications/webhook-notification.channel.d.ts.map +1 -0
  496. package/dist/webhooks/notifications/webhook-notification.channel.js +127 -0
  497. package/dist/webhooks/notifications/webhook-notification.channel.js.map +1 -0
  498. package/dist/webhooks/notifications/webhook-notifications.d.ts +98 -0
  499. package/dist/webhooks/notifications/webhook-notifications.d.ts.map +1 -0
  500. package/dist/webhooks/notifications/webhook-notifications.js +150 -0
  501. package/dist/webhooks/notifications/webhook-notifications.js.map +1 -0
  502. package/dist/webhooks/ports.d.ts +29 -0
  503. package/dist/webhooks/ports.d.ts.map +1 -0
  504. package/dist/webhooks/ports.js +23 -0
  505. package/dist/webhooks/ports.js.map +1 -0
  506. package/dist/webhooks/registry/builtin-events.d.ts +57 -0
  507. package/dist/webhooks/registry/builtin-events.d.ts.map +1 -0
  508. package/dist/webhooks/registry/builtin-events.js +113 -0
  509. package/dist/webhooks/registry/builtin-events.js.map +1 -0
  510. package/dist/webhooks/registry/webhook-catalog.d.ts +63 -0
  511. package/dist/webhooks/registry/webhook-catalog.d.ts.map +1 -0
  512. package/dist/webhooks/registry/webhook-catalog.js +123 -0
  513. package/dist/webhooks/registry/webhook-catalog.js.map +1 -0
  514. package/dist/webhooks/registry/webhook-event.registry.d.ts +116 -0
  515. package/dist/webhooks/registry/webhook-event.registry.d.ts.map +1 -0
  516. package/dist/webhooks/registry/webhook-event.registry.js +152 -0
  517. package/dist/webhooks/registry/webhook-event.registry.js.map +1 -0
  518. package/dist/webhooks/signing.d.ts +31 -0
  519. package/dist/webhooks/signing.d.ts.map +1 -0
  520. package/dist/webhooks/signing.js +48 -0
  521. package/dist/webhooks/signing.js.map +1 -0
  522. package/dist/webhooks/tasks/webhook-purge.task.d.ts +17 -0
  523. package/dist/webhooks/tasks/webhook-purge.task.d.ts.map +1 -0
  524. package/dist/webhooks/tasks/webhook-purge.task.js +68 -0
  525. package/dist/webhooks/tasks/webhook-purge.task.js.map +1 -0
  526. package/dist/webhooks/testing/conformance.d.ts +61 -0
  527. package/dist/webhooks/testing/conformance.d.ts.map +1 -0
  528. package/dist/webhooks/testing/conformance.js +316 -0
  529. package/dist/webhooks/testing/conformance.js.map +1 -0
  530. package/dist/webhooks/testing/in-memory.d.ts +156 -0
  531. package/dist/webhooks/testing/in-memory.d.ts.map +1 -0
  532. package/dist/webhooks/testing/in-memory.js +323 -0
  533. package/dist/webhooks/testing/in-memory.js.map +1 -0
  534. package/dist/webhooks/testing/index.d.ts +7 -0
  535. package/dist/webhooks/testing/index.d.ts.map +1 -0
  536. package/dist/webhooks/testing/index.js +25 -0
  537. package/dist/webhooks/testing/index.js.map +1 -0
  538. package/dist/webhooks/testing/kit.d.ts +86 -0
  539. package/dist/webhooks/testing/kit.d.ts.map +1 -0
  540. package/dist/webhooks/testing/kit.js +113 -0
  541. package/dist/webhooks/testing/kit.js.map +1 -0
  542. package/dist/webhooks/webhook-endpoints.service.d.ts +142 -0
  543. package/dist/webhooks/webhook-endpoints.service.d.ts.map +1 -0
  544. package/dist/webhooks/webhook-endpoints.service.js +366 -0
  545. package/dist/webhooks/webhook-endpoints.service.js.map +1 -0
  546. package/dist/webhooks/webhook-envelope.d.ts +36 -0
  547. package/dist/webhooks/webhook-envelope.d.ts.map +1 -0
  548. package/dist/webhooks/webhook-envelope.js +46 -0
  549. package/dist/webhooks/webhook-envelope.js.map +1 -0
  550. package/dist/webhooks/webhook-secrets.service.d.ts +49 -0
  551. package/dist/webhooks/webhook-secrets.service.d.ts.map +1 -0
  552. package/dist/webhooks/webhook-secrets.service.js +118 -0
  553. package/dist/webhooks/webhook-secrets.service.js.map +1 -0
  554. package/dist/webhooks/webhook-views.d.ts +34 -0
  555. package/dist/webhooks/webhook-views.d.ts.map +1 -0
  556. package/dist/webhooks/webhook-views.js +83 -0
  557. package/dist/webhooks/webhook-views.js.map +1 -0
  558. package/dist/webhooks/webhooks.access.d.ts +28 -0
  559. package/dist/webhooks/webhooks.access.d.ts.map +1 -0
  560. package/dist/webhooks/webhooks.access.js +55 -0
  561. package/dist/webhooks/webhooks.access.js.map +1 -0
  562. package/dist/webhooks/webhooks.constants.d.ts +73 -0
  563. package/dist/webhooks/webhooks.constants.d.ts.map +1 -0
  564. package/dist/webhooks/webhooks.constants.js +100 -0
  565. package/dist/webhooks/webhooks.constants.js.map +1 -0
  566. package/dist/webhooks/webhooks.credentials.d.ts +28 -0
  567. package/dist/webhooks/webhooks.credentials.d.ts.map +1 -0
  568. package/dist/webhooks/webhooks.credentials.js +51 -0
  569. package/dist/webhooks/webhooks.credentials.js.map +1 -0
  570. package/dist/webhooks/webhooks.errors.d.ts +25 -0
  571. package/dist/webhooks/webhooks.errors.d.ts.map +1 -0
  572. package/dist/webhooks/webhooks.errors.js +65 -0
  573. package/dist/webhooks/webhooks.errors.js.map +1 -0
  574. package/dist/webhooks/webhooks.metrics.d.ts +24 -0
  575. package/dist/webhooks/webhooks.metrics.d.ts.map +1 -0
  576. package/dist/webhooks/webhooks.metrics.js +70 -0
  577. package/dist/webhooks/webhooks.metrics.js.map +1 -0
  578. package/dist/webhooks/webhooks.module.d.ts +29 -0
  579. package/dist/webhooks/webhooks.module.d.ts.map +1 -0
  580. package/dist/webhooks/webhooks.module.js +108 -0
  581. package/dist/webhooks/webhooks.module.js.map +1 -0
  582. package/dist/webhooks/webhooks.options.d.ts +119 -0
  583. package/dist/webhooks/webhooks.options.d.ts.map +1 -0
  584. package/dist/webhooks/webhooks.options.js +80 -0
  585. package/dist/webhooks/webhooks.options.js.map +1 -0
  586. package/dist/webhooks/webhooks.permissions.d.ts +47 -0
  587. package/dist/webhooks/webhooks.permissions.d.ts.map +1 -0
  588. package/dist/webhooks/webhooks.permissions.js +83 -0
  589. package/dist/webhooks/webhooks.permissions.js.map +1 -0
  590. package/dist/webhooks/webhooks.repository.d.ts +162 -0
  591. package/dist/webhooks/webhooks.repository.d.ts.map +1 -0
  592. package/dist/webhooks/webhooks.repository.js +246 -0
  593. package/dist/webhooks/webhooks.repository.js.map +1 -0
  594. package/dist/webhooks/webhooks.service.d.ts +91 -0
  595. package/dist/webhooks/webhooks.service.d.ts.map +1 -0
  596. package/dist/webhooks/webhooks.service.js +216 -0
  597. package/dist/webhooks/webhooks.service.js.map +1 -0
  598. package/package.json +19 -3
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The node event log's wire shapes (issue #1045)
4
+ // =============================================================================
5
+ //
6
+ // The schemas live in `@marinoscar/platform-contract/nodes`; these classes add
7
+ // the Swagger decorators the generated OpenAPI document is made of, and each
8
+ // `implements` its contract type so the two cannot drift.
9
+ // =============================================================================
10
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
11
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13
+ 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;
14
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15
+ };
16
+ var __metadata = (this && this.__metadata) || function (k, v) {
17
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.NodePowerDto = exports.NodeHostVitalsDto = exports.AdminNodeEventListDto = exports.AdminNodeEventDto = exports.NodeEventListQueryDto = void 0;
21
+ const swagger_1 = require("@nestjs/swagger");
22
+ const nodes_1 = require("@marinoscar/platform-contract/nodes");
23
+ const nestjs_zod_1 = require("nestjs-zod");
24
+ /**
25
+ * The events-list query (`nodeEventListQuerySchema`).
26
+ *
27
+ * @stability experimental
28
+ */
29
+ class NodeEventListQueryDto extends (0, nestjs_zod_1.createZodDto)(nodes_1.nodeEventListQuerySchema) {
30
+ }
31
+ exports.NodeEventListQueryDto = NodeEventListQueryDto;
32
+ /**
33
+ * One event a node reported about itself.
34
+ *
35
+ * @stability experimental
36
+ */
37
+ class AdminNodeEventDto {
38
+ /** Event ID (UUID) */
39
+ id;
40
+ /** The node that reported it (UUID) */
41
+ nodeId;
42
+ /** Dotted event type */
43
+ type;
44
+ /** How loud it is */
45
+ severity;
46
+ /** The node's scalar attributes, `{}` when none */
47
+ attrs;
48
+ /** When it happened (ISO 8601) */
49
+ occurredAt;
50
+ /** When the server received it (ISO 8601) */
51
+ receivedAt;
52
+ }
53
+ exports.AdminNodeEventDto = AdminNodeEventDto;
54
+ __decorate([
55
+ (0, swagger_1.ApiProperty)({ description: 'Event ID (UUID)' }),
56
+ __metadata("design:type", String)
57
+ ], AdminNodeEventDto.prototype, "id", void 0);
58
+ __decorate([
59
+ (0, swagger_1.ApiProperty)({ description: 'The node that reported it (UUID)' }),
60
+ __metadata("design:type", String)
61
+ ], AdminNodeEventDto.prototype, "nodeId", void 0);
62
+ __decorate([
63
+ (0, swagger_1.ApiProperty)({ description: 'Dotted event type, e.g. `power.battery_low`' }),
64
+ __metadata("design:type", String)
65
+ ], AdminNodeEventDto.prototype, "type", void 0);
66
+ __decorate([
67
+ (0, swagger_1.ApiProperty)({ description: 'How loud it is', enum: ['info', 'warning', 'critical'] }),
68
+ __metadata("design:type", String)
69
+ ], AdminNodeEventDto.prototype, "severity", void 0);
70
+ __decorate([
71
+ (0, swagger_1.ApiProperty)({
72
+ description: 'The node’s scalar attributes, `{}` when none. Self-reported and untrusted.',
73
+ type: 'object',
74
+ additionalProperties: { oneOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }] },
75
+ }),
76
+ __metadata("design:type", Object)
77
+ ], AdminNodeEventDto.prototype, "attrs", void 0);
78
+ __decorate([
79
+ (0, swagger_1.ApiProperty)({
80
+ description: 'When it happened (ISO 8601), on the node’s clock. A value more than 24 hours old or more ' +
81
+ 'than 5 minutes ahead of the server is replaced by `receivedAt`.',
82
+ }),
83
+ __metadata("design:type", String)
84
+ ], AdminNodeEventDto.prototype, "occurredAt", void 0);
85
+ __decorate([
86
+ (0, swagger_1.ApiProperty)({ description: 'When the server received it (ISO 8601)' }),
87
+ __metadata("design:type", String)
88
+ ], AdminNodeEventDto.prototype, "receivedAt", void 0);
89
+ /**
90
+ * A page of node events, newest first.
91
+ *
92
+ * @stability experimental
93
+ */
94
+ class AdminNodeEventListDto {
95
+ /** The page's events */
96
+ items;
97
+ /** Total events matching the filters */
98
+ total;
99
+ /** Current page, from 1 */
100
+ page;
101
+ /** Page size */
102
+ pageSize;
103
+ /** Total pages (at least 1) */
104
+ totalPages;
105
+ }
106
+ exports.AdminNodeEventListDto = AdminNodeEventListDto;
107
+ __decorate([
108
+ (0, swagger_1.ApiProperty)({ description: 'The page’s events, newest first', type: [AdminNodeEventDto] }),
109
+ __metadata("design:type", Array)
110
+ ], AdminNodeEventListDto.prototype, "items", void 0);
111
+ __decorate([
112
+ (0, swagger_1.ApiProperty)({ description: 'Total events matching the filters' }),
113
+ __metadata("design:type", Number)
114
+ ], AdminNodeEventListDto.prototype, "total", void 0);
115
+ __decorate([
116
+ (0, swagger_1.ApiProperty)({ description: 'Current page, from 1' }),
117
+ __metadata("design:type", Number)
118
+ ], AdminNodeEventListDto.prototype, "page", void 0);
119
+ __decorate([
120
+ (0, swagger_1.ApiProperty)({ description: 'Page size' }),
121
+ __metadata("design:type", Number)
122
+ ], AdminNodeEventListDto.prototype, "pageSize", void 0);
123
+ __decorate([
124
+ (0, swagger_1.ApiProperty)({ description: 'Total pages (at least 1)' }),
125
+ __metadata("design:type", Number)
126
+ ], AdminNodeEventListDto.prototype, "totalPages", void 0);
127
+ /**
128
+ * Machine-level readings a node reported (`vitals.host`).
129
+ *
130
+ * @stability experimental
131
+ */
132
+ class NodeHostVitalsDto {
133
+ /** System-wide CPU utilisation, 0 to 100 */
134
+ cpuPercent;
135
+ /** Logical CPU count */
136
+ cpuCount;
137
+ /** 1-minute load average */
138
+ loadAvg1;
139
+ /** 5-minute load average */
140
+ loadAvg5;
141
+ /** 15-minute load average */
142
+ loadAvg15;
143
+ /** Total physical memory, bytes */
144
+ memTotalBytes;
145
+ /** Free physical memory, bytes */
146
+ memFreeBytes;
147
+ /** Memory available to new work, bytes */
148
+ memAvailableBytes;
149
+ /** OS release string */
150
+ osRelease;
151
+ /** CPU architecture */
152
+ arch;
153
+ /** Seconds since boot */
154
+ uptimeSeconds;
155
+ }
156
+ exports.NodeHostVitalsDto = NodeHostVitalsDto;
157
+ __decorate([
158
+ (0, swagger_1.ApiPropertyOptional)({ description: 'System-wide CPU utilisation, 0 to 100', minimum: 0, maximum: 100 }),
159
+ __metadata("design:type", Number)
160
+ ], NodeHostVitalsDto.prototype, "cpuPercent", void 0);
161
+ __decorate([
162
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Logical CPU count' }),
163
+ __metadata("design:type", Number)
164
+ ], NodeHostVitalsDto.prototype, "cpuCount", void 0);
165
+ __decorate([
166
+ (0, swagger_1.ApiPropertyOptional)({ description: '1-minute load average' }),
167
+ __metadata("design:type", Number)
168
+ ], NodeHostVitalsDto.prototype, "loadAvg1", void 0);
169
+ __decorate([
170
+ (0, swagger_1.ApiPropertyOptional)({ description: '5-minute load average' }),
171
+ __metadata("design:type", Number)
172
+ ], NodeHostVitalsDto.prototype, "loadAvg5", void 0);
173
+ __decorate([
174
+ (0, swagger_1.ApiPropertyOptional)({ description: '15-minute load average' }),
175
+ __metadata("design:type", Number)
176
+ ], NodeHostVitalsDto.prototype, "loadAvg15", void 0);
177
+ __decorate([
178
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Total physical memory, bytes' }),
179
+ __metadata("design:type", Number)
180
+ ], NodeHostVitalsDto.prototype, "memTotalBytes", void 0);
181
+ __decorate([
182
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Free physical memory, bytes' }),
183
+ __metadata("design:type", Number)
184
+ ], NodeHostVitalsDto.prototype, "memFreeBytes", void 0);
185
+ __decorate([
186
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Memory available to new work (reclaimable included), bytes' }),
187
+ __metadata("design:type", Number)
188
+ ], NodeHostVitalsDto.prototype, "memAvailableBytes", void 0);
189
+ __decorate([
190
+ (0, swagger_1.ApiPropertyOptional)({ description: 'The OS release string', maxLength: 128 }),
191
+ __metadata("design:type", String)
192
+ ], NodeHostVitalsDto.prototype, "osRelease", void 0);
193
+ __decorate([
194
+ (0, swagger_1.ApiPropertyOptional)({ description: 'The CPU architecture (`x64`, `arm64`)', maxLength: 32 }),
195
+ __metadata("design:type", String)
196
+ ], NodeHostVitalsDto.prototype, "arch", void 0);
197
+ __decorate([
198
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Seconds since the machine booted' }),
199
+ __metadata("design:type", Number)
200
+ ], NodeHostVitalsDto.prototype, "uptimeSeconds", void 0);
201
+ /**
202
+ * Power state a node reported (`vitals.power`).
203
+ *
204
+ * @stability experimental
205
+ */
206
+ class NodePowerDto {
207
+ /** Where power comes from */
208
+ source;
209
+ /** Battery charge, 0 to 100 */
210
+ batteryPercent;
211
+ /** Whether the battery is charging */
212
+ charging;
213
+ /** Estimated seconds of battery left */
214
+ timeRemainingSeconds;
215
+ /** Whether OS low-power mode is on */
216
+ lowPowerMode;
217
+ }
218
+ exports.NodePowerDto = NodePowerDto;
219
+ __decorate([
220
+ (0, swagger_1.ApiProperty)({ description: 'Where power comes from', enum: ['ac', 'battery', 'unknown'] }),
221
+ __metadata("design:type", String)
222
+ ], NodePowerDto.prototype, "source", void 0);
223
+ __decorate([
224
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Battery charge, 0 to 100', minimum: 0, maximum: 100 }),
225
+ __metadata("design:type", Number)
226
+ ], NodePowerDto.prototype, "batteryPercent", void 0);
227
+ __decorate([
228
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Whether the battery is charging' }),
229
+ __metadata("design:type", Boolean)
230
+ ], NodePowerDto.prototype, "charging", void 0);
231
+ __decorate([
232
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Estimated seconds of battery left' }),
233
+ __metadata("design:type", Number)
234
+ ], NodePowerDto.prototype, "timeRemainingSeconds", void 0);
235
+ __decorate([
236
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Whether the OS low-power / battery-saver mode is on' }),
237
+ __metadata("design:type", Boolean)
238
+ ], NodePowerDto.prototype, "lowPowerMode", void 0);
239
+ //# sourceMappingURL=node-event.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-event.dto.js","sourceRoot":"","sources":["../../../src/nodes/dto/node-event.dto.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import { type Job, type WorkerNode } from '../../jobs/index';
2
+ /**
3
+ * The optional features this server advertises to a node, on the register and
4
+ * heartbeat responses. A node sends an optional capability (host vitals, power
5
+ * state, events) only after it sees the feature here.
6
+ *
7
+ * @stability experimental
8
+ */
9
+ export declare const NODE_SERVER_FEATURES: readonly string[];
2
10
  /**
3
11
  * One worker node, as the fleet sees it.
4
12
  *
@@ -38,6 +46,19 @@ export declare class RegisterNodeResponseDto {
38
46
  node: WorkerNodeDto;
39
47
  /** `true` when an existing row for this `(owner, name)` was refreshed rather than a new one created — the normal outcome for a restarted worker. */
40
48
  reattached: boolean;
49
+ /** Optional server features. */
50
+ serverFeatures: string[];
51
+ }
52
+ /**
53
+ * The response to `POST /nodes/:id/heartbeat`: the refreshed node, plus the
54
+ * features this server supports so an already-registered node (which does not
55
+ * call register again) learns them.
56
+ *
57
+ * @stability experimental
58
+ */
59
+ export declare class HeartbeatNodeResponseDto extends WorkerNodeDto {
60
+ /** Optional server features. */
61
+ serverFeatures: string[];
41
62
  }
42
63
  /**
43
64
  * A claimed job, as the node sees it.
@@ -1 +1 @@
1
- {"version":3,"file":"node-response.dto.d.ts","sourceRoot":"","sources":["../../../src/nodes/dto/node-response.dto.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,aAAa;IACxB,qBAAqB;IAErB,EAAE,EAAG,MAAM,CAAC;IAEZ,4BAA4B;IAM5B,IAAI,EAAG,MAAM,CAAC;IAEd,8BAA8B;IAE9B,QAAQ,EAAG,MAAM,CAAC;IAElB,mCAAmC;IAEnC,QAAQ,EAAG,MAAM,CAAC;IAElB,gCAAgC;IAEhC,UAAU,EAAG,MAAM,CAAC;IAEpB,mDAAmD;IAMnD,aAAa,EAAG,MAAM,EAAE,CAAC;IAEzB,+CAA+C;IAM/C,WAAW,EAAG,MAAM,CAAC;IAErB,oDAAoD;IAQpD,MAAM,EAAG,MAAM,CAAC;IAEhB,2FAA2F;IAM3F,YAAY,EAAG,OAAO,CAAC;IAEvB,+CAA+C;IAE/C,YAAY,EAAG,MAAM,CAAC;IAEtB,oFAAoF;IAKpF,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,0CAA0C;IAE1C,IAAI,EAAG,aAAa,CAAC;IAErB,oJAAoJ;IAQpJ,UAAU,EAAG,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,6DAA6D;IAE7D,EAAE,EAAG,MAAM,CAAC;IAEZ,gEAAgE;IAEhE,IAAI,EAAG,MAAM,CAAC;IAEd,qCAAqC;IAErC,WAAW,EAAG,MAAM,GAAG,IAAI,CAAC;IAE5B,mCAAmC;IAEnC,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAE1B,6CAA6C;IAE7C,QAAQ,EAAG,MAAM,CAAC;IAElB,iGAAiG;IAKjG,QAAQ,EAAG,MAAM,CAAC;IAElB,8CAA8C;IAE9C,SAAS,EAAG,MAAM,GAAG,IAAI,CAAC;IAE1B,6BAA6B;IAM7B,cAAc,EAAG,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,oCAAoC;IAEpC,GAAG,EAAG,UAAU,CAAC;IAEjB,uGAAuG;IAUvG,MAAM,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,6LAA6L;IAW7L,eAAe,EAAG,MAAM,CAAC;IAEzB,sJAAsJ;IAatJ,UAAU,EAAG,MAAM,GAAG,IAAI,CAAC;IAE3B,yMAAyM;IAazM,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,4FAA4F;IAO5F,IAAI,EAAG,oBAAoB,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC,uCAAuC;IAEvC,KAAK,EAAG,MAAM,CAAC;IAEf,iDAAiD;IAEjD,cAAc,EAAG,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,wBAAwB;IACnC,+BAA+B;IAE/B,KAAK,EAAG,MAAM,CAAC;IAEf,2KAA2K;IAO3K,OAAO,EAAG,MAAM,CAAC;IAEjB,6EAA6E;IAM7E,SAAS,EAAG,OAAO,CAAC;CACrB;AAMD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAc/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,oBAAoB,CA0C3F"}
1
+ {"version":3,"file":"node-response.dto.d.ts","sourceRoot":"","sources":["../../../src/nodes/dto/node-response.dto.ts"],"names":[],"mappings":"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"}
@@ -60,11 +60,20 @@ var __metadata = (this && this.__metadata) || function (k, v) {
60
60
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
61
61
  };
62
62
  Object.defineProperty(exports, "__esModule", { value: true });
63
- exports.JobSettlementResponseDto = exports.RenewLeaseResponseDto = exports.ClaimJobsResponseDto = exports.NodeJobAssignmentDto = exports.NodeJobDto = exports.RegisterNodeResponseDto = exports.WorkerNodeDto = void 0;
63
+ exports.JobSettlementResponseDto = exports.RenewLeaseResponseDto = exports.ClaimJobsResponseDto = exports.NodeJobAssignmentDto = exports.NodeJobDto = exports.HeartbeatNodeResponseDto = exports.RegisterNodeResponseDto = exports.WorkerNodeDto = exports.NODE_SERVER_FEATURES = void 0;
64
64
  exports.toWorkerNodeDto = toWorkerNodeDto;
65
65
  exports.toNodeJobAssignment = toNodeJobAssignment;
66
66
  const swagger_1 = require("@nestjs/swagger");
67
67
  const index_1 = require("../../jobs/index");
68
+ const nodes_1 = require("@marinoscar/platform-contract/nodes");
69
+ /**
70
+ * The optional features this server advertises to a node, on the register and
71
+ * heartbeat responses. A node sends an optional capability (host vitals, power
72
+ * state, events) only after it sees the feature here.
73
+ *
74
+ * @stability experimental
75
+ */
76
+ exports.NODE_SERVER_FEATURES = Object.freeze([nodes_1.NODE_SERVER_CAPABILITY_HOST_VITALS]);
68
77
  /**
69
78
  * One worker node, as the fleet sees it.
70
79
  *
@@ -170,6 +179,8 @@ class RegisterNodeResponseDto {
170
179
  node;
171
180
  /** `true` when an existing row for this `(owner, name)` was refreshed rather than a new one created — the normal outcome for a restarted worker. */
172
181
  reattached;
182
+ /** Optional server features. */
183
+ serverFeatures;
173
184
  }
174
185
  exports.RegisterNodeResponseDto = RegisterNodeResponseDto;
175
186
  __decorate([
@@ -185,6 +196,36 @@ __decorate([
185
196
  }),
186
197
  __metadata("design:type", Boolean)
187
198
  ], RegisterNodeResponseDto.prototype, "reattached", void 0);
199
+ __decorate([
200
+ (0, swagger_1.ApiProperty)({
201
+ description: 'Optional features this server supports, e.g. `node_host_vitals` (host vitals, power state ' +
202
+ 'and node events on the heartbeat). A node sends an optional capability only after it ' +
203
+ 'sees it named here; an older server sends no list at all.',
204
+ type: [String],
205
+ }),
206
+ __metadata("design:type", Array)
207
+ ], RegisterNodeResponseDto.prototype, "serverFeatures", void 0);
208
+ /**
209
+ * The response to `POST /nodes/:id/heartbeat`: the refreshed node, plus the
210
+ * features this server supports so an already-registered node (which does not
211
+ * call register again) learns them.
212
+ *
213
+ * @stability experimental
214
+ */
215
+ class HeartbeatNodeResponseDto extends WorkerNodeDto {
216
+ /** Optional server features. */
217
+ serverFeatures;
218
+ }
219
+ exports.HeartbeatNodeResponseDto = HeartbeatNodeResponseDto;
220
+ __decorate([
221
+ (0, swagger_1.ApiProperty)({
222
+ description: 'Optional features this server supports, e.g. `node_host_vitals`. The same list the ' +
223
+ 'register response carries, repeated here so a node that never re-registers learns it ' +
224
+ 'from its first heartbeat.',
225
+ type: [String],
226
+ }),
227
+ __metadata("design:type", Array)
228
+ ], HeartbeatNodeResponseDto.prototype, "serverFeatures", void 0);
188
229
  /**
189
230
  * A claimed job, as the node sees it.
190
231
  *
@@ -1 +1 @@
1
- {"version":3,"file":"node-response.dto.js","sourceRoot":"","sources":["../../../src/nodes/dto/node-response.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-response.dto.js","sourceRoot":"","sources":["../../../src/nodes/dto/node-response.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The `EventEmitter2` key. Permanent: a listener subscribes by string, so
3
+ * renaming it silently unsubscribes every listener.
4
+ *
5
+ * @stability stable
6
+ */
7
+ export declare const NODE_EVENT_REPORTED = "nodes.node.event";
8
+ /**
9
+ * One event a node reported and the server accepted.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * @OnEvent(NODE_EVENT_REPORTED)
14
+ * handle(event: NodeEventReportedEvent): void {
15
+ * if (event.severity === 'critical') void this.notifications.notifyUser(event.ownerUserId, 'nodes.node_event', { ...event }).catch(log);
16
+ * }
17
+ * ```
18
+ *
19
+ * @extensionPoint event
20
+ * @stability experimental
21
+ */
22
+ export declare class NodeEventReportedEvent {
23
+ readonly nodeId: string;
24
+ readonly nodeName: string;
25
+ readonly ownerUserId: string | null;
26
+ readonly type: string;
27
+ readonly severity: 'info' | 'warning' | 'critical';
28
+ readonly attrs: Readonly<Record<string, string | number | boolean>>;
29
+ readonly occurredAt: Date;
30
+ /**
31
+ * @param nodeId - the node.
32
+ * @param nodeName - its operator-facing name.
33
+ * @param ownerUserId - the user whose credential registered the node, or `null` when unknown.
34
+ * @param type - the dotted event type, e.g. `power.battery_low`.
35
+ * @param severity - `info`, `warning` or `critical`.
36
+ * @param attrs - the node's scalar attributes, `{}` when none.
37
+ * @param occurredAt - when it happened (the node's clock, clamped to the server's window).
38
+ */
39
+ constructor(nodeId: string, nodeName: string, ownerUserId: string | null, type: string, severity: 'info' | 'warning' | 'critical', attrs: Readonly<Record<string, string | number | boolean>>, occurredAt: Date);
40
+ }
41
+ //# sourceMappingURL=node-event.event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-event.event.d.ts","sourceRoot":"","sources":["../../../src/nodes/events/node-event.event.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;aAWf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM;aAChB,WAAW,EAAE,MAAM,GAAG,IAAI;aAC1B,IAAI,EAAE,MAAM;aACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU;aACzC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;aAC1D,UAAU,EAAE,IAAI;IAhBlC;;;;;;;;OAQG;gBAEe,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EACzC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC1D,UAAU,EAAE,IAAI;CAEnC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // `nodes.node.event`: a worker node reported an event about itself (issue #1045)
4
+ // =============================================================================
5
+ //
6
+ // A heartbeat may carry events the node observed (power source changed, battery
7
+ // low, woke from sleep). `NodeEventsService` persists them to
8
+ // `worker_node_events`, then emits this event once per ACCEPTED row, AFTER the
9
+ // write committed and outside any transaction. The slice raises no
10
+ // notification itself: the notifications slice sits above it, so the app
11
+ // listens and dispatches, exactly as it does for `nodes.node.offline`.
12
+ //
13
+ // ⚠ A LISTENER MUST NOT DO I/O IN ITS BODY beyond a fire-and-forget
14
+ // notification dispatch (`on-event-no-io` conformance suite), and must not
15
+ // throw: the heartbeat has already succeeded. The payload is the node's
16
+ // self-report: untrusted, bounded by `nodeEventSchema`, never a credential.
17
+ // =============================================================================
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.NodeEventReportedEvent = exports.NODE_EVENT_REPORTED = void 0;
20
+ /**
21
+ * The `EventEmitter2` key. Permanent: a listener subscribes by string, so
22
+ * renaming it silently unsubscribes every listener.
23
+ *
24
+ * @stability stable
25
+ */
26
+ exports.NODE_EVENT_REPORTED = 'nodes.node.event';
27
+ /**
28
+ * One event a node reported and the server accepted.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * @OnEvent(NODE_EVENT_REPORTED)
33
+ * handle(event: NodeEventReportedEvent): void {
34
+ * if (event.severity === 'critical') void this.notifications.notifyUser(event.ownerUserId, 'nodes.node_event', { ...event }).catch(log);
35
+ * }
36
+ * ```
37
+ *
38
+ * @extensionPoint event
39
+ * @stability experimental
40
+ */
41
+ class NodeEventReportedEvent {
42
+ nodeId;
43
+ nodeName;
44
+ ownerUserId;
45
+ type;
46
+ severity;
47
+ attrs;
48
+ occurredAt;
49
+ /**
50
+ * @param nodeId - the node.
51
+ * @param nodeName - its operator-facing name.
52
+ * @param ownerUserId - the user whose credential registered the node, or `null` when unknown.
53
+ * @param type - the dotted event type, e.g. `power.battery_low`.
54
+ * @param severity - `info`, `warning` or `critical`.
55
+ * @param attrs - the node's scalar attributes, `{}` when none.
56
+ * @param occurredAt - when it happened (the node's clock, clamped to the server's window).
57
+ */
58
+ constructor(nodeId, nodeName, ownerUserId, type, severity, attrs, occurredAt) {
59
+ this.nodeId = nodeId;
60
+ this.nodeName = nodeName;
61
+ this.ownerUserId = ownerUserId;
62
+ this.type = type;
63
+ this.severity = severity;
64
+ this.attrs = attrs;
65
+ this.occurredAt = occurredAt;
66
+ }
67
+ }
68
+ exports.NodeEventReportedEvent = NodeEventReportedEvent;
69
+ //# sourceMappingURL=node-event.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-event.event.js","sourceRoot":"","sources":["../../../src/nodes/events/node-event.event.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,8DAA8D;AAC9D,+EAA+E;AAC/E,mEAAmE;AACnE,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,oEAAoE;AACpE,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,gFAAgF;;;AAEhF;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAa,sBAAsB;IAWf;IACA;IACA;IACA;IACA;IACA;IACA;IAhBlB;;;;;;;;OAQG;IACH,YACkB,MAAc,EACd,QAAgB,EAChB,WAA0B,EAC1B,IAAY,EACZ,QAAyC,EACzC,KAA0D,EAC1D,UAAgB;QANhB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAe;QAC1B,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAiC;QACzC,UAAK,GAAL,KAAK,CAAqD;QAC1D,eAAU,GAAV,UAAU,CAAM;IAC/B,CAAC;CACL;AAnBD,wDAmBC"}
@@ -0,0 +1,31 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { type Job, JobHandler, JobHandlerRegistry, type JobsPrisma } from '../../jobs/index';
3
+ import { type ResolvedNodesModuleOptions } from '../nodes.options';
4
+ /**
5
+ * The handler key, and therefore the `Job.type` every purge row carries.
6
+ * PERMANENT: rows outlive handlers.
7
+ *
8
+ * @stability experimental
9
+ */
10
+ export declare const NODE_EVENTS_PURGE_TYPE = "nodes.node_events_purge";
11
+ /**
12
+ * The `nodes.node_events_purge` handler: deletes node events older than the retention. Server-only.
13
+ *
14
+ * @stability experimental
15
+ */
16
+ export declare class NodeEventsPurgeHandler implements JobHandler, OnModuleInit {
17
+ private readonly registry;
18
+ private readonly prisma;
19
+ private readonly options?;
20
+ private readonly logger;
21
+ readonly type = "nodes.node_events_purge";
22
+ readonly label = "Node events purge";
23
+ constructor(registry: JobHandlerRegistry, prisma: JobsPrisma, options?: ResolvedNodesModuleOptions | undefined);
24
+ /** Self-registration, the only wiring a handler needs. */
25
+ onModuleInit(): void;
26
+ /** Runs the purge. THROWS TO FAIL, like every handler. */
27
+ process(job: Job): Promise<void>;
28
+ /** Deletes every event received before the retention cutoff; returns the count. */
29
+ purge(now?: Date): Promise<number>;
30
+ }
31
+ //# sourceMappingURL=node-events-purge.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-events-purge.handler.d.ts","sourceRoot":"","sources":["../../../src/nodes/handlers/node-events-purge.handler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA8B,YAAY,EAAY,MAAM,gBAAgB,CAAC;AAGpF,OAAO,EAAE,KAAK,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAqD,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEtH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,qBACa,sBAAuB,YAAW,UAAU,EAAE,YAAY;IAQnE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACA,OAAO,CAAC,QAAQ,CAAC,MAAM;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAT9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAElE,QAAQ,CAAC,IAAI,6BAA0B;IAEvC,QAAQ,CAAC,KAAK,uBAAuB;gBAGlB,QAAQ,EAAE,kBAAkB,EACH,MAAM,EAAE,UAAU,EACR,OAAO,CAAC,EAAE,0BAA0B,YAAA;IAG1F,0DAA0D;IAC1D,YAAY,IAAI,IAAI;IAIpB,0DAA0D;IACpD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,mFAAmF;IAC7E,KAAK,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CAQrD"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // `nodes.node_events_purge`: the node event log's retention as a queue job (issue #1045)
4
+ // =============================================================================
5
+ //
6
+ // `worker_node_events` grows by at most 120 rows per node per hour (the
7
+ // ingestion cap), but a log nobody trims is a table that only grows. A daily
8
+ // cron (`NodeEventsPurgeTask`) enqueues this job; a worker slot deletes every
9
+ // row whose `receivedAt` is older than the retention (default 30 days,
10
+ // `NodesModule.forRoot({ nodeEventsRetentionDays })`).
11
+ //
12
+ // IDEMPOTENT, SO NO OVERLAP GUARD AND NO PROFILE: one `deleteMany` on an
13
+ // indexed column; two workers racing produce one delete and one no-op.
14
+ //
15
+ // SERVER-ONLY BY DERIVATION: neither `nodeResultSchema` nor `persistNodeResult`.
16
+ // A node must never be able to delete the log that describes it.
17
+ // =============================================================================
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __metadata = (this && this.__metadata) || function (k, v) {
25
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
+ };
27
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
28
+ return function (target, key) { decorator(target, key, paramIndex); }
29
+ };
30
+ var NodeEventsPurgeHandler_1;
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.NodeEventsPurgeHandler = exports.NODE_EVENTS_PURGE_TYPE = void 0;
33
+ const common_1 = require("@nestjs/common");
34
+ const index_1 = require("../../core/index");
35
+ const index_2 = require("../../jobs/index");
36
+ const nodes_options_1 = require("../nodes.options");
37
+ /**
38
+ * The handler key, and therefore the `Job.type` every purge row carries.
39
+ * PERMANENT: rows outlive handlers.
40
+ *
41
+ * @stability experimental
42
+ */
43
+ exports.NODE_EVENTS_PURGE_TYPE = 'nodes.node_events_purge';
44
+ /**
45
+ * The `nodes.node_events_purge` handler: deletes node events older than the retention. Server-only.
46
+ *
47
+ * @stability experimental
48
+ */
49
+ let NodeEventsPurgeHandler = NodeEventsPurgeHandler_1 = class NodeEventsPurgeHandler {
50
+ registry;
51
+ prisma;
52
+ options;
53
+ logger = new common_1.Logger(NodeEventsPurgeHandler_1.name);
54
+ type = exports.NODE_EVENTS_PURGE_TYPE;
55
+ label = 'Node events purge';
56
+ constructor(registry, prisma, options) {
57
+ this.registry = registry;
58
+ this.prisma = prisma;
59
+ this.options = options;
60
+ }
61
+ /** Self-registration, the only wiring a handler needs. */
62
+ onModuleInit() {
63
+ this.registry.register(this);
64
+ }
65
+ /** Runs the purge. THROWS TO FAIL, like every handler. */
66
+ async process(job) {
67
+ const deleted = await this.purge();
68
+ if (deleted > 0) {
69
+ this.logger.log(`Node events purge ${job.id}: ${deleted} event(s) past retention deleted`);
70
+ }
71
+ else {
72
+ this.logger.debug(`Node events purge ${job.id}: nothing past retention`);
73
+ }
74
+ }
75
+ /** Deletes every event received before the retention cutoff; returns the count. */
76
+ async purge(now = new Date()) {
77
+ const days = this.options?.nodeEventsRetentionDays ?? nodes_options_1.DEFAULT_NODE_EVENTS_RETENTION_DAYS;
78
+ const cutoff = new Date(now.getTime() - days * 24 * 60 * 60 * 1000);
79
+ const { count } = await this.prisma.workerNodeEvent.deleteMany({ where: { receivedAt: { lt: cutoff } } });
80
+ return count;
81
+ }
82
+ };
83
+ exports.NodeEventsPurgeHandler = NodeEventsPurgeHandler;
84
+ exports.NodeEventsPurgeHandler = NodeEventsPurgeHandler = NodeEventsPurgeHandler_1 = __decorate([
85
+ (0, common_1.Injectable)(),
86
+ __param(1, (0, common_1.Inject)(index_1.PLATFORM_PRISMA)),
87
+ __param(2, (0, common_1.Optional)()),
88
+ __param(2, (0, common_1.Inject)(nodes_options_1.NODES_OPTIONS)),
89
+ __metadata("design:paramtypes", [index_2.JobHandlerRegistry, Object, Object])
90
+ ], NodeEventsPurgeHandler);
91
+ //# sourceMappingURL=node-events-purge.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-events-purge.handler.js","sourceRoot":"","sources":["../../../src/nodes/handlers/node-events-purge.handler.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yFAAyF;AACzF,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,6EAA6E;AAC7E,8EAA8E;AAC9E,uEAAuE;AACvE,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,iFAAiF;AACjF,iEAAiE;AACjE,gFAAgF;;;;;;;;;;;;;;;;AAEhF,2CAAoF;AAEpF,4CAAmD;AACnD,4CAA6F;AAC7F,oDAAsH;AAEtH;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AAEhE;;;;GAIG;AAEI,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAQd;IACyB;IACU;IATrC,MAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IAEzD,IAAI,GAAG,8BAAsB,CAAC;IAE9B,KAAK,GAAG,mBAAmB,CAAC;IAErC,YACmB,QAA4B,EACH,MAAkB,EACR,OAAoC;QAFvE,aAAQ,GAAR,QAAQ,CAAoB;QACH,WAAM,GAAN,MAAM,CAAY;QACR,YAAO,GAAP,OAAO,CAA6B;IACvF,CAAC;IAEJ,0DAA0D;IAC1D,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,EAAE,KAAK,OAAO,kCAAkC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,KAAK,CAAC,MAAY,IAAI,IAAI,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,uBAAuB,IAAI,kDAAkC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEpE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1G,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAtCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,uBAAe,CAAC,CAAA;IACvB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;qCAFP,0BAAkB;GARpC,sBAAsB,CAsClC"}