@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.
- package/CHANGELOG.md +54 -0
- package/LICENSE +21 -0
- package/README.md +106 -2
- package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
- package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
- package/dist/core/crypto/encryption-key-startup-check.js +221 -0
- package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
- package/dist/core/crypto/secret-cipher.d.ts +151 -0
- package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
- package/dist/core/crypto/secret-cipher.js +452 -0
- package/dist/core/crypto/secret-cipher.js.map +1 -0
- package/dist/core/data-access/index.d.ts +6 -0
- package/dist/core/data-access/index.d.ts.map +1 -0
- package/dist/core/data-access/index.js +19 -0
- package/dist/core/data-access/index.js.map +1 -0
- package/dist/core/data-access/scoped-access.error.d.ts +35 -0
- package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
- package/dist/core/data-access/scoped-access.error.js +43 -0
- package/dist/core/data-access/scoped-access.error.js.map +1 -0
- package/dist/core/data-access/scoped-client.d.ts +104 -0
- package/dist/core/data-access/scoped-client.d.ts.map +1 -0
- package/dist/core/data-access/scoped-client.js +270 -0
- package/dist/core/data-access/scoped-client.js.map +1 -0
- package/dist/core/data-access/types.d.ts +85 -0
- package/dist/core/data-access/types.d.ts.map +1 -0
- package/dist/core/data-access/types.js +12 -0
- package/dist/core/data-access/types.js.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.js +140 -0
- package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
- package/dist/core/errors/database-seed.exception.d.ts +23 -0
- package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
- package/dist/core/errors/database-seed.exception.js +49 -0
- package/dist/core/errors/database-seed.exception.js.map +1 -0
- package/dist/core/errors/error.dto.d.ts +47 -0
- package/dist/core/errors/error.dto.d.ts.map +1 -0
- package/dist/core/errors/error.dto.js +121 -0
- package/dist/core/errors/error.dto.js.map +1 -0
- package/dist/core/errors/http-exception.filter.d.ts +63 -0
- package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
- package/dist/core/errors/http-exception.filter.js +234 -0
- package/dist/core/errors/http-exception.filter.js.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.js +135 -0
- package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
- package/dist/core/host/index.d.ts +7 -0
- package/dist/core/host/index.d.ts.map +1 -0
- package/dist/core/host/index.js +14 -0
- package/dist/core/host/index.js.map +1 -0
- package/dist/core/host/platform-host.d.ts +58 -0
- package/dist/core/host/platform-host.d.ts.map +1 -0
- package/dist/core/host/platform-host.js +104 -0
- package/dist/core/host/platform-host.js.map +1 -0
- package/dist/core/host/platform-host.module.d.ts +53 -0
- package/dist/core/host/platform-host.module.d.ts.map +1 -0
- package/dist/core/host/platform-host.module.js +90 -0
- package/dist/core/host/platform-host.module.js.map +1 -0
- package/dist/core/host/ports.d.ts +132 -0
- package/dist/core/host/ports.d.ts.map +1 -0
- package/dist/core/host/ports.js +48 -0
- package/dist/core/host/ports.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +77 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.js +72 -0
- package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
- package/dist/core/principal/index.d.ts +6 -0
- package/dist/core/principal/index.d.ts.map +1 -0
- package/dist/core/principal/index.js +3 -0
- package/dist/core/principal/index.js.map +1 -0
- package/dist/core/principal/principal.types.d.ts +222 -0
- package/dist/core/principal/principal.types.d.ts.map +1 -0
- package/dist/core/principal/principal.types.js +22 -0
- package/dist/core/principal/principal.types.js.map +1 -0
- package/dist/core/registry/index.d.ts +4 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +19 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/registry-freeze.service.d.ts +14 -0
- package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
- package/dist/core/registry/registry-freeze.service.js +55 -0
- package/dist/core/registry/registry-freeze.service.js.map +1 -0
- package/dist/core/registry/registry.d.ts +268 -0
- package/dist/core/registry/registry.d.ts.map +1 -0
- package/dist/core/registry/registry.js +351 -0
- package/dist/core/registry/registry.js.map +1 -0
- package/dist/core/registry/testing.d.ts +29 -0
- package/dist/core/registry/testing.d.ts.map +1 -0
- package/dist/core/registry/testing.js +63 -0
- package/dist/core/registry/testing.js.map +1 -0
- package/dist/doctor/doctor-check.interface.d.ts +100 -0
- package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
- package/dist/doctor/doctor-check.interface.js +95 -0
- package/dist/doctor/doctor-check.interface.js.map +1 -0
- package/dist/doctor/doctor-check.registry.d.ts +37 -0
- package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
- package/dist/doctor/doctor-check.registry.js +96 -0
- package/dist/doctor/doctor-check.registry.js.map +1 -0
- package/dist/doctor/doctor.controller.factory.d.ts +29 -0
- package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
- package/dist/doctor/doctor.controller.factory.js +121 -0
- package/dist/doctor/doctor.controller.factory.js.map +1 -0
- package/dist/doctor/doctor.module.d.ts +78 -0
- package/dist/doctor/doctor.module.d.ts.map +1 -0
- package/dist/doctor/doctor.module.js +158 -0
- package/dist/doctor/doctor.module.js.map +1 -0
- package/dist/doctor/doctor.options.d.ts +39 -0
- package/dist/doctor/doctor.options.d.ts.map +1 -0
- package/dist/doctor/doctor.options.js +21 -0
- package/dist/doctor/doctor.options.js.map +1 -0
- package/dist/doctor/doctor.service.d.ts +80 -0
- package/dist/doctor/doctor.service.d.ts.map +1 -0
- package/dist/doctor/doctor.service.js +301 -0
- package/dist/doctor/doctor.service.js.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.js +16 -0
- package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.js +23 -0
- package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
- package/dist/doctor/egress/classify-host.d.ts +73 -0
- package/dist/doctor/egress/classify-host.d.ts.map +1 -0
- package/dist/doctor/egress/classify-host.js +210 -0
- package/dist/doctor/egress/classify-host.js.map +1 -0
- package/dist/doctor/egress/egress.registry.d.ts +34 -0
- package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
- package/dist/doctor/egress/egress.registry.js +70 -0
- package/dist/doctor/egress/egress.registry.js.map +1 -0
- package/dist/doctor/egress/egress.types.d.ts +135 -0
- package/dist/doctor/egress/egress.types.d.ts.map +1 -0
- package/dist/doctor/egress/egress.types.js +42 -0
- package/dist/doctor/egress/egress.types.js.map +1 -0
- package/dist/doctor/egress/index.d.ts +6 -0
- package/dist/doctor/egress/index.d.ts.map +1 -0
- package/dist/doctor/egress/index.js +23 -0
- package/dist/doctor/egress/index.js.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
- package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
- package/dist/doctor/index.d.ts +19 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +66 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/support-bundle/index.d.ts +12 -0
- package/dist/doctor/support-bundle/index.d.ts.map +1 -0
- package/dist/doctor/support-bundle/index.js +32 -0
- package/dist/doctor/support-bundle/index.js.map +1 -0
- package/dist/doctor/support-bundle/redact.d.ts +76 -0
- package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
- package/dist/doctor/support-bundle/redact.js +236 -0
- package/dist/doctor/support-bundle/redact.js.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
- package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
- package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
- package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
- package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/otel-core/index.d.ts +9 -0
- package/dist/otel-core/index.d.ts.map +1 -0
- package/dist/otel-core/index.js +58 -0
- package/dist/otel-core/index.js.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.js +37 -0
- package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
- package/dist/otel-core/metrics/labels.d.ts +79 -0
- package/dist/otel-core/metrics/labels.d.ts.map +1 -0
- package/dist/otel-core/metrics/labels.js +135 -0
- package/dist/otel-core/metrics/labels.js.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.js +134 -0
- package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.js +344 -0
- package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
- package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
- package/dist/otel-core/sdk/index.d.ts +5 -0
- package/dist/otel-core/sdk/index.d.ts.map +1 -0
- package/dist/otel-core/sdk/index.js +27 -0
- package/dist/otel-core/sdk/index.js.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.js +204 -0
- package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
- package/dist/otel-core/sdk/instance-id.d.ts +29 -0
- package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
- package/dist/otel-core/sdk/instance-id.js +65 -0
- package/dist/otel-core/sdk/instance-id.js.map +1 -0
- package/dist/otel-core/sdk/service-name.d.ts +28 -0
- package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
- package/dist/otel-core/sdk/service-name.js +63 -0
- package/dist/otel-core/sdk/service-name.js.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.js +297 -0
- package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.js +155 -0
- package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
- package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
- package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
- package/dist/otel-core/spans/trace.decorator.js +74 -0
- package/dist/otel-core/spans/trace.decorator.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
- package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.js +75 -0
- package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.js +77 -0
- package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
- package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
- package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
- package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.js +29 -0
- package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.js +185 -0
- package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
- package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
- package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime-host.js +114 -0
- package/dist/telemetry/greptime/greptime-host.js.map +1 -0
- package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
- package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.client.js +352 -0
- package/dist/telemetry/greptime/greptime.client.js.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.js +100 -0
- package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
- package/dist/telemetry/index.d.ts +37 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +97 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/internal/blank-secret.d.ts +3 -0
- package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
- package/dist/telemetry/internal/blank-secret.js +14 -0
- package/dist/telemetry/internal/blank-secret.js.map +1 -0
- package/dist/telemetry/internal/csv.d.ts +9 -0
- package/dist/telemetry/internal/csv.d.ts.map +1 -0
- package/dist/telemetry/internal/csv.js +23 -0
- package/dist/telemetry/internal/csv.js.map +1 -0
- package/dist/telemetry/internal/sse.d.ts +23 -0
- package/dist/telemetry/internal/sse.d.ts.map +1 -0
- package/dist/telemetry/internal/sse.js +43 -0
- package/dist/telemetry/internal/sse.js.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.js +180 -0
- package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.d.ts +113 -0
- package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.js +647 -0
- package/dist/telemetry/metrics/metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
- package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.js +181 -0
- package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
- package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
- package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-sql.js +259 -0
- package/dist/telemetry/metrics/metric-sql.js.map +1 -0
- package/dist/telemetry/metrics/metric-values.d.ts +19 -0
- package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-values.js +97 -0
- package/dist/telemetry/metrics/metric-values.js.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.js +218 -0
- package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
- package/dist/telemetry/ports.d.ts +575 -0
- package/dist/telemetry/ports.d.ts.map +1 -0
- package/dist/telemetry/ports.js +78 -0
- package/dist/telemetry/ports.js.map +1 -0
- package/dist/telemetry/query/sql-guard.d.ts +71 -0
- package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
- package/dist/telemetry/query/sql-guard.js +258 -0
- package/dist/telemetry/query/sql-guard.js.map +1 -0
- package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
- package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-availability.js +55 -0
- package/dist/telemetry/query/telemetry-availability.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.js +100 -0
- package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.js +194 -0
- package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.js +154 -0
- package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.js +208 -0
- package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
- package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.js +148 -0
- package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
- package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-config.controller.js +73 -0
- package/dist/telemetry/telemetry-config.controller.js.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.js +193 -0
- package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
- package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
- package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-settings.service.js +278 -0
- package/dist/telemetry/telemetry-settings.service.js.map +1 -0
- package/dist/telemetry/telemetry-status.service.d.ts +28 -0
- package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-status.service.js +185 -0
- package/dist/telemetry/telemetry-status.service.js.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
- package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
- package/dist/telemetry/telemetry.module.d.ts +35 -0
- package/dist/telemetry/telemetry.module.d.ts.map +1 -0
- package/dist/telemetry/telemetry.module.js +210 -0
- package/dist/telemetry/telemetry.module.js.map +1 -0
- package/dist/telemetry/telemetry.options.d.ts +176 -0
- package/dist/telemetry/telemetry.options.d.ts.map +1 -0
- package/dist/telemetry/telemetry.options.js +246 -0
- package/dist/telemetry/telemetry.options.js.map +1 -0
- package/dist/telemetry/telemetry.permissions.d.ts +76 -0
- package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
- package/dist/telemetry/telemetry.permissions.js +85 -0
- package/dist/telemetry/telemetry.permissions.js.map +1 -0
- package/dist/telemetry/telemetry.settings.d.ts +79 -0
- package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
- package/dist/telemetry/telemetry.settings.js +92 -0
- package/dist/telemetry/telemetry.settings.js.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
- package/dist/telemetry/testing/conformance.d.ts +257 -0
- package/dist/telemetry/testing/conformance.d.ts.map +1 -0
- package/dist/telemetry/testing/conformance.js +626 -0
- package/dist/telemetry/testing/conformance.js.map +1 -0
- package/dist/telemetry/testing/index.d.ts +10 -0
- package/dist/telemetry/testing/index.d.ts.map +1 -0
- package/dist/telemetry/testing/index.js +41 -0
- package/dist/telemetry/testing/index.js.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
- package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
- package/dist/telemetry/testing/stub-ports.d.ts +46 -0
- package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
- package/dist/telemetry/testing/stub-ports.js +119 -0
- package/dist/telemetry/testing/stub-ports.js.map +1 -0
- package/dist/testing/conformance-suite.d.ts +106 -0
- package/dist/testing/conformance-suite.d.ts.map +1 -0
- package/dist/testing/conformance-suite.js +8 -0
- package/dist/testing/conformance-suite.js.map +1 -0
- package/dist/testing/conformance-suites.d.ts +14 -0
- package/dist/testing/conformance-suites.d.ts.map +1 -0
- package/dist/testing/conformance-suites.js +27 -0
- package/dist/testing/conformance-suites.js.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.js +30 -0
- package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.js +54 -0
- package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
- package/dist/testing/host/index.d.ts +4 -0
- package/dist/testing/host/index.d.ts.map +1 -0
- package/dist/testing/host/index.js +13 -0
- package/dist/testing/host/index.js.map +1 -0
- package/dist/testing/host/test-platform-host.d.ts +35 -0
- package/dist/testing/host/test-platform-host.d.ts.map +1 -0
- package/dist/testing/host/test-platform-host.js +81 -0
- package/dist/testing/host/test-platform-host.js.map +1 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +32 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/prisma-schema.d.ts +99 -0
- package/dist/testing/prisma-schema.d.ts.map +1 -0
- package/dist/testing/prisma-schema.js +175 -0
- package/dist/testing/prisma-schema.js.map +1 -0
- package/dist/testing/run-platform-conformance.d.ts +70 -0
- package/dist/testing/run-platform-conformance.d.ts.map +1 -0
- package/dist/testing/run-platform-conformance.js +77 -0
- package/dist/testing/run-platform-conformance.js.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.js +177 -0
- package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
- package/dist/testing/suites/user-owned-data.d.ts +86 -0
- package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
- package/dist/testing/suites/user-owned-data.js +329 -0
- package/dist/testing/suites/user-owned-data.js.map +1 -0
- package/package.json +129 -4
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var TelemetryQueryService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TelemetryQueryService = exports.TELEMETRY_AUDIT_SQL_MAX = exports.TELEMETRY_QUERY_AUDIT_ACTIONS = void 0;
|
|
17
|
+
exports.columnTypeName = columnTypeName;
|
|
18
|
+
exports.toJsonSafe = toJsonSafe;
|
|
19
|
+
const common_1 = require("@nestjs/common");
|
|
20
|
+
const greptime_client_1 = require("../greptime/greptime.client");
|
|
21
|
+
const ports_1 = require("../ports");
|
|
22
|
+
const telemetry_settings_service_1 = require("../telemetry-settings.service");
|
|
23
|
+
const sql_guard_1 = require("./sql-guard");
|
|
24
|
+
const telemetry_availability_1 = require("./telemetry-availability");
|
|
25
|
+
const telemetry_query_errors_1 = require("./telemetry-query.errors");
|
|
26
|
+
/** Audit `action` per source. */
|
|
27
|
+
exports.TELEMETRY_QUERY_AUDIT_ACTIONS = {
|
|
28
|
+
explorer: 'telemetry:query',
|
|
29
|
+
export: 'telemetry:export',
|
|
30
|
+
assistant: 'telemetry:assistant_query',
|
|
31
|
+
};
|
|
32
|
+
/** How much of the SQL text an audit row keeps. */
|
|
33
|
+
exports.TELEMETRY_AUDIT_SQL_MAX = 4_000;
|
|
34
|
+
/** PostgreSQL type OID → the simplified name the explorer shows. */
|
|
35
|
+
const TYPE_NAMES = {
|
|
36
|
+
16: 'bool',
|
|
37
|
+
17: 'bytea',
|
|
38
|
+
20: 'int8',
|
|
39
|
+
21: 'int2',
|
|
40
|
+
23: 'int4',
|
|
41
|
+
25: 'text',
|
|
42
|
+
114: 'json',
|
|
43
|
+
700: 'float4',
|
|
44
|
+
701: 'float8',
|
|
45
|
+
1043: 'text',
|
|
46
|
+
1082: 'date',
|
|
47
|
+
1083: 'time',
|
|
48
|
+
1114: 'timestamp',
|
|
49
|
+
1184: 'timestamp',
|
|
50
|
+
1700: 'numeric',
|
|
51
|
+
3802: 'json',
|
|
52
|
+
};
|
|
53
|
+
function columnTypeName(dataTypeID) {
|
|
54
|
+
return TYPE_NAMES[dataTypeID] ?? 'unknown';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A wire value as something `JSON.stringify` reproduces faithfully:
|
|
58
|
+
* Buffer → base64, bigint → decimal string, Date → ISO string, non-finite
|
|
59
|
+
* number → its name (JSON would silently turn it into null), arrays and
|
|
60
|
+
* plain objects recursively. `int8`/`numeric`/timestamps already arrive as
|
|
61
|
+
* strings from `GreptimeClient` and stay that way.
|
|
62
|
+
*/
|
|
63
|
+
function toJsonSafe(value) {
|
|
64
|
+
if (value === null || value === undefined)
|
|
65
|
+
return null;
|
|
66
|
+
switch (typeof value) {
|
|
67
|
+
case 'string':
|
|
68
|
+
case 'boolean':
|
|
69
|
+
return value;
|
|
70
|
+
case 'number':
|
|
71
|
+
return Number.isFinite(value) ? value : String(value);
|
|
72
|
+
case 'bigint':
|
|
73
|
+
return value.toString();
|
|
74
|
+
case 'object':
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
return String(value);
|
|
78
|
+
}
|
|
79
|
+
if (Buffer.isBuffer(value))
|
|
80
|
+
return value.toString('base64');
|
|
81
|
+
if (value instanceof Uint8Array)
|
|
82
|
+
return Buffer.from(value).toString('base64');
|
|
83
|
+
if (value instanceof Date)
|
|
84
|
+
return Number.isNaN(value.getTime()) ? null : value.toISOString();
|
|
85
|
+
if (Array.isArray(value))
|
|
86
|
+
return value.map(toJsonSafe);
|
|
87
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, toJsonSafe(v)]));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The one entry point for caller-supplied SQL (the explorer, the export and
|
|
91
|
+
* the assistant): the SQL guard, the row cap, the timeout and an audit row.
|
|
92
|
+
* Exported by `TelemetryModule`.
|
|
93
|
+
*
|
|
94
|
+
* @stability experimental
|
|
95
|
+
*/
|
|
96
|
+
let TelemetryQueryService = TelemetryQueryService_1 = class TelemetryQueryService {
|
|
97
|
+
greptime;
|
|
98
|
+
settings;
|
|
99
|
+
auditSink;
|
|
100
|
+
logger = new common_1.Logger(TelemetryQueryService_1.name);
|
|
101
|
+
constructor(greptime, settings, auditSink) {
|
|
102
|
+
this.greptime = greptime;
|
|
103
|
+
this.settings = settings;
|
|
104
|
+
this.auditSink = auditSink;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Runs one read-only statement for `userId`. Throws `TelemetryHttpError`
|
|
108
|
+
* (see `telemetry-query.errors.ts`) for every expected failure.
|
|
109
|
+
*/
|
|
110
|
+
async run(userId, sql, opts = {}) {
|
|
111
|
+
const source = opts.source ?? 'explorer';
|
|
112
|
+
// Preconditions are not audited: nothing was attempted against the store.
|
|
113
|
+
const policy = await (0, telemetry_availability_1.requireQueryablePolicy)(this.greptime, this.settings);
|
|
114
|
+
const maxRows = clampRows(opts.maxRows, policy.query.maxRows);
|
|
115
|
+
const started = Date.now();
|
|
116
|
+
let outcome;
|
|
117
|
+
try {
|
|
118
|
+
const statement = (0, sql_guard_1.analyzeStatement)(sql);
|
|
119
|
+
const capped = (0, sql_guard_1.applyRowCap)(statement, maxRows + 1);
|
|
120
|
+
// 'client-only': the server may return more than maxRows + 1 rows. The
|
|
121
|
+
// slice below still caps the RESPONSE; the rows are held in memory in
|
|
122
|
+
// the meantime, bounded only by the policy timeout. Streaming rows off
|
|
123
|
+
// the socket and hanging up past the cap was considered and not done:
|
|
124
|
+
// it would replace `GreptimeClient.run`'s one-shot query (and its
|
|
125
|
+
// multi-statement check) for statements that are rare — `LIMIT ALL`,
|
|
126
|
+
// `LIMIT <expression>`, `FETCH FIRST`, SHOW/DESCRIBE/EXPLAIN.
|
|
127
|
+
if (capped.strategy === 'client-only' && statement.kind === 'select') {
|
|
128
|
+
this.logger.debug('Telemetry query has no server-side row cap; capping client-side');
|
|
129
|
+
}
|
|
130
|
+
const result = await this.greptime.queryReader(capped.sql, {
|
|
131
|
+
timeoutMs: policy.query.timeoutSeconds * 1000,
|
|
132
|
+
signal: opts.signal,
|
|
133
|
+
});
|
|
134
|
+
const elapsedMs = Date.now() - started;
|
|
135
|
+
const truncated = result.rows.length > maxRows;
|
|
136
|
+
const rows = (truncated ? result.rows.slice(0, maxRows) : result.rows).map((row) => row.map(toJsonSafe));
|
|
137
|
+
outcome = {
|
|
138
|
+
columns: result.fields.map((field) => ({ name: field.name, type: columnTypeName(field.dataTypeID) })),
|
|
139
|
+
rows,
|
|
140
|
+
rowCount: rows.length,
|
|
141
|
+
truncated,
|
|
142
|
+
elapsedMs,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const mapped = (0, telemetry_availability_1.toTelemetryHttpError)(error);
|
|
147
|
+
const elapsedMs = Date.now() - started;
|
|
148
|
+
await this.audit(userId, source, sql, {
|
|
149
|
+
rowCount: 0,
|
|
150
|
+
truncated: false,
|
|
151
|
+
elapsedMs,
|
|
152
|
+
error: error instanceof Error ? error.message : String(error),
|
|
153
|
+
...(mapped instanceof telemetry_query_errors_1.TelemetryHttpError ? { reason: mapped.reason } : {}),
|
|
154
|
+
}).catch((auditError) => {
|
|
155
|
+
// Never let a failed audit write replace the error the caller needs.
|
|
156
|
+
this.logger.warn(`Could not audit a failed telemetry query: ${auditError instanceof Error ? auditError.message : String(auditError)}`);
|
|
157
|
+
});
|
|
158
|
+
throw mapped;
|
|
159
|
+
}
|
|
160
|
+
// Outside the try: a failed audit write is a 500, not a "failed query".
|
|
161
|
+
await this.audit(userId, source, sql, {
|
|
162
|
+
rowCount: outcome.rowCount,
|
|
163
|
+
truncated: outcome.truncated,
|
|
164
|
+
elapsedMs: outcome.elapsedMs,
|
|
165
|
+
});
|
|
166
|
+
return outcome;
|
|
167
|
+
}
|
|
168
|
+
async audit(userId, source, sql, meta) {
|
|
169
|
+
await this.auditSink.record({
|
|
170
|
+
actorUserId: userId,
|
|
171
|
+
action: exports.TELEMETRY_QUERY_AUDIT_ACTIONS[source],
|
|
172
|
+
targetType: 'telemetry_store',
|
|
173
|
+
targetId: this.greptime.database,
|
|
174
|
+
meta: {
|
|
175
|
+
sql: sql.length > exports.TELEMETRY_AUDIT_SQL_MAX ? `${sql.slice(0, exports.TELEMETRY_AUDIT_SQL_MAX)}…` : sql,
|
|
176
|
+
...(sql.length > exports.TELEMETRY_AUDIT_SQL_MAX ? { sqlLength: sql.length } : {}),
|
|
177
|
+
source,
|
|
178
|
+
...meta,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
exports.TelemetryQueryService = TelemetryQueryService;
|
|
184
|
+
exports.TelemetryQueryService = TelemetryQueryService = TelemetryQueryService_1 = __decorate([
|
|
185
|
+
(0, common_1.Injectable)(),
|
|
186
|
+
__param(2, (0, common_1.Inject)(ports_1.TELEMETRY_AUDIT_SINK)),
|
|
187
|
+
__metadata("design:paramtypes", [greptime_client_1.GreptimeClient,
|
|
188
|
+
telemetry_settings_service_1.TelemetrySettingsService, Object])
|
|
189
|
+
], TelemetryQueryService);
|
|
190
|
+
function clampRows(requested, ceiling) {
|
|
191
|
+
const wanted = requested !== undefined && Number.isFinite(requested) ? Math.floor(requested) : ceiling;
|
|
192
|
+
return Math.max(1, Math.min(wanted, ceiling));
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=telemetry-query.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-query.service.js","sourceRoot":"","sources":["../../../src/telemetry/query/telemetry-query.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TelemetrySchema, TelemetrySchemaTable } from '../dto/telemetry-query.dto';
|
|
2
|
+
import { GreptimeClient } from '../greptime/greptime.client';
|
|
3
|
+
import { TelemetrySettingsService } from '../telemetry-settings.service';
|
|
4
|
+
export declare const TELEMETRY_SCHEMA_CACHE_MS = 30000;
|
|
5
|
+
/**
|
|
6
|
+
* The telemetry store's tables and columns, cached briefly. Exported by
|
|
7
|
+
* `TelemetryModule`.
|
|
8
|
+
*
|
|
9
|
+
* @stability experimental
|
|
10
|
+
*/
|
|
11
|
+
export declare class TelemetrySchemaService {
|
|
12
|
+
private readonly greptime;
|
|
13
|
+
private readonly settings;
|
|
14
|
+
private cache;
|
|
15
|
+
private inflight;
|
|
16
|
+
constructor(greptime: GreptimeClient, settings: TelemetrySettingsService);
|
|
17
|
+
/** Every table with its columns, both sorted by name / position. */
|
|
18
|
+
getSchema(opts?: {
|
|
19
|
+
fresh?: boolean;
|
|
20
|
+
}): Promise<TelemetrySchema>;
|
|
21
|
+
/** Whether `name` is exactly (case-sensitively) a table of the telemetry database. */
|
|
22
|
+
tableExists(name: string): Promise<boolean>;
|
|
23
|
+
/** One table's schema, or null when there is no such table. */
|
|
24
|
+
describeTable(name: string): Promise<TelemetrySchemaTable | null>;
|
|
25
|
+
/** Drops the cached schema so the next read asks the store. */
|
|
26
|
+
invalidateCache(): void;
|
|
27
|
+
private read;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds the response from `[table_name, table_rows]` and
|
|
31
|
+
* `[table_name, column_name, data_type, semantic_type, ordinal_position]`
|
|
32
|
+
* rows. A column whose table is not in the table list still gets its table
|
|
33
|
+
* (a view, or a table created between the two reads).
|
|
34
|
+
*/
|
|
35
|
+
export declare function groupSchema(tableRows: unknown[][], columnRows: unknown[][]): TelemetrySchema;
|
|
36
|
+
//# sourceMappingURL=telemetry-schema.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-schema.service.d.ts","sourceRoot":"","sources":["../../../src/telemetry/query/telemetry-schema.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAgB,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAuBzE,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD;;;;;GAKG;AACH,qBACa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,KAAK,CAA2D;IACxE,OAAO,CAAC,QAAQ,CAAyC;gBAGtC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,wBAAwB;IAGrD,oEAAoE;IAC9D,SAAS,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAsBzE,sFAAsF;IAChF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD,+DAA+D;IACzD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAMvE,+DAA+D;IAC/D,eAAe,IAAI,IAAI;YAIT,IAAI;CAqBnB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,eAAe,CAoC5F"}
|
|
@@ -0,0 +1,154 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TelemetrySchemaService = exports.TELEMETRY_SCHEMA_CACHE_MS = void 0;
|
|
13
|
+
exports.groupSchema = groupSchema;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const greptime_client_1 = require("../greptime/greptime.client");
|
|
16
|
+
const telemetry_settings_service_1 = require("../telemetry-settings.service");
|
|
17
|
+
const telemetry_availability_1 = require("./telemetry-availability");
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// TelemetrySchemaService — which tables and columns the store has
|
|
20
|
+
// (issue #535, epic #528)
|
|
21
|
+
// =============================================================================
|
|
22
|
+
//
|
|
23
|
+
// Feeds the explorer's schema tree and editor autocompletion, and — through
|
|
24
|
+
// `tableExists` / `describeTable` — lets the assistant (#536) validate an
|
|
25
|
+
// identifier before quoting it into SQL (there are no bind parameters, spike
|
|
26
|
+
// #529).
|
|
27
|
+
//
|
|
28
|
+
// Two `information_schema` reads on the reader connection, filtered to the
|
|
29
|
+
// configured database (from configuration, quoted). Cached for
|
|
30
|
+
// `TELEMETRY_SCHEMA_CACHE_MS`: tables appear on first write and attribute
|
|
31
|
+
// columns as new attributes arrive, so a short cache is fresh enough and saves
|
|
32
|
+
// a round trip per keystroke of autocompletion.
|
|
33
|
+
//
|
|
34
|
+
// Not audited: this reads metadata, not telemetry. The same preconditions as
|
|
35
|
+
// a query apply (503 unconfigured, 409 disabled).
|
|
36
|
+
// =============================================================================
|
|
37
|
+
exports.TELEMETRY_SCHEMA_CACHE_MS = 30_000;
|
|
38
|
+
/**
|
|
39
|
+
* The telemetry store's tables and columns, cached briefly. Exported by
|
|
40
|
+
* `TelemetryModule`.
|
|
41
|
+
*
|
|
42
|
+
* @stability experimental
|
|
43
|
+
*/
|
|
44
|
+
let TelemetrySchemaService = class TelemetrySchemaService {
|
|
45
|
+
greptime;
|
|
46
|
+
settings;
|
|
47
|
+
cache = null;
|
|
48
|
+
inflight = null;
|
|
49
|
+
constructor(greptime, settings) {
|
|
50
|
+
this.greptime = greptime;
|
|
51
|
+
this.settings = settings;
|
|
52
|
+
}
|
|
53
|
+
/** Every table with its columns, both sorted by name / position. */
|
|
54
|
+
async getSchema(opts = {}) {
|
|
55
|
+
const policy = await (0, telemetry_availability_1.requireQueryablePolicy)(this.greptime, this.settings);
|
|
56
|
+
if (!opts.fresh && this.cache && Date.now() - this.cache.readAt < exports.TELEMETRY_SCHEMA_CACHE_MS) {
|
|
57
|
+
return this.cache.value;
|
|
58
|
+
}
|
|
59
|
+
// Concurrent callers share one read.
|
|
60
|
+
if (!this.inflight) {
|
|
61
|
+
this.inflight = this.read(policy.query.timeoutSeconds * 1000)
|
|
62
|
+
.then((value) => {
|
|
63
|
+
this.cache = { value, readAt: Date.now() };
|
|
64
|
+
return value;
|
|
65
|
+
})
|
|
66
|
+
.finally(() => {
|
|
67
|
+
this.inflight = null;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return this.inflight;
|
|
71
|
+
}
|
|
72
|
+
/** Whether `name` is exactly (case-sensitively) a table of the telemetry database. */
|
|
73
|
+
async tableExists(name) {
|
|
74
|
+
return (await this.describeTable(name)) !== null;
|
|
75
|
+
}
|
|
76
|
+
/** One table's schema, or null when there is no such table. */
|
|
77
|
+
async describeTable(name) {
|
|
78
|
+
const schema = await this.getSchema();
|
|
79
|
+
return schema.tables.find((table) => table.name === name) ?? null;
|
|
80
|
+
}
|
|
81
|
+
/** Drops the cached schema so the next read asks the store. */
|
|
82
|
+
invalidateCache() {
|
|
83
|
+
this.cache = null;
|
|
84
|
+
}
|
|
85
|
+
async read(timeoutMs) {
|
|
86
|
+
const database = (0, greptime_client_1.quoteLiteral)(this.greptime.database);
|
|
87
|
+
try {
|
|
88
|
+
const [tables, columns] = await Promise.all([
|
|
89
|
+
this.greptime.queryReader(`SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = ${database}`, { timeoutMs }),
|
|
90
|
+
this.greptime.queryReader('SELECT table_name, column_name, data_type, semantic_type, ordinal_position ' +
|
|
91
|
+
`FROM information_schema.columns WHERE table_schema = ${database}`, { timeoutMs }),
|
|
92
|
+
]);
|
|
93
|
+
return groupSchema(tables.rows, columns.rows);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw (0, telemetry_availability_1.toTelemetryHttpError)(error);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
exports.TelemetrySchemaService = TelemetrySchemaService;
|
|
101
|
+
exports.TelemetrySchemaService = TelemetrySchemaService = __decorate([
|
|
102
|
+
(0, common_1.Injectable)(),
|
|
103
|
+
__metadata("design:paramtypes", [greptime_client_1.GreptimeClient,
|
|
104
|
+
telemetry_settings_service_1.TelemetrySettingsService])
|
|
105
|
+
], TelemetrySchemaService);
|
|
106
|
+
/**
|
|
107
|
+
* Builds the response from `[table_name, table_rows]` and
|
|
108
|
+
* `[table_name, column_name, data_type, semantic_type, ordinal_position]`
|
|
109
|
+
* rows. A column whose table is not in the table list still gets its table
|
|
110
|
+
* (a view, or a table created between the two reads).
|
|
111
|
+
*/
|
|
112
|
+
function groupSchema(tableRows, columnRows) {
|
|
113
|
+
const tables = new Map();
|
|
114
|
+
const ensure = (name) => {
|
|
115
|
+
let table = tables.get(name);
|
|
116
|
+
if (!table) {
|
|
117
|
+
table = { rows: null, columns: [] };
|
|
118
|
+
tables.set(name, table);
|
|
119
|
+
}
|
|
120
|
+
return table;
|
|
121
|
+
};
|
|
122
|
+
for (const [name, rows] of tableRows) {
|
|
123
|
+
ensure(String(name)).rows = toCount(rows);
|
|
124
|
+
}
|
|
125
|
+
for (const [table, column, type, semantic, position] of columnRows) {
|
|
126
|
+
ensure(String(table)).columns.push({
|
|
127
|
+
name: String(column),
|
|
128
|
+
type: type === null || type === undefined ? 'unknown' : String(type),
|
|
129
|
+
semanticType: semantic === null || semantic === undefined || semantic === '' ? null : String(semantic),
|
|
130
|
+
position: toCount(position) ?? Number.MAX_SAFE_INTEGER,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
tables: [...tables.entries()]
|
|
135
|
+
.sort(([a], [b]) => compare(a, b))
|
|
136
|
+
.map(([name, table]) => ({
|
|
137
|
+
name,
|
|
138
|
+
rows: table.rows,
|
|
139
|
+
columns: table.columns
|
|
140
|
+
.sort((a, b) => a.position - b.position || compare(a.name, b.name))
|
|
141
|
+
.map(({ name: column, type, semanticType }) => ({ name: column, type, semanticType })),
|
|
142
|
+
})),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function compare(a, b) {
|
|
146
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
147
|
+
}
|
|
148
|
+
function toCount(value) {
|
|
149
|
+
if (value === null || value === undefined || value === '')
|
|
150
|
+
return null;
|
|
151
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
152
|
+
return Number.isFinite(n) ? n : null;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=telemetry-schema.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-schema.service.js","sourceRoot":"","sources":["../../../src/telemetry/query/telemetry-schema.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { telemetryStackDeployStartedSchema, telemetryStackStatusSchema } from '@marinoscar/platform-contract/telemetry';
|
|
2
|
+
export { TELEMETRY_STACK_AGENT_STATES, telemetryStackDeploySchema, telemetryStackServiceSchema, } from '@marinoscar/platform-contract/telemetry';
|
|
3
|
+
export { telemetryStackDeployStartedSchema, telemetryStackStatusSchema };
|
|
4
|
+
export type { TelemetryStackAgentState, TelemetryStackDeploy, TelemetryStackStatus, } from '@marinoscar/platform-contract/telemetry';
|
|
5
|
+
declare const TelemetryStackStatusDto_base: import("nestjs-zod").ZodDto<import("zod").ZodObject<{
|
|
6
|
+
agent: import("zod").ZodEnum<import("@marinoscar/platform-contract/telemetry").TelemetryEnumEntries<"available" | "unavailable" | "unauthorized" | "not_configured">>;
|
|
7
|
+
agentError: import("zod").ZodNullable<import("zod").ZodString>;
|
|
8
|
+
services: import("zod").ZodArray<import("zod").ZodObject<{
|
|
9
|
+
name: import("zod").ZodString;
|
|
10
|
+
state: import("zod").ZodEnum<import("@marinoscar/platform-contract/telemetry").TelemetryEnumEntries<"running" | "restarting" | "exited" | "created" | "paused" | "dead" | "missing">>;
|
|
11
|
+
health: import("zod").ZodNullable<import("zod").ZodEnum<import("@marinoscar/platform-contract/telemetry").TelemetryEnumEntries<"healthy" | "unhealthy" | "starting">>>;
|
|
12
|
+
}, import("zod/v4/core").$strip>>;
|
|
13
|
+
deploy: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
14
|
+
jobId: import("zod").ZodString;
|
|
15
|
+
status: import("zod").ZodEnum<import("@marinoscar/platform-contract/telemetry").TelemetryEnumEntries<"running" | "pending" | "succeeded" | "failed">>;
|
|
16
|
+
createdAt: import("zod").ZodISODateTime;
|
|
17
|
+
finishedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
18
|
+
error: import("zod").ZodNullable<import("zod").ZodString>;
|
|
19
|
+
output: import("zod").ZodNullable<import("zod").ZodString>;
|
|
20
|
+
}, import("zod/v4/core").$strip>>;
|
|
21
|
+
}, import("zod/v4/core").$strip>, false>;
|
|
22
|
+
export declare class TelemetryStackStatusDto extends TelemetryStackStatusDto_base {
|
|
23
|
+
}
|
|
24
|
+
declare const TelemetryStackDeployStartedDto_base: import("nestjs-zod").ZodDto<import("zod").ZodObject<{
|
|
25
|
+
jobId: import("zod").ZodString;
|
|
26
|
+
}, import("zod/v4/core").$strip>, false>;
|
|
27
|
+
export declare class TelemetryStackDeployStartedDto extends TelemetryStackDeployStartedDto_base {
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=telemetry-stack.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-stack.dto.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/stack/dto/telemetry-stack.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAYxH,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,CAAC;AACzE,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;;;;;;;;;;;;;;;;;;AAEjD,qBAAa,uBAAwB,SAAQ,4BAAwC;CAAG;;;;AACxF,qBAAa,8BAA+B,SAAQ,mCAA+C;CAAG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelemetryStackDeployStartedDto = exports.TelemetryStackStatusDto = exports.telemetryStackStatusSchema = exports.telemetryStackDeployStartedSchema = exports.telemetryStackServiceSchema = exports.telemetryStackDeploySchema = exports.TELEMETRY_STACK_AGENT_STATES = void 0;
|
|
4
|
+
const nestjs_zod_1 = require("nestjs-zod");
|
|
5
|
+
const telemetry_1 = require("@marinoscar/platform-contract/telemetry");
|
|
6
|
+
Object.defineProperty(exports, "telemetryStackDeployStartedSchema", { enumerable: true, get: function () { return telemetry_1.telemetryStackDeployStartedSchema; } });
|
|
7
|
+
Object.defineProperty(exports, "telemetryStackStatusSchema", { enumerable: true, get: function () { return telemetry_1.telemetryStackStatusSchema; } });
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// /api/admin/telemetry/stack — responses (issue #567, epic #528)
|
|
10
|
+
// =============================================================================
|
|
11
|
+
//
|
|
12
|
+
// The schemas live in `@marinoscar/platform-contract/telemetry` (#702); this
|
|
13
|
+
// file wraps them as nestjs-zod DTOs and re-exports the names services import.
|
|
14
|
+
// A diagnosis, never an error: a deployment without a stack-agent is
|
|
15
|
+
// `agent: 'not_configured'` with a 200.
|
|
16
|
+
// =============================================================================
|
|
17
|
+
var telemetry_2 = require("@marinoscar/platform-contract/telemetry");
|
|
18
|
+
Object.defineProperty(exports, "TELEMETRY_STACK_AGENT_STATES", { enumerable: true, get: function () { return telemetry_2.TELEMETRY_STACK_AGENT_STATES; } });
|
|
19
|
+
Object.defineProperty(exports, "telemetryStackDeploySchema", { enumerable: true, get: function () { return telemetry_2.telemetryStackDeploySchema; } });
|
|
20
|
+
Object.defineProperty(exports, "telemetryStackServiceSchema", { enumerable: true, get: function () { return telemetry_2.telemetryStackServiceSchema; } });
|
|
21
|
+
class TelemetryStackStatusDto extends (0, nestjs_zod_1.createZodDto)(telemetry_1.telemetryStackStatusSchema) {
|
|
22
|
+
}
|
|
23
|
+
exports.TelemetryStackStatusDto = TelemetryStackStatusDto;
|
|
24
|
+
class TelemetryStackDeployStartedDto extends (0, nestjs_zod_1.createZodDto)(telemetry_1.telemetryStackDeployStartedSchema) {
|
|
25
|
+
}
|
|
26
|
+
exports.TelemetryStackDeployStartedDto = TelemetryStackDeployStartedDto;
|
|
27
|
+
//# sourceMappingURL=telemetry-stack.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-stack.dto.js","sourceRoot":"","sources":["../../../../src/telemetry/stack/dto/telemetry-stack.dto.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,uEAAwH;AAiB/G,kHAjBA,6CAAiC,OAiBA;AAAE,2GAjBA,sCAA0B,OAiBA;AAftE,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,qEAAqE;AACrE,wCAAwC;AACxC,gFAAgF;AAEhF,qEAIiD;AAH/C,yHAAA,4BAA4B,OAAA;AAC5B,uHAAA,0BAA0B,OAAA;AAC1B,wHAAA,2BAA2B,OAAA;AAS7B,MAAa,uBAAwB,SAAQ,IAAA,yBAAY,EAAC,sCAA0B,CAAC;CAAG;AAAxF,0DAAwF;AACxF,MAAa,8BAA+B,SAAQ,IAAA,yBAAY,EAAC,6CAAiC,CAAC;CAAG;AAAtG,wEAAsG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** Ceiling on a status read. The admin page waits on it. */
|
|
4
|
+
export declare const STACK_AGENT_STATUS_TIMEOUT_MS = 5000;
|
|
5
|
+
/**
|
|
6
|
+
* Ceiling on `POST /v1/telemetry/up`. The agent may pull images, which can
|
|
7
|
+
* take up to ten minutes; one more minute of slack, and still well inside the
|
|
8
|
+
* deploy job's 15-minute `maxRuntimeMs`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const STACK_AGENT_UP_TIMEOUT_MS: number;
|
|
11
|
+
export declare const STACK_SERVICE_STATES: readonly ["running", "restarting", "exited", "created", "paused", "dead", "missing"];
|
|
12
|
+
export declare const STACK_SERVICE_HEALTH: readonly ["healthy", "unhealthy", "starting"];
|
|
13
|
+
export declare const stackServiceSchema: z.ZodObject<{
|
|
14
|
+
name: z.ZodString;
|
|
15
|
+
state: z.ZodEnum<{
|
|
16
|
+
running: "running";
|
|
17
|
+
restarting: "restarting";
|
|
18
|
+
exited: "exited";
|
|
19
|
+
created: "created";
|
|
20
|
+
paused: "paused";
|
|
21
|
+
dead: "dead";
|
|
22
|
+
missing: "missing";
|
|
23
|
+
}>;
|
|
24
|
+
health: z.ZodNullable<z.ZodEnum<{
|
|
25
|
+
healthy: "healthy";
|
|
26
|
+
unhealthy: "unhealthy";
|
|
27
|
+
starting: "starting";
|
|
28
|
+
}>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type StackService = z.infer<typeof stackServiceSchema>;
|
|
31
|
+
/** Why a call did not produce what was asked for. */
|
|
32
|
+
export type StackAgentErrorKind = 'not_configured' | 'unreachable' | 'unauthorized' | 'busy' | 'failed';
|
|
33
|
+
export type StackAgentFailure = {
|
|
34
|
+
ok: false;
|
|
35
|
+
error: StackAgentErrorKind;
|
|
36
|
+
/** Human-readable detail. Never carries the token. */
|
|
37
|
+
message: string;
|
|
38
|
+
/** For `failed`: the agent's exit code, when it reported one. */
|
|
39
|
+
exitCode?: number | null;
|
|
40
|
+
/** For `failed`: the agent's command output, when it reported any. */
|
|
41
|
+
output?: string;
|
|
42
|
+
};
|
|
43
|
+
export type StackAgentStatusResult = {
|
|
44
|
+
ok: true;
|
|
45
|
+
services: StackService[];
|
|
46
|
+
} | StackAgentFailure;
|
|
47
|
+
export type StackAgentUpResult = {
|
|
48
|
+
ok: true;
|
|
49
|
+
exitCode: number;
|
|
50
|
+
output: string;
|
|
51
|
+
} | StackAgentFailure;
|
|
52
|
+
/** The subset of the global `fetch` this client uses; injectable for tests. */
|
|
53
|
+
export type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
|
|
54
|
+
export declare class StackAgentClient {
|
|
55
|
+
private readonly logger;
|
|
56
|
+
private readonly baseUrl;
|
|
57
|
+
private readonly token;
|
|
58
|
+
/** Overridable in tests; the Node 24 global otherwise. */
|
|
59
|
+
protected fetchImpl: FetchLike;
|
|
60
|
+
constructor(config: ConfigService);
|
|
61
|
+
/** Both `STACK_AGENT_URL` and `STACK_AGENT_TOKEN` are set. */
|
|
62
|
+
isConfigured(): boolean;
|
|
63
|
+
/** `GET /v1/telemetry` — the state of each telemetry service. Never throws. */
|
|
64
|
+
telemetryStatus(): Promise<StackAgentStatusResult>;
|
|
65
|
+
/**
|
|
66
|
+
* `POST /v1/telemetry/up` — start (pulling if needed) the telemetry
|
|
67
|
+
* services. May take up to ten minutes. Never throws.
|
|
68
|
+
*/
|
|
69
|
+
telemetryUp(): Promise<StackAgentUpResult>;
|
|
70
|
+
private request;
|
|
71
|
+
/** The URL's origin, for messages (never a path, query or credential). */
|
|
72
|
+
private origin;
|
|
73
|
+
}
|
|
74
|
+
/** A fetch failure in words: a timeout, a DNS/connect error (its `cause`), or the message. */
|
|
75
|
+
export declare function describeFetchError(error: unknown, timeoutMs: number): string;
|
|
76
|
+
//# sourceMappingURL=stack-agent.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-agent.client.d.ts","sourceRoot":"","sources":["../../../src/telemetry/stack/stack-agent.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,4DAA4D;AAC5D,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAKxD,eAAO,MAAM,oBAAoB,sFAAiC,CAAC;AACnE,eAAO,MAAM,oBAAoB,+CAAiC,CAAC;AAEnE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAI7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAW9D,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,mBAAmB,CAAC;IAC3B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,iBAAiB,CAAC;AAEhG,MAAM,MAAM,kBAAkB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAAC;AAEpG,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjF,qBACa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,0DAA0D;IAC1D,SAAS,CAAC,SAAS,EAAE,SAAS,CAAuC;gBAEzD,MAAM,EAAE,aAAa;IAOjC,8DAA8D;IAC9D,YAAY,IAAI,OAAO;IAIvB,+EAA+E;IACzE,eAAe,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAmBxD;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;YA+BlC,OAAO;IA2BrB,0EAA0E;IAC1E,OAAO,CAAC,MAAM;CAOf;AA8BD,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAa5E"}
|