@marinoscar/platform-api 0.0.0-stage → 0.1.0-next.3

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 (616) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +106 -2
  4. package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
  5. package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
  6. package/dist/core/crypto/encryption-key-startup-check.js +221 -0
  7. package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
  8. package/dist/core/crypto/secret-cipher.d.ts +151 -0
  9. package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
  10. package/dist/core/crypto/secret-cipher.js +452 -0
  11. package/dist/core/crypto/secret-cipher.js.map +1 -0
  12. package/dist/core/data-access/index.d.ts +6 -0
  13. package/dist/core/data-access/index.d.ts.map +1 -0
  14. package/dist/core/data-access/index.js +19 -0
  15. package/dist/core/data-access/index.js.map +1 -0
  16. package/dist/core/data-access/scoped-access.error.d.ts +35 -0
  17. package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
  18. package/dist/core/data-access/scoped-access.error.js +43 -0
  19. package/dist/core/data-access/scoped-access.error.js.map +1 -0
  20. package/dist/core/data-access/scoped-client.d.ts +104 -0
  21. package/dist/core/data-access/scoped-client.d.ts.map +1 -0
  22. package/dist/core/data-access/scoped-client.js +270 -0
  23. package/dist/core/data-access/scoped-client.js.map +1 -0
  24. package/dist/core/data-access/types.d.ts +85 -0
  25. package/dist/core/data-access/types.d.ts.map +1 -0
  26. package/dist/core/data-access/types.js +12 -0
  27. package/dist/core/data-access/types.js.map +1 -0
  28. package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
  29. package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
  30. package/dist/core/data-access/user-owned-data.registry.js +140 -0
  31. package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
  32. package/dist/core/errors/database-seed.exception.d.ts +23 -0
  33. package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
  34. package/dist/core/errors/database-seed.exception.js +49 -0
  35. package/dist/core/errors/database-seed.exception.js.map +1 -0
  36. package/dist/core/errors/error.dto.d.ts +47 -0
  37. package/dist/core/errors/error.dto.d.ts.map +1 -0
  38. package/dist/core/errors/error.dto.js +121 -0
  39. package/dist/core/errors/error.dto.js.map +1 -0
  40. package/dist/core/errors/http-exception.filter.d.ts +63 -0
  41. package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
  42. package/dist/core/errors/http-exception.filter.js +234 -0
  43. package/dist/core/errors/http-exception.filter.js.map +1 -0
  44. package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
  45. package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
  46. package/dist/core/errors/verbatim-error-body.exception.js +135 -0
  47. package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
  48. package/dist/core/host/index.d.ts +7 -0
  49. package/dist/core/host/index.d.ts.map +1 -0
  50. package/dist/core/host/index.js +14 -0
  51. package/dist/core/host/index.js.map +1 -0
  52. package/dist/core/host/platform-host.d.ts +58 -0
  53. package/dist/core/host/platform-host.d.ts.map +1 -0
  54. package/dist/core/host/platform-host.js +104 -0
  55. package/dist/core/host/platform-host.js.map +1 -0
  56. package/dist/core/host/platform-host.module.d.ts +53 -0
  57. package/dist/core/host/platform-host.module.d.ts.map +1 -0
  58. package/dist/core/host/platform-host.module.js +90 -0
  59. package/dist/core/host/platform-host.module.js.map +1 -0
  60. package/dist/core/host/ports.d.ts +132 -0
  61. package/dist/core/host/ports.d.ts.map +1 -0
  62. package/dist/core/host/ports.js +48 -0
  63. package/dist/core/host/ports.js.map +1 -0
  64. package/dist/core/index.d.ts +15 -0
  65. package/dist/core/index.d.ts.map +1 -0
  66. package/dist/core/index.js +77 -0
  67. package/dist/core/index.js.map +1 -0
  68. package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
  69. package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
  70. package/dist/core/openapi/openapi-tag.registry.js +72 -0
  71. package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
  72. package/dist/core/principal/index.d.ts +6 -0
  73. package/dist/core/principal/index.d.ts.map +1 -0
  74. package/dist/core/principal/index.js +3 -0
  75. package/dist/core/principal/index.js.map +1 -0
  76. package/dist/core/principal/principal.types.d.ts +222 -0
  77. package/dist/core/principal/principal.types.d.ts.map +1 -0
  78. package/dist/core/principal/principal.types.js +22 -0
  79. package/dist/core/principal/principal.types.js.map +1 -0
  80. package/dist/core/registry/index.d.ts +4 -0
  81. package/dist/core/registry/index.d.ts.map +1 -0
  82. package/dist/core/registry/index.js +19 -0
  83. package/dist/core/registry/index.js.map +1 -0
  84. package/dist/core/registry/registry-freeze.service.d.ts +14 -0
  85. package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
  86. package/dist/core/registry/registry-freeze.service.js +55 -0
  87. package/dist/core/registry/registry-freeze.service.js.map +1 -0
  88. package/dist/core/registry/registry.d.ts +268 -0
  89. package/dist/core/registry/registry.d.ts.map +1 -0
  90. package/dist/core/registry/registry.js +351 -0
  91. package/dist/core/registry/registry.js.map +1 -0
  92. package/dist/core/registry/testing.d.ts +29 -0
  93. package/dist/core/registry/testing.d.ts.map +1 -0
  94. package/dist/core/registry/testing.js +63 -0
  95. package/dist/core/registry/testing.js.map +1 -0
  96. package/dist/doctor/doctor-check.interface.d.ts +100 -0
  97. package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
  98. package/dist/doctor/doctor-check.interface.js +95 -0
  99. package/dist/doctor/doctor-check.interface.js.map +1 -0
  100. package/dist/doctor/doctor-check.registry.d.ts +37 -0
  101. package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
  102. package/dist/doctor/doctor-check.registry.js +96 -0
  103. package/dist/doctor/doctor-check.registry.js.map +1 -0
  104. package/dist/doctor/doctor.controller.factory.d.ts +29 -0
  105. package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
  106. package/dist/doctor/doctor.controller.factory.js +121 -0
  107. package/dist/doctor/doctor.controller.factory.js.map +1 -0
  108. package/dist/doctor/doctor.module.d.ts +78 -0
  109. package/dist/doctor/doctor.module.d.ts.map +1 -0
  110. package/dist/doctor/doctor.module.js +158 -0
  111. package/dist/doctor/doctor.module.js.map +1 -0
  112. package/dist/doctor/doctor.options.d.ts +39 -0
  113. package/dist/doctor/doctor.options.d.ts.map +1 -0
  114. package/dist/doctor/doctor.options.js +21 -0
  115. package/dist/doctor/doctor.options.js.map +1 -0
  116. package/dist/doctor/doctor.service.d.ts +80 -0
  117. package/dist/doctor/doctor.service.d.ts.map +1 -0
  118. package/dist/doctor/doctor.service.js +301 -0
  119. package/dist/doctor/doctor.service.js.map +1 -0
  120. package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
  121. package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
  122. package/dist/doctor/dto/doctor-query.dto.js +16 -0
  123. package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
  124. package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
  125. package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
  126. package/dist/doctor/dto/doctor-report.dto.js +23 -0
  127. package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
  128. package/dist/doctor/egress/classify-host.d.ts +73 -0
  129. package/dist/doctor/egress/classify-host.d.ts.map +1 -0
  130. package/dist/doctor/egress/classify-host.js +210 -0
  131. package/dist/doctor/egress/classify-host.js.map +1 -0
  132. package/dist/doctor/egress/egress.registry.d.ts +34 -0
  133. package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
  134. package/dist/doctor/egress/egress.registry.js +70 -0
  135. package/dist/doctor/egress/egress.registry.js.map +1 -0
  136. package/dist/doctor/egress/egress.types.d.ts +135 -0
  137. package/dist/doctor/egress/egress.types.d.ts.map +1 -0
  138. package/dist/doctor/egress/egress.types.js +42 -0
  139. package/dist/doctor/egress/egress.types.js.map +1 -0
  140. package/dist/doctor/egress/index.d.ts +6 -0
  141. package/dist/doctor/egress/index.d.ts.map +1 -0
  142. package/dist/doctor/egress/index.js +23 -0
  143. package/dist/doctor/egress/index.js.map +1 -0
  144. package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
  145. package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
  146. package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
  147. package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
  148. package/dist/doctor/index.d.ts +19 -0
  149. package/dist/doctor/index.d.ts.map +1 -0
  150. package/dist/doctor/index.js +66 -0
  151. package/dist/doctor/index.js.map +1 -0
  152. package/dist/doctor/support-bundle/index.d.ts +12 -0
  153. package/dist/doctor/support-bundle/index.d.ts.map +1 -0
  154. package/dist/doctor/support-bundle/index.js +32 -0
  155. package/dist/doctor/support-bundle/index.js.map +1 -0
  156. package/dist/doctor/support-bundle/redact.d.ts +76 -0
  157. package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
  158. package/dist/doctor/support-bundle/redact.js +236 -0
  159. package/dist/doctor/support-bundle/redact.js.map +1 -0
  160. package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
  161. package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
  162. package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
  163. package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
  164. package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
  165. package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
  166. package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
  167. package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
  168. package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
  169. package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
  170. package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
  171. package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
  172. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
  173. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
  174. package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
  175. package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
  176. package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
  177. package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
  178. package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
  179. package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
  180. package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
  181. package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
  182. package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
  183. package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
  184. package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
  185. package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
  186. package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
  187. package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
  188. package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
  189. package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
  190. package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
  191. package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
  192. package/dist/index.d.ts +11 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +14 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/otel-core/index.d.ts +9 -0
  197. package/dist/otel-core/index.d.ts.map +1 -0
  198. package/dist/otel-core/index.js +58 -0
  199. package/dist/otel-core/index.js.map +1 -0
  200. package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
  201. package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
  202. package/dist/otel-core/metrics/gauge-provider.js +37 -0
  203. package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
  204. package/dist/otel-core/metrics/labels.d.ts +79 -0
  205. package/dist/otel-core/metrics/labels.d.ts.map +1 -0
  206. package/dist/otel-core/metrics/labels.js +135 -0
  207. package/dist/otel-core/metrics/labels.js.map +1 -0
  208. package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
  209. package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
  210. package/dist/otel-core/metrics/metric-name.registry.js +134 -0
  211. package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
  212. package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
  213. package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
  214. package/dist/otel-core/metrics/metrics-host.service.js +344 -0
  215. package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
  216. package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
  217. package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
  218. package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
  219. package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
  220. package/dist/otel-core/sdk/index.d.ts +5 -0
  221. package/dist/otel-core/sdk/index.d.ts.map +1 -0
  222. package/dist/otel-core/sdk/index.js +27 -0
  223. package/dist/otel-core/sdk/index.js.map +1 -0
  224. package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
  225. package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
  226. package/dist/otel-core/sdk/initialize-otel.js +204 -0
  227. package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
  228. package/dist/otel-core/sdk/instance-id.d.ts +29 -0
  229. package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
  230. package/dist/otel-core/sdk/instance-id.js +65 -0
  231. package/dist/otel-core/sdk/instance-id.js.map +1 -0
  232. package/dist/otel-core/sdk/service-name.d.ts +28 -0
  233. package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
  234. package/dist/otel-core/sdk/service-name.js +63 -0
  235. package/dist/otel-core/sdk/service-name.js.map +1 -0
  236. package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
  237. package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
  238. package/dist/otel-core/sdk/telemetry-gate.js +297 -0
  239. package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
  240. package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
  241. package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
  242. package/dist/otel-core/spans/request-span-attributes.js +155 -0
  243. package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
  244. package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
  245. package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
  246. package/dist/otel-core/spans/trace.decorator.js +74 -0
  247. package/dist/otel-core/spans/trace.decorator.js.map +1 -0
  248. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
  249. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
  250. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
  251. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
  252. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
  253. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
  254. package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
  255. package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
  256. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
  257. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
  258. package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
  259. package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
  260. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
  261. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
  262. package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
  263. package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
  264. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
  265. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
  266. package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
  267. package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
  268. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
  269. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
  270. package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
  271. package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
  272. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
  273. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
  274. package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
  275. package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
  276. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
  277. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
  278. package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
  279. package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
  280. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
  281. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
  282. package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
  283. package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
  284. package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
  285. package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
  286. package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
  287. package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
  288. package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
  289. package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
  290. package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
  291. package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
  292. package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
  293. package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
  294. package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
  295. package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
  296. package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
  297. package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
  298. package/dist/telemetry/dashboard/sql-literals.js +75 -0
  299. package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
  300. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
  301. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
  302. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
  303. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
  304. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
  305. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
  306. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
  307. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
  308. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
  309. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
  310. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
  311. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
  312. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
  313. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
  314. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
  315. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
  316. package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
  317. package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
  318. package/dist/telemetry/dashboard/verdict-policy.js +77 -0
  319. package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
  320. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
  321. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
  322. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
  323. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
  324. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
  325. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
  326. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
  327. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
  328. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
  329. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
  330. package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
  331. package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
  332. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
  333. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
  334. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
  335. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
  336. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
  337. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
  338. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
  339. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
  340. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
  341. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
  342. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
  343. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
  344. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
  345. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
  346. package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
  347. package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
  348. package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
  349. package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
  350. package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
  351. package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
  352. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
  353. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
  354. package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
  355. package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
  356. package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
  357. package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
  358. package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
  359. package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
  360. package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
  361. package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
  362. package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
  363. package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
  364. package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
  365. package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
  366. package/dist/telemetry/export/parquet-writer.loader.js +29 -0
  367. package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
  368. package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
  369. package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
  370. package/dist/telemetry/export/telemetry-export.service.js +185 -0
  371. package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
  372. package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
  373. package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
  374. package/dist/telemetry/greptime/greptime-host.js +114 -0
  375. package/dist/telemetry/greptime/greptime-host.js.map +1 -0
  376. package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
  377. package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
  378. package/dist/telemetry/greptime/greptime.client.js +352 -0
  379. package/dist/telemetry/greptime/greptime.client.js.map +1 -0
  380. package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
  381. package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
  382. package/dist/telemetry/greptime/greptime.errors.js +100 -0
  383. package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
  384. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
  385. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
  386. package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
  387. package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
  388. package/dist/telemetry/index.d.ts +37 -0
  389. package/dist/telemetry/index.d.ts.map +1 -0
  390. package/dist/telemetry/index.js +97 -0
  391. package/dist/telemetry/index.js.map +1 -0
  392. package/dist/telemetry/internal/blank-secret.d.ts +3 -0
  393. package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
  394. package/dist/telemetry/internal/blank-secret.js +14 -0
  395. package/dist/telemetry/internal/blank-secret.js.map +1 -0
  396. package/dist/telemetry/internal/csv.d.ts +9 -0
  397. package/dist/telemetry/internal/csv.d.ts.map +1 -0
  398. package/dist/telemetry/internal/csv.js +23 -0
  399. package/dist/telemetry/internal/csv.js.map +1 -0
  400. package/dist/telemetry/internal/sse.d.ts +23 -0
  401. package/dist/telemetry/internal/sse.d.ts.map +1 -0
  402. package/dist/telemetry/internal/sse.js +43 -0
  403. package/dist/telemetry/internal/sse.js.map +1 -0
  404. package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
  405. package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
  406. package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
  407. package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
  408. package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
  409. package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
  410. package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
  411. package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
  412. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
  413. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
  414. package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
  415. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
  416. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
  417. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
  418. package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
  419. package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
  420. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
  421. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
  422. package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
  423. package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
  424. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
  425. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
  426. package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
  427. package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
  428. package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
  429. package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
  430. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
  431. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
  432. package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
  433. package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
  434. package/dist/telemetry/metrics/metric-catalog.js +180 -0
  435. package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
  436. package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
  437. package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
  438. package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
  439. package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
  440. package/dist/telemetry/metrics/metric-group.d.ts +113 -0
  441. package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
  442. package/dist/telemetry/metrics/metric-group.js +647 -0
  443. package/dist/telemetry/metrics/metric-group.js.map +1 -0
  444. package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
  445. package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
  446. package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
  447. package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
  448. package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
  449. package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
  450. package/dist/telemetry/metrics/metric-group.registry.js +181 -0
  451. package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
  452. package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
  453. package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
  454. package/dist/telemetry/metrics/metric-sql.js +259 -0
  455. package/dist/telemetry/metrics/metric-sql.js.map +1 -0
  456. package/dist/telemetry/metrics/metric-values.d.ts +19 -0
  457. package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
  458. package/dist/telemetry/metrics/metric-values.js +97 -0
  459. package/dist/telemetry/metrics/metric-values.js.map +1 -0
  460. package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
  461. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
  462. package/dist/telemetry/metrics/metric-verdict.js +218 -0
  463. package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
  464. package/dist/telemetry/ports.d.ts +575 -0
  465. package/dist/telemetry/ports.d.ts.map +1 -0
  466. package/dist/telemetry/ports.js +78 -0
  467. package/dist/telemetry/ports.js.map +1 -0
  468. package/dist/telemetry/query/sql-guard.d.ts +71 -0
  469. package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
  470. package/dist/telemetry/query/sql-guard.js +258 -0
  471. package/dist/telemetry/query/sql-guard.js.map +1 -0
  472. package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
  473. package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
  474. package/dist/telemetry/query/telemetry-availability.js +55 -0
  475. package/dist/telemetry/query/telemetry-availability.js.map +1 -0
  476. package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
  477. package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
  478. package/dist/telemetry/query/telemetry-query.errors.js +100 -0
  479. package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
  480. package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
  481. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
  482. package/dist/telemetry/query/telemetry-query.service.js +194 -0
  483. package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
  484. package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
  485. package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
  486. package/dist/telemetry/query/telemetry-schema.service.js +154 -0
  487. package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
  488. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
  489. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
  490. package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
  491. package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
  492. package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
  493. package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
  494. package/dist/telemetry/stack/stack-agent.client.js +208 -0
  495. package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
  496. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
  497. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
  498. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
  499. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
  500. package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
  501. package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
  502. package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
  503. package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
  504. package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
  505. package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
  506. package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
  507. package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
  508. package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
  509. package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
  510. package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
  511. package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
  512. package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
  513. package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
  514. package/dist/telemetry/telemetry-admin.controller.js +148 -0
  515. package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
  516. package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
  517. package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
  518. package/dist/telemetry/telemetry-config.controller.js +73 -0
  519. package/dist/telemetry/telemetry-config.controller.js.map +1 -0
  520. package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
  521. package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
  522. package/dist/telemetry/telemetry-explorer.controller.js +193 -0
  523. package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
  524. package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
  525. package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
  526. package/dist/telemetry/telemetry-settings.service.js +278 -0
  527. package/dist/telemetry/telemetry-settings.service.js.map +1 -0
  528. package/dist/telemetry/telemetry-status.service.d.ts +28 -0
  529. package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
  530. package/dist/telemetry/telemetry-status.service.js +185 -0
  531. package/dist/telemetry/telemetry-status.service.js.map +1 -0
  532. package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
  533. package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
  534. package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
  535. package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
  536. package/dist/telemetry/telemetry.module.d.ts +35 -0
  537. package/dist/telemetry/telemetry.module.d.ts.map +1 -0
  538. package/dist/telemetry/telemetry.module.js +210 -0
  539. package/dist/telemetry/telemetry.module.js.map +1 -0
  540. package/dist/telemetry/telemetry.options.d.ts +176 -0
  541. package/dist/telemetry/telemetry.options.d.ts.map +1 -0
  542. package/dist/telemetry/telemetry.options.js +246 -0
  543. package/dist/telemetry/telemetry.options.js.map +1 -0
  544. package/dist/telemetry/telemetry.permissions.d.ts +76 -0
  545. package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
  546. package/dist/telemetry/telemetry.permissions.js +85 -0
  547. package/dist/telemetry/telemetry.permissions.js.map +1 -0
  548. package/dist/telemetry/telemetry.settings.d.ts +79 -0
  549. package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
  550. package/dist/telemetry/telemetry.settings.js +92 -0
  551. package/dist/telemetry/telemetry.settings.js.map +1 -0
  552. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
  553. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
  554. package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
  555. package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
  556. package/dist/telemetry/testing/conformance.d.ts +257 -0
  557. package/dist/telemetry/testing/conformance.d.ts.map +1 -0
  558. package/dist/telemetry/testing/conformance.js +626 -0
  559. package/dist/telemetry/testing/conformance.js.map +1 -0
  560. package/dist/telemetry/testing/index.d.ts +10 -0
  561. package/dist/telemetry/testing/index.d.ts.map +1 -0
  562. package/dist/telemetry/testing/index.js +41 -0
  563. package/dist/telemetry/testing/index.js.map +1 -0
  564. package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
  565. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
  566. package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
  567. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
  568. package/dist/telemetry/testing/stub-ports.d.ts +46 -0
  569. package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
  570. package/dist/telemetry/testing/stub-ports.js +119 -0
  571. package/dist/telemetry/testing/stub-ports.js.map +1 -0
  572. package/dist/testing/conformance-suite.d.ts +106 -0
  573. package/dist/testing/conformance-suite.d.ts.map +1 -0
  574. package/dist/testing/conformance-suite.js +8 -0
  575. package/dist/testing/conformance-suite.js.map +1 -0
  576. package/dist/testing/conformance-suites.d.ts +14 -0
  577. package/dist/testing/conformance-suites.d.ts.map +1 -0
  578. package/dist/testing/conformance-suites.js +27 -0
  579. package/dist/testing/conformance-suites.js.map +1 -0
  580. package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
  581. package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
  582. package/dist/testing/host/in-memory-audit-sink.js +30 -0
  583. package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
  584. package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
  585. package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
  586. package/dist/testing/host/in-memory-system-settings-store.js +54 -0
  587. package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
  588. package/dist/testing/host/index.d.ts +4 -0
  589. package/dist/testing/host/index.d.ts.map +1 -0
  590. package/dist/testing/host/index.js +13 -0
  591. package/dist/testing/host/index.js.map +1 -0
  592. package/dist/testing/host/test-platform-host.d.ts +35 -0
  593. package/dist/testing/host/test-platform-host.d.ts.map +1 -0
  594. package/dist/testing/host/test-platform-host.js +81 -0
  595. package/dist/testing/host/test-platform-host.js.map +1 -0
  596. package/dist/testing/index.d.ts +12 -0
  597. package/dist/testing/index.d.ts.map +1 -0
  598. package/dist/testing/index.js +32 -0
  599. package/dist/testing/index.js.map +1 -0
  600. package/dist/testing/prisma-schema.d.ts +99 -0
  601. package/dist/testing/prisma-schema.d.ts.map +1 -0
  602. package/dist/testing/prisma-schema.js +175 -0
  603. package/dist/testing/prisma-schema.js.map +1 -0
  604. package/dist/testing/run-platform-conformance.d.ts +70 -0
  605. package/dist/testing/run-platform-conformance.d.ts.map +1 -0
  606. package/dist/testing/run-platform-conformance.js +77 -0
  607. package/dist/testing/run-platform-conformance.js.map +1 -0
  608. package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
  609. package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
  610. package/dist/testing/suites/cron-enqueue-only.js +177 -0
  611. package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
  612. package/dist/testing/suites/user-owned-data.d.ts +86 -0
  613. package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
  614. package/dist/testing/suites/user-owned-data.js +329 -0
  615. package/dist/testing/suites/user-owned-data.js.map +1 -0
  616. package/package.json +129 -4
@@ -0,0 +1,208 @@
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 StackAgentClient_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.StackAgentClient = exports.stackServiceSchema = exports.STACK_SERVICE_HEALTH = exports.STACK_SERVICE_STATES = exports.STACK_AGENT_UP_TIMEOUT_MS = exports.STACK_AGENT_STATUS_TIMEOUT_MS = void 0;
14
+ exports.describeFetchError = describeFetchError;
15
+ const common_1 = require("@nestjs/common");
16
+ const config_1 = require("@nestjs/config");
17
+ const telemetry_1 = require("@marinoscar/platform-contract/telemetry");
18
+ const zod_1 = require("zod");
19
+ // =============================================================================
20
+ // StackAgentClient — the API's side of the VPS `stack-agent` sidecar
21
+ // (issue #567, epic #528)
22
+ // =============================================================================
23
+ //
24
+ // On a VPS deployment a small sidecar (`stack-agent`) holds the Docker socket
25
+ // and exposes, on the internal network only:
26
+ //
27
+ // GET /health → { ok: true } (no auth)
28
+ // GET /v1/telemetry → { services: [{ name, state, health }] }
29
+ // POST /v1/telemetry/up → 200 { ok, exitCode, output } | 500 { ok: false, … }
30
+ // 409 { error: 'busy' } | 503 { error: 'not_configured' }
31
+ //
32
+ // This client is the ONLY code that talks to it. It never throws: every
33
+ // outcome is a typed result, so callers (the admin status read, the deploy
34
+ // job) decide what a failure means for them.
35
+ //
36
+ // CONFIGURATION IS DEPLOYMENT INFRASTRUCTURE. `STACK_AGENT_URL` and
37
+ // `STACK_AGENT_TOKEN` (`configuration.ts` → `stackAgent`) are set by the
38
+ // compose stack that runs both containers — like the database credentials,
39
+ // not a runtime setting. Either missing (every development machine) means
40
+ // `not_configured`, and no request is made.
41
+ //
42
+ // ⚠ THE TOKEN IS NEVER LOGGED, RETURNED OR PUT IN AN ERROR MESSAGE. It is read
43
+ // once, here, and used only in the `Authorization` header. Messages carry the
44
+ // URL's origin and the failure, never headers.
45
+ // =============================================================================
46
+ /** Ceiling on a status read. The admin page waits on it. */
47
+ exports.STACK_AGENT_STATUS_TIMEOUT_MS = 5_000;
48
+ /**
49
+ * Ceiling on `POST /v1/telemetry/up`. The agent may pull images, which can
50
+ * take up to ten minutes; one more minute of slack, and still well inside the
51
+ * deploy job's 15-minute `maxRuntimeMs`.
52
+ */
53
+ exports.STACK_AGENT_UP_TIMEOUT_MS = 11 * 60 * 1000;
54
+ // The container states and health values are part of the wire
55
+ // (`GET /api/admin/telemetry/stack`), so they live in
56
+ // `@marinoscar/platform-contract/telemetry` (#702).
57
+ exports.STACK_SERVICE_STATES = telemetry_1.TELEMETRY_STACK_SERVICE_STATES;
58
+ exports.STACK_SERVICE_HEALTH = telemetry_1.TELEMETRY_STACK_SERVICE_HEALTH;
59
+ exports.stackServiceSchema = zod_1.z.object({
60
+ name: zod_1.z.string().min(1),
61
+ state: zod_1.z.enum(exports.STACK_SERVICE_STATES),
62
+ health: zod_1.z.enum(exports.STACK_SERVICE_HEALTH).nullable(),
63
+ });
64
+ const telemetryStatusBodySchema = zod_1.z.object({ services: zod_1.z.array(exports.stackServiceSchema) });
65
+ const upBodySchema = zod_1.z.object({
66
+ ok: zod_1.z.boolean().optional(),
67
+ exitCode: zod_1.z.number().int().nullable().optional(),
68
+ output: zod_1.z.string().optional(),
69
+ error: zod_1.z.string().optional(),
70
+ });
71
+ let StackAgentClient = StackAgentClient_1 = class StackAgentClient {
72
+ logger = new common_1.Logger(StackAgentClient_1.name);
73
+ baseUrl;
74
+ token;
75
+ /** Overridable in tests; the Node 24 global otherwise. */
76
+ fetchImpl = (input, init) => fetch(input, init);
77
+ constructor(config) {
78
+ const raw = config.get('stackAgent') ?? {};
79
+ this.baseUrl = (raw.url ?? '').trim().replace(/\/+$/, '');
80
+ this.token = (raw.token ?? '').trim();
81
+ }
82
+ /** Both `STACK_AGENT_URL` and `STACK_AGENT_TOKEN` are set. */
83
+ isConfigured() {
84
+ return this.baseUrl !== '' && this.token !== '';
85
+ }
86
+ /** `GET /v1/telemetry` — the state of each telemetry service. Never throws. */
87
+ async telemetryStatus() {
88
+ const response = await this.request('GET', '/v1/telemetry', exports.STACK_AGENT_STATUS_TIMEOUT_MS);
89
+ if (!isResponse(response))
90
+ return response;
91
+ if (response.status === 401 || response.status === 403)
92
+ return unauthorized(response.status);
93
+ if (response.status === 503)
94
+ return notConfiguredByAgent();
95
+ if (!response.ok) {
96
+ return { ok: false, error: 'failed', message: `stack-agent answered HTTP ${response.status}` };
97
+ }
98
+ const parsed = telemetryStatusBodySchema.safeParse(await readJson(response));
99
+ if (!parsed.success) {
100
+ return { ok: false, error: 'failed', message: 'stack-agent returned an unexpected telemetry status body' };
101
+ }
102
+ return { ok: true, services: parsed.data.services };
103
+ }
104
+ /**
105
+ * `POST /v1/telemetry/up` — start (pulling if needed) the telemetry
106
+ * services. May take up to ten minutes. Never throws.
107
+ */
108
+ async telemetryUp() {
109
+ const response = await this.request('POST', '/v1/telemetry/up', exports.STACK_AGENT_UP_TIMEOUT_MS);
110
+ if (!isResponse(response))
111
+ return response;
112
+ if (response.status === 401 || response.status === 403)
113
+ return unauthorized(response.status);
114
+ if (response.status === 409) {
115
+ return { ok: false, error: 'busy', message: 'stack-agent is already running a deployment' };
116
+ }
117
+ if (response.status === 503)
118
+ return notConfiguredByAgent();
119
+ const parsed = upBodySchema.safeParse(await readJson(response));
120
+ const body = parsed.success ? parsed.data : {};
121
+ if (response.ok && body.ok !== false) {
122
+ return { ok: true, exitCode: body.exitCode ?? 0, output: body.output ?? '' };
123
+ }
124
+ return {
125
+ ok: false,
126
+ error: 'failed',
127
+ message: `stack-agent could not start the telemetry services (HTTP ${response.status}` +
128
+ (body.exitCode !== undefined && body.exitCode !== null ? `, exit code ${body.exitCode}` : '') +
129
+ ')',
130
+ exitCode: body.exitCode ?? null,
131
+ output: body.output ?? body.error ?? '',
132
+ };
133
+ }
134
+ // ---------------------------------------------------------------------------
135
+ async request(method, path, timeoutMs) {
136
+ if (!this.isConfigured()) {
137
+ return {
138
+ ok: false,
139
+ error: 'not_configured',
140
+ message: 'The stack agent is not configured on this deployment (STACK_AGENT_URL / STACK_AGENT_TOKEN).',
141
+ };
142
+ }
143
+ try {
144
+ return await this.fetchImpl(`${this.baseUrl}${path}`, {
145
+ method,
146
+ headers: { Authorization: `Bearer ${this.token}`, Accept: 'application/json' },
147
+ signal: AbortSignal.timeout(timeoutMs),
148
+ });
149
+ }
150
+ catch (error) {
151
+ const message = `stack-agent at ${this.origin()} is unreachable: ${describeFetchError(error, timeoutMs)}`;
152
+ this.logger.warn(`${method} ${path}: ${message}`);
153
+ return { ok: false, error: 'unreachable', message };
154
+ }
155
+ }
156
+ /** The URL's origin, for messages (never a path, query or credential). */
157
+ origin() {
158
+ try {
159
+ return new URL(this.baseUrl).origin;
160
+ }
161
+ catch {
162
+ return 'the configured URL';
163
+ }
164
+ }
165
+ };
166
+ exports.StackAgentClient = StackAgentClient;
167
+ exports.StackAgentClient = StackAgentClient = StackAgentClient_1 = __decorate([
168
+ (0, common_1.Injectable)(),
169
+ __metadata("design:paramtypes", [config_1.ConfigService])
170
+ ], StackAgentClient);
171
+ function isResponse(value) {
172
+ return typeof value.status === 'number';
173
+ }
174
+ function unauthorized(status) {
175
+ return {
176
+ ok: false,
177
+ error: 'unauthorized',
178
+ message: `stack-agent refused the API's token (HTTP ${status}); STACK_AGENT_TOKEN does not match the agent's.`,
179
+ };
180
+ }
181
+ function notConfiguredByAgent() {
182
+ return {
183
+ ok: false,
184
+ error: 'not_configured',
185
+ message: 'stack-agent reports that it has no telemetry stack configured on this host.',
186
+ };
187
+ }
188
+ async function readJson(response) {
189
+ try {
190
+ return await response.json();
191
+ }
192
+ catch {
193
+ return null;
194
+ }
195
+ }
196
+ /** A fetch failure in words: a timeout, a DNS/connect error (its `cause`), or the message. */
197
+ function describeFetchError(error, timeoutMs) {
198
+ if (error instanceof Error && (error.name === 'TimeoutError' || error.name === 'AbortError')) {
199
+ return `no answer within ${Math.round(timeoutMs / 1000)} s`;
200
+ }
201
+ const cause = error?.cause;
202
+ if (cause instanceof Error) {
203
+ const code = cause.code;
204
+ return typeof code === 'string' ? `${code} (${cause.message})` : cause.message;
205
+ }
206
+ return error instanceof Error ? error.message : String(error);
207
+ }
208
+ //# sourceMappingURL=stack-agent.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-agent.client.js","sourceRoot":"","sources":["../../../src/telemetry/stack/stack-agent.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { type TelemetryJobExecutionProfile, type TelemetryJobHandler, type TelemetryJobRecord as Job, type TelemetryJobsPort } from '../ports';
3
+ import { TelemetryConnectionService } from '../connection/telemetry-connection.service';
4
+ import { TelemetrySettingsService } from '../telemetry-settings.service';
5
+ import { StackAgentClient } from './stack-agent.client';
6
+ /**
7
+ * The job type. PERMANENT once rows of it exist.
8
+ *
9
+ * @stability stable
10
+ */
11
+ export declare const TELEMETRY_STACK_DEPLOY_TYPE = "telemetry.stack.deploy";
12
+ /** Cap on the stored agent output, in UTF-8 bytes. */
13
+ export declare const STACK_DEPLOY_OUTPUT_MAX_BYTES = 4096;
14
+ /** What a deploy job records on `payload.result`. */
15
+ export interface TelemetryStackDeployResult {
16
+ ok: boolean;
17
+ exitCode: number | null;
18
+ output: string;
19
+ }
20
+ /**
21
+ * The last `maxBytes` bytes of `output` (UTF-8), prefixed with an ellipsis
22
+ * line when anything was cut. Never splits a multi-byte character.
23
+ */
24
+ export declare function capOutput(output: string, maxBytes?: number): string;
25
+ export declare class TelemetryStackDeployHandler implements TelemetryJobHandler, OnModuleInit {
26
+ private readonly agent;
27
+ private readonly jobs;
28
+ private readonly connection;
29
+ private readonly settings;
30
+ private readonly logger;
31
+ readonly type = "telemetry.stack.deploy";
32
+ /** An image pull can take ten minutes; never retried automatically. */
33
+ readonly profile: TelemetryJobExecutionProfile;
34
+ constructor(agent: StackAgentClient, jobs: TelemetryJobsPort, connection: TelemetryConnectionService, settings: TelemetrySettingsService);
35
+ onModuleInit(): void;
36
+ /** Throws to fail; the row's `payload.result` is written either way when the agent answered. */
37
+ process(job: Job): Promise<void>;
38
+ /** Merges `result` into the job's own payload. Best effort: never fails the job by itself. */
39
+ private recordResult;
40
+ /** So the admin page turns green quickly. See the header; nothing here may throw. */
41
+ private nudgeTelemetry;
42
+ }
43
+ //# sourceMappingURL=telemetry-stack-deploy.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-stack-deploy.handler.d.ts","sourceRoot":"","sources":["../../../src/telemetry/stack/telemetry-stack-deploy.handler.ts"],"names":[],"mappings":"AAuCA,OAAO,EAA8B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,IAAI,GAAG,EAC9B,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAExF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,sDAAsD;AACtD,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,qDAAqD;AACrD,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAgC,GAAG,MAAM,CAc1F;AAED,qBACa,2BAA4B,YAAW,mBAAmB,EAAE,YAAY;IAWjF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;IAEvE,QAAQ,CAAC,IAAI,4BAA+B;IAE5C,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAoD;gBAK/E,KAAK,EAAE,gBAAgB,EACC,IAAI,EAAE,iBAAiB,EAC/C,UAAU,EAAE,0BAA0B,EACtC,QAAQ,EAAE,wBAAwB;IAGrD,YAAY,IAAI,IAAI;IAIpB,gGAAgG;IAC1F,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtC,8FAA8F;YAChF,YAAY;IAe1B,qFAAqF;YACvE,cAAc;CAgB7B"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // `telemetry.stack.deploy` job handler (issue #567, epic #528)
4
+ // =============================================================================
5
+ //
6
+ // Asks the VPS `stack-agent` sidecar to start the telemetry services
7
+ // (GreptimeDB and the OTel collector) — `POST /v1/telemetry/up` — and records
8
+ // what it said. Enqueued only by `POST /api/admin/telemetry/stack/deploy`
9
+ // ("Deploy GreptimeDB" on /admin/settings/telemetry).
10
+ //
11
+ // A JOB, NOT AN HTTP CALL: the agent may pull images, which can take up to
12
+ // ten minutes — far longer than an admin request may stay open (CLAUDE.md,
13
+ // queue rule 1). The admin page polls `GET /api/admin/telemetry/stack`, which
14
+ // reads this job's row.
15
+ //
16
+ // SINGLE-FLIGHT: enqueued with no subject, so its dedup key is constant for the
17
+ // type and `jobs_active_dedup_uniq_idx` guarantees at most one pending/running
18
+ // deploy; a second click returns the job already in flight.
19
+ //
20
+ // THE RESULT is written onto the job's own `payload.result` as
21
+ // `{ ok, exitCode, output }` — `output` capped at `STACK_DEPLOY_OUTPUT_MAX_BYTES`,
22
+ // keeping the TAIL (where compose prints what went wrong). A failure is also
23
+ // thrown, so the row ends `failed` with the reason in `lastError`.
24
+ //
25
+ // NEVER AUTO-RETRIED (`maxAttempts: 1`): a failed `up` is a deployment problem
26
+ // an administrator must read, and re-running a ten-minute pull on the queue's
27
+ // retry budget would only hide it.
28
+ //
29
+ // SERVER-ONLY, PERMANENTLY: no `nodeResultSchema`/`persistNodeResult`. The
30
+ // stack-agent listens only on the deployment's internal network, which a
31
+ // worker node cannot reach, and its bearer token controls the host's Docker
32
+ // daemon — a node must never hold it (CLAUDE.md, queue rule 3). Do not add a
33
+ // `nodeSecretBroker` either.
34
+ //
35
+ // AFTER A SUCCESSFUL DEPLOY the telemetry connection is nudged so the admin
36
+ // page turns green on its next poll: the connection snapshot is re-read, the
37
+ // export gate re-applied, and a `telemetry.retention.apply` job queued (a new
38
+ // GreptimeDB has no TTL yet). All best effort — none can fail the deploy.
39
+ // =============================================================================
40
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
41
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43
+ 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;
44
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
45
+ };
46
+ var __metadata = (this && this.__metadata) || function (k, v) {
47
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
48
+ };
49
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
50
+ return function (target, key) { decorator(target, key, paramIndex); }
51
+ };
52
+ var TelemetryStackDeployHandler_1;
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.TelemetryStackDeployHandler = exports.STACK_DEPLOY_OUTPUT_MAX_BYTES = exports.TELEMETRY_STACK_DEPLOY_TYPE = void 0;
55
+ exports.capOutput = capOutput;
56
+ const common_1 = require("@nestjs/common");
57
+ const ports_1 = require("../ports");
58
+ const telemetry_connection_service_1 = require("../connection/telemetry-connection.service");
59
+ const telemetry_retention_handler_1 = require("../handlers/telemetry-retention.handler");
60
+ const telemetry_settings_service_1 = require("../telemetry-settings.service");
61
+ const stack_agent_client_1 = require("./stack-agent.client");
62
+ /**
63
+ * The job type. PERMANENT once rows of it exist.
64
+ *
65
+ * @stability stable
66
+ */
67
+ exports.TELEMETRY_STACK_DEPLOY_TYPE = 'telemetry.stack.deploy';
68
+ /** Cap on the stored agent output, in UTF-8 bytes. */
69
+ exports.STACK_DEPLOY_OUTPUT_MAX_BYTES = 4096;
70
+ /**
71
+ * The last `maxBytes` bytes of `output` (UTF-8), prefixed with an ellipsis
72
+ * line when anything was cut. Never splits a multi-byte character.
73
+ */
74
+ function capOutput(output, maxBytes = exports.STACK_DEPLOY_OUTPUT_MAX_BYTES) {
75
+ const bytes = Buffer.from(output, 'utf8');
76
+ if (bytes.length <= maxBytes)
77
+ return output;
78
+ const marker = '…(truncated)\n';
79
+ const budget = maxBytes - Buffer.byteLength(marker, 'utf8');
80
+ let tail = bytes.subarray(bytes.length - budget);
81
+ // Skip UTF-8 continuation bytes (10xxxxxx) so the tail starts on a character.
82
+ let skip = 0;
83
+ while (skip < tail.length && (tail[skip] & 0xc0) === 0x80)
84
+ skip += 1;
85
+ tail = tail.subarray(skip);
86
+ return marker + tail.toString('utf8');
87
+ }
88
+ let TelemetryStackDeployHandler = TelemetryStackDeployHandler_1 = class TelemetryStackDeployHandler {
89
+ agent;
90
+ jobs;
91
+ connection;
92
+ settings;
93
+ logger = new common_1.Logger(TelemetryStackDeployHandler_1.name);
94
+ type = exports.TELEMETRY_STACK_DEPLOY_TYPE;
95
+ /** An image pull can take ten minutes; never retried automatically. */
96
+ profile = { maxRuntimeMs: 15 * 60 * 1000, maxAttempts: 1 };
97
+ // Deliberately NO `nodeResultSchema` / `persistNodeResult` — see the header.
98
+ constructor(agent, jobs, connection, settings) {
99
+ this.agent = agent;
100
+ this.jobs = jobs;
101
+ this.connection = connection;
102
+ this.settings = settings;
103
+ }
104
+ onModuleInit() {
105
+ this.jobs.registerHandler(this);
106
+ }
107
+ /** Throws to fail; the row's `payload.result` is written either way when the agent answered. */
108
+ async process(job) {
109
+ const outcome = await this.agent.telemetryUp();
110
+ if (!outcome.ok) {
111
+ if (outcome.error === 'failed') {
112
+ await this.recordResult(job, {
113
+ ok: false,
114
+ exitCode: outcome.exitCode ?? null,
115
+ output: capOutput(outcome.output ?? ''),
116
+ });
117
+ }
118
+ throw new Error(`Deploying the telemetry services failed (${outcome.error}): ${outcome.message}`);
119
+ }
120
+ await this.recordResult(job, { ok: true, exitCode: outcome.exitCode, output: capOutput(outcome.output) });
121
+ this.logger.log(`Telemetry services started by stack-agent (job ${job.id})`);
122
+ await this.nudgeTelemetry();
123
+ }
124
+ /** Merges `result` into the job's own payload. Best effort: never fails the job by itself. */
125
+ async recordResult(job, result) {
126
+ const base = job.payload && typeof job.payload === 'object' && !Array.isArray(job.payload)
127
+ ? job.payload
128
+ : {};
129
+ try {
130
+ await this.jobs.updatePayload(job.id, { ...base, result: { ...result } });
131
+ }
132
+ catch (error) {
133
+ this.logger.warn(`Could not record the deploy result on job ${job.id}: ${error instanceof Error ? error.message : String(error)}`);
134
+ }
135
+ }
136
+ /** So the admin page turns green quickly. See the header; nothing here may throw. */
137
+ async nudgeTelemetry() {
138
+ try {
139
+ await this.connection.refreshSafely();
140
+ await this.settings.refreshGate();
141
+ }
142
+ catch (error) {
143
+ this.logger.warn(`Telemetry refresh after deploy failed: ${error instanceof Error ? error.message : String(error)}`);
144
+ }
145
+ await this.jobs.enqueueHousekeepingJob({
146
+ logger: this.logger,
147
+ type: telemetry_retention_handler_1.TELEMETRY_RETENTION_TYPE,
148
+ what: 'telemetry retention',
149
+ });
150
+ }
151
+ };
152
+ exports.TelemetryStackDeployHandler = TelemetryStackDeployHandler;
153
+ exports.TelemetryStackDeployHandler = TelemetryStackDeployHandler = TelemetryStackDeployHandler_1 = __decorate([
154
+ (0, common_1.Injectable)(),
155
+ __param(1, (0, common_1.Inject)(ports_1.TELEMETRY_JOBS)),
156
+ __metadata("design:paramtypes", [stack_agent_client_1.StackAgentClient, Object, telemetry_connection_service_1.TelemetryConnectionService,
157
+ telemetry_settings_service_1.TelemetrySettingsService])
158
+ ], TelemetryStackDeployHandler);
159
+ //# sourceMappingURL=telemetry-stack-deploy.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-stack-deploy.handler.js","sourceRoot":"","sources":["../../../src/telemetry/stack/telemetry-stack-deploy.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Type } from '@nestjs/common';
2
+ import type { ResolvedTelemetryModuleOptions } from '../telemetry.options';
3
+ /**
4
+ * Creates the `TelemetryStackController` class for one set of module options: its routes
5
+ * guarded by the app's access decorators (`options.host.access`), the caller
6
+ * resolved by `options.actorId`. `TelemetryModule.forRoot()` calls it.
7
+ *
8
+ * @param options - the resolved module options.
9
+ * @returns the controller class.
10
+ *
11
+ * @stability experimental
12
+ */
13
+ export declare function createTelemetryStackController(options: ResolvedTelemetryModuleOptions): Type<unknown>;
14
+ //# sourceMappingURL=telemetry-stack.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-stack.controller.d.ts","sourceRoot":"","sources":["../../../src/telemetry/stack/telemetry-stack.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM3F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAiB3E;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAiDrG"}
@@ -0,0 +1,107 @@
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.createTelemetryStackController = createTelemetryStackController;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const index_1 = require("../../core/index");
19
+ const telemetry_stack_dto_1 = require("./dto/telemetry-stack.dto");
20
+ const telemetry_stack_service_1 = require("./telemetry-stack.service");
21
+ const telemetry_permissions_1 = require("../telemetry.permissions");
22
+ // =============================================================================
23
+ // TelemetryStackController (issue #567, epic #528)
24
+ // =============================================================================
25
+ //
26
+ // GET /api/admin/telemetry/stack system_settings:read
27
+ // POST /api/admin/telemetry/stack/deploy system_settings:write (202, idempotent)
28
+ //
29
+ // WHY `system_settings:*` AND NOT `telemetry:*`: starting containers on the
30
+ // host through the stack-agent is a DEPLOYMENT action, not a telemetry policy
31
+ // edit — the same reach as the rest of the deployment-wide system settings.
32
+ // The Telemetry services section of /admin/settings/telemetry gates its
33
+ // content and its "Deploy GreptimeDB" button on these exact strings.
34
+ // =============================================================================
35
+ /**
36
+ * Creates the `TelemetryStackController` class for one set of module options: its routes
37
+ * guarded by the app's access decorators (`options.host.access`), the caller
38
+ * resolved by `options.actorId`. `TelemetryModule.forRoot()` calls it.
39
+ *
40
+ * @param options - the resolved module options.
41
+ * @returns the controller class.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ function createTelemetryStackController(options) {
46
+ const access = options.host.access;
47
+ const ActorId = options.actorIdParam;
48
+ let TelemetryStackController = class TelemetryStackController {
49
+ stack;
50
+ constructor(stack) {
51
+ this.stack = stack;
52
+ }
53
+ async getStatus() {
54
+ return this.stack.getStatus();
55
+ }
56
+ async deploy(userId) {
57
+ return this.stack.deploy(userId);
58
+ }
59
+ };
60
+ __decorate([
61
+ (0, common_1.Get)(),
62
+ (access.requirePermissions([telemetry_permissions_1.TELEMETRY_HOST_PERMISSIONS.SYSTEM_SETTINGS_READ])),
63
+ (0, swagger_1.ApiOperation)({
64
+ summary: 'Get the telemetry services status (Admin only)',
65
+ description: 'The state of each telemetry container (GreptimeDB, the OTel collector) as reported by the ' +
66
+ 'deployment\'s stack agent, and the most recent `telemetry.stack.deploy` job.\n\n' +
67
+ '**Always 200.** `agent` is `available` (the agent answered), `unavailable` (configured ' +
68
+ 'but unreachable within five seconds, or an unexpected answer), `unauthorized` (it refused ' +
69
+ 'the API\'s token) or `not_configured` (this deployment has no stack agent). `agentError` ' +
70
+ 'says why the agent is `unavailable` or `unauthorized` (never the token), else null. `services` is ' +
71
+ 'empty unless `agent` is `available`. `deploy` is null when no deploy was ever requested; ' +
72
+ '`deploy.output` is the tail (at most 4 KB) of what the agent printed.',
73
+ }),
74
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'The telemetry services status', type: telemetry_stack_dto_1.TelemetryStackStatusDto }),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", []),
77
+ __metadata("design:returntype", Promise)
78
+ ], TelemetryStackController.prototype, "getStatus", null);
79
+ __decorate([
80
+ (0, common_1.Post)('deploy'),
81
+ (access.requirePermissions([telemetry_permissions_1.TELEMETRY_HOST_PERMISSIONS.SYSTEM_SETTINGS_WRITE])),
82
+ (0, common_1.HttpCode)(common_1.HttpStatus.ACCEPTED),
83
+ (0, swagger_1.ApiOperation)({
84
+ summary: 'Deploy the telemetry services (Admin only)',
85
+ description: 'Queues a `telemetry.stack.deploy` job, which asks the stack agent to start GreptimeDB and ' +
86
+ 'the OTel collector (pulling their images if needed — up to ten minutes), and returns at ' +
87
+ 'once with **202**. Poll `GET /api/admin/telemetry/stack` for `deploy.status`.\n\n' +
88
+ '**Idempotent:** while a deploy is pending or running, the call returns that job\'s id ' +
89
+ 'instead of queueing another. **409** with `details.reason` `STACK_AGENT_NOT_CONFIGURED` ' +
90
+ 'when this deployment has no stack agent.',
91
+ }),
92
+ (0, swagger_1.ApiResponse)({ status: 202, description: 'The deploy job (new, or the one already in flight)', type: telemetry_stack_dto_1.TelemetryStackDeployStartedDto }),
93
+ (0, swagger_1.ApiResponse)({ status: 409, description: '`STACK_AGENT_NOT_CONFIGURED`', type: index_1.ErrorDto }),
94
+ __param(0, ActorId()),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [String]),
97
+ __metadata("design:returntype", Promise)
98
+ ], TelemetryStackController.prototype, "deploy", null);
99
+ TelemetryStackController = __decorate([
100
+ (0, swagger_1.ApiTags)('Telemetry'),
101
+ (0, common_1.Controller)('admin/telemetry/stack'),
102
+ __param(0, (0, common_1.Inject)(telemetry_stack_service_1.TelemetryStackService)),
103
+ __metadata("design:paramtypes", [telemetry_stack_service_1.TelemetryStackService])
104
+ ], TelemetryStackController);
105
+ return TelemetryStackController;
106
+ }
107
+ //# sourceMappingURL=telemetry-stack.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-stack.controller.js","sourceRoot":"","sources":["../../../src/telemetry/stack/telemetry-stack.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAiCA,wEAiDC;AAlFD,2CAA2F;AAC3F,6CAAqE;AAErE,4CAA4C;AAC5C,mEAAoG;AACpG,uEAAkE;AAElE,oEAAsE;AAEtE,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAChF,EAAE;AACF,kEAAkE;AAClE,sFAAsF;AACtF,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,wEAAwE;AACxE,qEAAqE;AACrE,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAAC,OAAuC;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAErC,IAEM,wBAAwB,GAF9B,MAEM,wBAAwB;QACgC;QAA5D,YAA4D,KAA4B;YAA5B,UAAK,GAAL,KAAK,CAAuB;QAAG,CAAC;QAiBtF,AAAN,KAAK,CAAC,SAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;QAiBK,AAAN,KAAK,CAAC,MAAM,CAAY,MAAc;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;KACF,CAAA;IAtBO;QAfL,IAAA,YAAG,GAAE;QACL,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,kDAA0B,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9E,IAAA,sBAAY,EAAC;YACZ,OAAO,EAAE,gDAAgD;YACzD,WAAW,EACT,4FAA4F;gBAC5F,kFAAkF;gBAClF,yFAAyF;gBACzF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,oGAAoG;gBACpG,2FAA2F;gBAC3F,uEAAuE;SAC1E,CAAC;QACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,6CAAuB,EAAE,CAAC;;;;6DAGzG;IAiBK;QAfL,IAAA,aAAI,EAAC,QAAQ,CAAC;QACd,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,kDAA0B,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/E,IAAA,iBAAQ,EAAC,mBAAU,CAAC,QAAQ,CAAC;QAC7B,IAAA,sBAAY,EAAC;YACZ,OAAO,EAAE,4CAA4C;YACrD,WAAW,EACT,4FAA4F;gBAC5F,0FAA0F;gBAC1F,mFAAmF;gBACnF,wFAAwF;gBACxF,0FAA0F;gBAC1F,0CAA0C;SAC7C,CAAC;QACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oDAAoD,EAAE,IAAI,EAAE,oDAA8B,EAAE,CAAC;QACrI,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,8BAA8B,EAAE,IAAI,EAAE,gBAAQ,EAAE,CAAC;QAC5E,WAAA,OAAO,EAAE,CAAA;;;;0DAEtB;IAvCG,wBAAwB;QAF7B,IAAA,iBAAO,EAAC,WAAW,CAAC;QACpB,IAAA,mBAAU,EAAC,uBAAuB,CAAC;QAErB,WAAA,IAAA,eAAM,EAAC,+CAAqB,CAAC,CAAA;yCAAyB,+CAAqB;OADpF,wBAAwB,CAwC7B;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type TelemetryAuditSink, type TelemetryJobRecord, type TelemetryJobsPort } from '../ports';
2
+ import type { TelemetryStackDeploy, TelemetryStackStatus } from './dto/telemetry-stack.dto';
3
+ import { StackAgentClient } from './stack-agent.client';
4
+ export declare const TELEMETRY_STACK_DEPLOY_AUDIT_ACTION = "telemetry:stack_deploy";
5
+ export declare class TelemetryStackService {
6
+ private readonly agent;
7
+ private readonly jobs;
8
+ private readonly auditSink;
9
+ private readonly logger;
10
+ constructor(agent: StackAgentClient, jobs: TelemetryJobsPort, auditSink: TelemetryAuditSink);
11
+ getStatus(): Promise<TelemetryStackStatus>;
12
+ /** Queues a deploy (or returns the one in flight) and audits the request. */
13
+ deploy(userId: string): Promise<{
14
+ jobId: string;
15
+ }>;
16
+ }
17
+ /** The API shape of one deploy job. `output` comes from the handler's `payload.result`. */
18
+ export declare function toDeploy(job: Pick<TelemetryJobRecord, 'id' | 'status' | 'createdAt' | 'finishedAt' | 'lastError' | 'payload'>): TelemetryStackDeploy;
19
+ //# sourceMappingURL=telemetry-stack.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-stack.service.d.ts","sourceRoot":"","sources":["../../../src/telemetry/stack/telemetry-stack.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAA4B,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAoBxD,eAAO,MAAM,mCAAmC,2BAA2B,CAAC;AAE5E,qBACa,qBAAqB;IAI9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;gBAG9C,KAAK,EAAE,gBAAgB,EACC,IAAI,EAAE,iBAAiB,EACjB,SAAS,EAAE,kBAAkB;IAGxE,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAwBhD,6EAA6E;IACvE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CA+BzD;AAED,2FAA2F;AAC3F,wBAAgB,QAAQ,CACtB,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC,GACpG,oBAAoB,CActB"}