@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,461 @@
|
|
|
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 TelemetryConnectionService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TelemetryConnectionService = exports.TELEMETRY_CONNECTION_REFRESH_MS = exports.DEPLOYMENT_ADMIN_MISSING_MESSAGE = exports.DEPLOYMENT_READER_MISSING_MESSAGE = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const config_1 = require("@nestjs/config");
|
|
19
|
+
const ports_1 = require("../ports");
|
|
20
|
+
const telemetry_connection_schema_1 = require("./telemetry-connection.schema");
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// TelemetryConnectionService — THE resolver of the GreptimeDB connection
|
|
23
|
+
// (issue #558, epic #528)
|
|
24
|
+
// =============================================================================
|
|
25
|
+
//
|
|
26
|
+
// ONE PRECEDENCE RULE, NO PER-FIELD MERGE — THE HOST MODE DECIDES WHO OWNS
|
|
27
|
+
// THE WHOLE CONNECTION (issue #570):
|
|
28
|
+
//
|
|
29
|
+
// 1. a connection is STORED with a CUSTOM host (a literal an administrator
|
|
30
|
+
// typed: GreptimeDB lives somewhere this deployment did not put it)
|
|
31
|
+
// → the row is the connection, wholly: host, port, database, both
|
|
32
|
+
// users, and the two passwords from the credential store. Nothing is
|
|
33
|
+
// borrowed from the environment, field by field or otherwise.
|
|
34
|
+
// 2. a connection is STORED with an AUTOMATIC host (`host: null`) — "the
|
|
35
|
+
// GreptimeDB deployed with this application" (issues #562, #570)
|
|
36
|
+
// → the DEPLOYMENT is the connection, wholly: the deployment host
|
|
37
|
+
// (`GREPTIME_HOST` when non-blank, else `TELEMETRY_DEFAULT_HOST`, the
|
|
38
|
+
// compose service name), `GREPTIME_PG_PORT`, `GREPTIME_DB`, and the
|
|
39
|
+
// `GREPTIME_READER_*` / `GREPTIME_ADMIN_*` logins. The deployment
|
|
40
|
+
// provisioned that GreptimeDB's users, so it is the only party that
|
|
41
|
+
// knows their passwords; an administrator never supplies them. Any
|
|
42
|
+
// port, database, user or credential-store password attached to
|
|
43
|
+
// such a row (rows saved before #570 carry them) is IGNORED here —
|
|
44
|
+
// not deleted: the next save in automatic mode deletes the stored
|
|
45
|
+
// passwords. The source still reads `stored` (a row exists, it has a
|
|
46
|
+
// version, "revert" applies) with `hostMode: 'auto'` and
|
|
47
|
+
// `deploymentManaged: true`.
|
|
48
|
+
// 3. nothing is stored → the DEPLOYMENT DEFAULT, derived from `GREPTIME_*`
|
|
49
|
+
// (the `greptime` block of `config/configuration.ts`), when it names a
|
|
50
|
+
// host. Also automatic and deployment-managed: it is the same GreptimeDB
|
|
51
|
+
// rule 2 resolves to (source `environment`).
|
|
52
|
+
// 4. otherwise none — telemetry is not available.
|
|
53
|
+
//
|
|
54
|
+
// The fingerprint carries the EFFECTIVE host and the version of the password
|
|
55
|
+
// actually used (the credential's `updatedAt` for rule 1, a constant for the
|
|
56
|
+
// environment), so moving between a custom and an automatic connection, or the
|
|
57
|
+
// deployment host moving, rebuilds the pools.
|
|
58
|
+
//
|
|
59
|
+
// WHY THE ENVIRONMENT IS STILL A SOURCE AT ALL. The `GREPTIME_*` variables
|
|
60
|
+
// cannot go away: the telemetry overlay provisions the GreptimeDB container's
|
|
61
|
+
// users and the OTel collector's writer login from them. They describe the
|
|
62
|
+
// GreptimeDB the deployment runs, so they ARE its connection; the admin page
|
|
63
|
+
// only overrides them by pointing at a different (custom) host.
|
|
64
|
+
// A per-field merge was rejected: "host from the form, password from the
|
|
65
|
+
// environment" is a connection nobody configured, and it is impossible to
|
|
66
|
+
// explain on a status page.
|
|
67
|
+
//
|
|
68
|
+
// WHAT IS CACHED, AND WHAT IS NOT
|
|
69
|
+
// -----------------------------------------------------------------------------
|
|
70
|
+
//
|
|
71
|
+
// `GreptimeClient.isConfigured()` and friends are SYNCHRONOUS (the export
|
|
72
|
+
// gate, the explorer's preconditions and the retention job all ask them
|
|
73
|
+
// without awaiting), so this service keeps a SNAPSHOT: the non-secret half of
|
|
74
|
+
// the resolved connection, plus, per login, whether a password is present and
|
|
75
|
+
// a version marker (the credential's `updatedAt` when stored; a constant for
|
|
76
|
+
// the environment). The snapshot is refreshed once at boot (awaited, errors
|
|
77
|
+
// swallowed — boot never fails on it), every `TELEMETRY_CONNECTION_REFRESH_MS`
|
|
78
|
+
// on an unref'd interval, and immediately after an admin save on this
|
|
79
|
+
// instance. So a save reaches every instance within one interval, no restart.
|
|
80
|
+
//
|
|
81
|
+
// ⚠ PASSWORDS ARE NEVER CACHED HERE. `resolveCredentials` reads the password
|
|
82
|
+
// from the credential store at the moment a pool is built and hands it
|
|
83
|
+
// straight to `pg` — the `CredentialsService.getSecret` contract, and the same
|
|
84
|
+
// trade `StorageConfigService` documents. The refresh itself only calls
|
|
85
|
+
// `CredentialsService.describe`, which cannot decrypt anything.
|
|
86
|
+
//
|
|
87
|
+
// A FAILED REFRESH KEEPS THE LAST SNAPSHOT (and logs once per outage), for the
|
|
88
|
+
// reason `TelemetrySettingsService` keeps the gate: flipping to "not
|
|
89
|
+
// configured" on a database blip would drop telemetry exactly when an
|
|
90
|
+
// operator needs it most.
|
|
91
|
+
//
|
|
92
|
+
// ⚠ NEVER LOG A CREDENTIAL. Nothing here logs a password or a connection
|
|
93
|
+
// string; the snapshot does not hold one.
|
|
94
|
+
// =============================================================================
|
|
95
|
+
/**
|
|
96
|
+
* What an administrator is told when the GreptimeDB deployed with this
|
|
97
|
+
* application lacks a login. Administrator language: no file, variable or
|
|
98
|
+
* command names — fixing it is an application update, not a form field.
|
|
99
|
+
*/
|
|
100
|
+
exports.DEPLOYMENT_READER_MISSING_MESSAGE = 'The GreptimeDB deployed with this application has no reader login configured. ' +
|
|
101
|
+
'Update the application to provision it.';
|
|
102
|
+
exports.DEPLOYMENT_ADMIN_MISSING_MESSAGE = 'The GreptimeDB deployed with this application has no admin login configured, so retention ' +
|
|
103
|
+
'cannot be applied. Update the application to provision it.';
|
|
104
|
+
/** How often every instance re-reads the stored connection. */
|
|
105
|
+
exports.TELEMETRY_CONNECTION_REFRESH_MS = 5_000;
|
|
106
|
+
/** Version marker of an environment-supplied password: it cannot change without a restart. */
|
|
107
|
+
const ENVIRONMENT_CREDENTIAL_VERSION = 'environment';
|
|
108
|
+
const DEFAULT_PG_PORT = telemetry_connection_schema_1.TELEMETRY_DEFAULT_PG_PORT;
|
|
109
|
+
const DEFAULT_DATABASE = telemetry_connection_schema_1.TELEMETRY_DEFAULT_DATABASE;
|
|
110
|
+
let TelemetryConnectionService = TelemetryConnectionService_1 = class TelemetryConnectionService {
|
|
111
|
+
settingsStore;
|
|
112
|
+
credentials;
|
|
113
|
+
logger = new common_1.Logger(TelemetryConnectionService_1.name);
|
|
114
|
+
environment;
|
|
115
|
+
/**
|
|
116
|
+
* Seeded from the environment so the sync accessors have an answer before
|
|
117
|
+
* the first refresh (and so a unit test can build a client with no
|
|
118
|
+
* database). `onModuleInit` replaces it with the real resolution.
|
|
119
|
+
*/
|
|
120
|
+
snapshot;
|
|
121
|
+
refreshTimer = null;
|
|
122
|
+
refreshFailing = false;
|
|
123
|
+
lastInvalidRowWarned = false;
|
|
124
|
+
constructor(configService, settingsStore, credentials) {
|
|
125
|
+
this.settingsStore = settingsStore;
|
|
126
|
+
this.credentials = credentials;
|
|
127
|
+
const raw = configService.get('greptime') ?? {};
|
|
128
|
+
this.environment = {
|
|
129
|
+
host: (raw.host ?? '').trim(),
|
|
130
|
+
pgPort: raw.pgPort ?? DEFAULT_PG_PORT,
|
|
131
|
+
database: raw.database || DEFAULT_DATABASE,
|
|
132
|
+
readerUser: raw.readerUser ?? '',
|
|
133
|
+
readerPassword: raw.readerPassword ?? '',
|
|
134
|
+
adminUser: raw.adminUser ?? '',
|
|
135
|
+
adminPassword: raw.adminPassword ?? '',
|
|
136
|
+
available: raw.available ?? false,
|
|
137
|
+
};
|
|
138
|
+
this.snapshot = this.environmentSnapshot();
|
|
139
|
+
}
|
|
140
|
+
/** One awaited refresh (never throws), then the interval. */
|
|
141
|
+
async onModuleInit() {
|
|
142
|
+
await this.refreshSafely();
|
|
143
|
+
this.refreshTimer = setInterval(() => {
|
|
144
|
+
void this.refreshSafely();
|
|
145
|
+
}, exports.TELEMETRY_CONNECTION_REFRESH_MS);
|
|
146
|
+
// Never the reason a process (or a test run) stays alive.
|
|
147
|
+
this.refreshTimer.unref?.();
|
|
148
|
+
}
|
|
149
|
+
onModuleDestroy() {
|
|
150
|
+
if (this.refreshTimer) {
|
|
151
|
+
clearInterval(this.refreshTimer);
|
|
152
|
+
this.refreshTimer = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
// Synchronous accessors, answered from the snapshot
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
/** Where the connection in force came from. */
|
|
159
|
+
get source() {
|
|
160
|
+
return this.snapshot.source;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Where GreptimeDB is in this deployment: `GREPTIME_HOST` when non-blank,
|
|
164
|
+
* else `TELEMETRY_DEFAULT_HOST`. What an automatic (null) host resolves to.
|
|
165
|
+
*/
|
|
166
|
+
get deploymentHost() {
|
|
167
|
+
return (0, telemetry_connection_schema_1.telemetryDeploymentHost)(this.environment.host);
|
|
168
|
+
}
|
|
169
|
+
/** The deployment's own GreptimeDB connection (non-secret), whatever is in force. */
|
|
170
|
+
describeDeployment() {
|
|
171
|
+
const env = this.environment;
|
|
172
|
+
return {
|
|
173
|
+
host: this.deploymentHost,
|
|
174
|
+
pgPort: env.pgPort,
|
|
175
|
+
database: env.database,
|
|
176
|
+
readerUser: env.readerUser,
|
|
177
|
+
adminUser: env.adminUser || null,
|
|
178
|
+
readerConfigured: Boolean(env.readerUser && env.readerPassword),
|
|
179
|
+
adminConfigured: Boolean(env.adminUser && env.adminPassword),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Why the connection in force cannot be used, in administrator language, or
|
|
184
|
+
* null. Only a deployment-managed connection has an answer here: its gaps
|
|
185
|
+
* are the deployment's, which nothing on the admin page can fill. `role`
|
|
186
|
+
* `admin` also reports a missing admin login (retention).
|
|
187
|
+
*/
|
|
188
|
+
configurationProblem(role = 'reader') {
|
|
189
|
+
const { deploymentManaged, reader, admin } = this.snapshot;
|
|
190
|
+
if (!deploymentManaged)
|
|
191
|
+
return null;
|
|
192
|
+
if (!(reader.user && reader.passwordSet))
|
|
193
|
+
return exports.DEPLOYMENT_READER_MISSING_MESSAGE;
|
|
194
|
+
if (role === 'admin' && !(admin && admin.user && admin.passwordSet))
|
|
195
|
+
return exports.DEPLOYMENT_ADMIN_MISSING_MESSAGE;
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
/** The GreptimeDB database telemetry is written to. */
|
|
199
|
+
get database() {
|
|
200
|
+
return this.snapshot.database;
|
|
201
|
+
}
|
|
202
|
+
/** A host, a reader login and its password — i.e. telemetry can be read. */
|
|
203
|
+
isConfigured() {
|
|
204
|
+
const { source, host, reader } = this.snapshot;
|
|
205
|
+
return source !== 'none' && Boolean(host && reader.user && reader.passwordSet);
|
|
206
|
+
}
|
|
207
|
+
/** The admin login (retention, `SHOW CREATE DATABASE`) is usable as well. */
|
|
208
|
+
isAdminConfigured() {
|
|
209
|
+
const { admin } = this.snapshot;
|
|
210
|
+
return this.isConfigured() && Boolean(admin && admin.user && admin.passwordSet);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* An opaque identity of the connection a login would use right now, or
|
|
214
|
+
* null when that login is not configured. `GreptimeClient` keys its pools by
|
|
215
|
+
* it: a different answer means the pool it holds is stale.
|
|
216
|
+
*/
|
|
217
|
+
fingerprint(role) {
|
|
218
|
+
if (role === 'reader' ? !this.isConfigured() : !this.isAdminConfigured()) {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
return fingerprintOf(this.snapshot, role);
|
|
222
|
+
}
|
|
223
|
+
/** A copy of the snapshot. Non-secret. */
|
|
224
|
+
describeSnapshot() {
|
|
225
|
+
return structuredClone(this.snapshot);
|
|
226
|
+
}
|
|
227
|
+
// ---------------------------------------------------------------------------
|
|
228
|
+
// Credentials, at the moment of use
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
/**
|
|
231
|
+
* The full connection for one login, password included, or null when that
|
|
232
|
+
* login is not configured (or its stored password has since gone).
|
|
233
|
+
*
|
|
234
|
+
* ⚠ Holds a plaintext password. Call it when building a pool and let the
|
|
235
|
+
* result go out of scope; never cache it, never log it.
|
|
236
|
+
*/
|
|
237
|
+
async resolveCredentials(role) {
|
|
238
|
+
const snapshot = this.snapshot;
|
|
239
|
+
const fingerprint = this.fingerprint(role);
|
|
240
|
+
const login = role === 'reader' ? snapshot.reader : snapshot.admin;
|
|
241
|
+
if (!fingerprint || !login)
|
|
242
|
+
return null;
|
|
243
|
+
const password = await this.passwordOf(role, snapshot);
|
|
244
|
+
if (!password)
|
|
245
|
+
return null;
|
|
246
|
+
return {
|
|
247
|
+
host: snapshot.host,
|
|
248
|
+
automaticHost: snapshot.hostMode === 'auto',
|
|
249
|
+
port: snapshot.pgPort,
|
|
250
|
+
database: snapshot.database,
|
|
251
|
+
user: login.user,
|
|
252
|
+
password,
|
|
253
|
+
fingerprint,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* The password the connection IN FORCE would use for this login — the
|
|
258
|
+
* deployment's when it is deployment-managed (the environment source, or a
|
|
259
|
+
* stored automatic host), the credential store's for a custom host, none
|
|
260
|
+
* when there is no connection. For the connection test's "blank means the
|
|
261
|
+
* current one".
|
|
262
|
+
*
|
|
263
|
+
* ⚠ Plaintext. Same rules as `resolveCredentials`.
|
|
264
|
+
*/
|
|
265
|
+
async currentPassword(role) {
|
|
266
|
+
return this.passwordOf(role, this.snapshot);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* The deployment's own password for this login (`GREPTIME_*`), or null when
|
|
270
|
+
* it provisions none. What an automatic connection uses — and the only
|
|
271
|
+
* password a connection test of an automatic host may use.
|
|
272
|
+
*
|
|
273
|
+
* ⚠ Plaintext. Same rules as `resolveCredentials`.
|
|
274
|
+
*/
|
|
275
|
+
deploymentPassword(role) {
|
|
276
|
+
const value = role === 'reader' ? this.environment.readerPassword : this.environment.adminPassword;
|
|
277
|
+
return value || null;
|
|
278
|
+
}
|
|
279
|
+
async passwordOf(role, snapshot) {
|
|
280
|
+
if (snapshot.deploymentManaged)
|
|
281
|
+
return this.deploymentPassword(role);
|
|
282
|
+
if (snapshot.source === 'none')
|
|
283
|
+
return null;
|
|
284
|
+
return this.credentials.getSecret(telemetry_connection_schema_1.TELEMETRY_GREPTIME_CREDENTIAL_PURPOSE, role);
|
|
285
|
+
}
|
|
286
|
+
// ---------------------------------------------------------------------------
|
|
287
|
+
// Refresh
|
|
288
|
+
// ---------------------------------------------------------------------------
|
|
289
|
+
/**
|
|
290
|
+
* Re-reads the stored row and the credentials' metadata, replaces the
|
|
291
|
+
* snapshot, and returns the full (non-secret) state. THROWS on a failed
|
|
292
|
+
* read, leaving the snapshot as it was — for a caller that must know (an
|
|
293
|
+
* admin read or write). The background refresh uses `refreshSafely`.
|
|
294
|
+
*/
|
|
295
|
+
async refresh() {
|
|
296
|
+
const [row, reader, admin] = await Promise.all([
|
|
297
|
+
this.settingsStore.readRow(telemetry_connection_schema_1.TELEMETRY_CONNECTION_SETTINGS_KEY),
|
|
298
|
+
this.credentials.describe(telemetry_connection_schema_1.TELEMETRY_GREPTIME_CREDENTIAL_PURPOSE, 'reader'),
|
|
299
|
+
this.credentials.describe(telemetry_connection_schema_1.TELEMETRY_GREPTIME_CREDENTIAL_PURPOSE, 'admin'),
|
|
300
|
+
]);
|
|
301
|
+
const credentials = { reader, admin };
|
|
302
|
+
let stored = null;
|
|
303
|
+
let snapshot;
|
|
304
|
+
if (!row) {
|
|
305
|
+
snapshot = this.environmentSnapshot();
|
|
306
|
+
this.lastInvalidRowWarned = false;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
const parsed = telemetry_connection_schema_1.telemetryConnectionValueSchema.safeParse(row.value);
|
|
310
|
+
if (parsed.success) {
|
|
311
|
+
stored = parsed.data;
|
|
312
|
+
snapshot =
|
|
313
|
+
parsed.data.host === null
|
|
314
|
+
? // Automatic: the deployment, wholly. Stored credentials are ignored (issue #570).
|
|
315
|
+
this.deploymentSnapshot('stored', this.deploymentHost)
|
|
316
|
+
: storedSnapshot(parsed.data, credentials);
|
|
317
|
+
this.lastInvalidRowWarned = false;
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
// A row exists but does not validate (hand-edited). It is still "the
|
|
321
|
+
// stored connection" — silently falling back to the environment would
|
|
322
|
+
// put telemetry on a connection nobody chose — so it resolves as
|
|
323
|
+
// stored-and-unusable until an administrator saves or resets it.
|
|
324
|
+
if (!this.lastInvalidRowWarned) {
|
|
325
|
+
this.lastInvalidRowWarned = true;
|
|
326
|
+
this.logger.warn('The stored telemetry connection does not validate ' +
|
|
327
|
+
`(${parsed.error.issues.map((issue) => issue.path.join('.') || '(root)').join(', ')}); ` +
|
|
328
|
+
'telemetry is unavailable until it is saved again or reset at /admin/settings/telemetry.');
|
|
329
|
+
}
|
|
330
|
+
snapshot = unusableStoredSnapshot();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
const before = this.snapshot;
|
|
334
|
+
this.snapshot = snapshot;
|
|
335
|
+
if (before.source !== snapshot.source) {
|
|
336
|
+
this.logger.log(`Telemetry connection source is now "${snapshot.source}"`);
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
snapshot: structuredClone(snapshot),
|
|
340
|
+
stored,
|
|
341
|
+
row: row ? { version: row.version, updatedAt: row.updatedAt, updatedByUser: row.updatedBy } : null,
|
|
342
|
+
credentials,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/** `refresh`, but never throws: a failure keeps the last snapshot and logs once per outage. */
|
|
346
|
+
async refreshSafely() {
|
|
347
|
+
try {
|
|
348
|
+
await this.refresh();
|
|
349
|
+
if (this.refreshFailing) {
|
|
350
|
+
this.refreshFailing = false;
|
|
351
|
+
this.logger.log('Telemetry connection readable again');
|
|
352
|
+
}
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
if (!this.refreshFailing) {
|
|
357
|
+
this.refreshFailing = true;
|
|
358
|
+
this.logger.warn(`Could not read the telemetry connection; keeping the last known one (source "${this.snapshot.source}"): ` +
|
|
359
|
+
`${error instanceof Error ? error.message : String(error)}`);
|
|
360
|
+
}
|
|
361
|
+
return false;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/** The deployment default, as a snapshot (source `none` when it names no host). */
|
|
365
|
+
environmentSnapshot() {
|
|
366
|
+
const env = this.environment;
|
|
367
|
+
if (!env.host) {
|
|
368
|
+
return {
|
|
369
|
+
source: 'none',
|
|
370
|
+
host: '',
|
|
371
|
+
hostMode: 'auto',
|
|
372
|
+
deploymentManaged: false,
|
|
373
|
+
pgPort: env.pgPort,
|
|
374
|
+
database: env.database,
|
|
375
|
+
reader: { user: '', passwordSet: false, version: null },
|
|
376
|
+
admin: null,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
// `GREPTIME_HOST` IS the deployment host, so this is an automatic host too.
|
|
380
|
+
return this.deploymentSnapshot('environment', env.host);
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* The deployment's GreptimeDB, every field from `GREPTIME_*`: what the
|
|
384
|
+
* environment source and a stored automatic host both resolve to.
|
|
385
|
+
*/
|
|
386
|
+
deploymentSnapshot(source, host) {
|
|
387
|
+
const env = this.environment;
|
|
388
|
+
return {
|
|
389
|
+
source,
|
|
390
|
+
host,
|
|
391
|
+
hostMode: 'auto',
|
|
392
|
+
deploymentManaged: true,
|
|
393
|
+
pgPort: env.pgPort,
|
|
394
|
+
database: env.database,
|
|
395
|
+
reader: {
|
|
396
|
+
user: env.readerUser,
|
|
397
|
+
passwordSet: Boolean(env.readerPassword),
|
|
398
|
+
version: env.readerPassword ? ENVIRONMENT_CREDENTIAL_VERSION : null,
|
|
399
|
+
},
|
|
400
|
+
admin: env.adminUser
|
|
401
|
+
? {
|
|
402
|
+
user: env.adminUser,
|
|
403
|
+
passwordSet: Boolean(env.adminPassword),
|
|
404
|
+
version: env.adminPassword ? ENVIRONMENT_CREDENTIAL_VERSION : null,
|
|
405
|
+
}
|
|
406
|
+
: null,
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
};
|
|
410
|
+
exports.TelemetryConnectionService = TelemetryConnectionService;
|
|
411
|
+
exports.TelemetryConnectionService = TelemetryConnectionService = TelemetryConnectionService_1 = __decorate([
|
|
412
|
+
(0, common_1.Injectable)(),
|
|
413
|
+
__param(1, (0, common_1.Inject)(ports_1.TELEMETRY_SETTINGS_STORE)),
|
|
414
|
+
__param(2, (0, common_1.Inject)(ports_1.TELEMETRY_CREDENTIAL_STORE)),
|
|
415
|
+
__metadata("design:paramtypes", [config_1.ConfigService, Object, Object])
|
|
416
|
+
], TelemetryConnectionService);
|
|
417
|
+
/** A stored CUSTOM connection: the row and the credential store, wholly. */
|
|
418
|
+
function storedSnapshot(value, credentials) {
|
|
419
|
+
const login = (user, info) => ({
|
|
420
|
+
user,
|
|
421
|
+
passwordSet: info !== null,
|
|
422
|
+
version: info ? info.updatedAt.toISOString() : null,
|
|
423
|
+
});
|
|
424
|
+
return {
|
|
425
|
+
source: 'stored',
|
|
426
|
+
host: value.host,
|
|
427
|
+
hostMode: 'custom',
|
|
428
|
+
deploymentManaged: false,
|
|
429
|
+
pgPort: value.pgPort,
|
|
430
|
+
database: value.database,
|
|
431
|
+
reader: login(value.readerUser, credentials.reader),
|
|
432
|
+
admin: value.adminUser ? login(value.adminUser, credentials.admin) : null,
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
function unusableStoredSnapshot() {
|
|
436
|
+
return {
|
|
437
|
+
source: 'stored',
|
|
438
|
+
host: '',
|
|
439
|
+
hostMode: 'auto',
|
|
440
|
+
deploymentManaged: false,
|
|
441
|
+
pgPort: DEFAULT_PG_PORT,
|
|
442
|
+
database: DEFAULT_DATABASE,
|
|
443
|
+
reader: { user: '', passwordSet: false, version: null },
|
|
444
|
+
admin: null,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
function fingerprintOf(snapshot, role) {
|
|
448
|
+
const login = role === 'reader' ? snapshot.reader : snapshot.admin;
|
|
449
|
+
return JSON.stringify([
|
|
450
|
+
snapshot.source,
|
|
451
|
+
snapshot.hostMode,
|
|
452
|
+
// The EFFECTIVE host, so an automatic host whose deployment host changed
|
|
453
|
+
// yields a new fingerprint (and new pools).
|
|
454
|
+
snapshot.host,
|
|
455
|
+
snapshot.pgPort,
|
|
456
|
+
snapshot.database,
|
|
457
|
+
login?.user ?? '',
|
|
458
|
+
login?.version ?? '',
|
|
459
|
+
]);
|
|
460
|
+
}
|
|
461
|
+
//# sourceMappingURL=telemetry-connection.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-connection.service.js","sourceRoot":"","sources":["../../../src/telemetry/connection/telemetry-connection.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Allowed bucket sizes, ascending. A span/buckets quotient is rounded UP to one of these. */
|
|
2
|
+
export declare const BUCKET_SIZES_SECONDS: readonly [10, 30, 60, 300, 600, 900, 1800, 3600, 10800, 21600];
|
|
3
|
+
/** Double-quotes an identifier (doubling `"`). Only ever called with server-side constants or discovered column names. */
|
|
4
|
+
export declare function ident(name: string): string;
|
|
5
|
+
/** Single-quotes a string literal (doubling `'`). Callers validate the value first. */
|
|
6
|
+
export declare function literal(value: string): string;
|
|
7
|
+
/** An ISO timestamp literal from a validated Date. */
|
|
8
|
+
export declare function timestampLiteral(date: Date): string;
|
|
9
|
+
/** `INTERVAL 'n seconds'` for an allowed bucket size. */
|
|
10
|
+
export declare function bucketInterval(bucketSeconds: number): string;
|
|
11
|
+
/** The bucket size for a span: span/buckets rounded UP to an allowed size (the largest when above all). */
|
|
12
|
+
export declare function bucketSecondsFor(spanMs: number, buckets: number): number;
|
|
13
|
+
/** Rows a bucketed series over `[from, to)` can produce, plus alignment slack. */
|
|
14
|
+
export declare function bucketRowLimit(from: Date, to: Date, bucketSeconds: number): number;
|
|
15
|
+
/** `"column" >= '<from>' AND "column" < '<to>'`. */
|
|
16
|
+
export declare function between(column: string, from: Date, to: Date): string;
|
|
17
|
+
/** A literal row cap: a positive safe integer, or a RangeError. */
|
|
18
|
+
export declare function positive(limit: number): number;
|
|
19
|
+
//# sourceMappingURL=sql-literals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-literals.d.ts","sourceRoot":"","sources":["../../../src/telemetry/dashboard/sql-literals.ts"],"names":[],"mappings":"AAoBA,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,gEAAiE,CAAC;AAEnG,0HAA0H;AAC1H,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKnD;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,2GAA2G;AAC3G,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,CAEpE;AAED,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9C"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Literal helpers shared by every server-authored telemetry statement
|
|
4
|
+
// (issues #577, #601)
|
|
5
|
+
// =============================================================================
|
|
6
|
+
//
|
|
7
|
+
// The dashboard templates (`telemetry-dashboard.sql.ts`) and the metric
|
|
8
|
+
// catalog builders (`../metrics/metric-sql.ts`) render statements from:
|
|
9
|
+
//
|
|
10
|
+
// - fixed identifiers, quoted with doubled `"` (`ident`);
|
|
11
|
+
// - values the caller has already validated, single-quoted with doubled `'`
|
|
12
|
+
// (`literal`);
|
|
13
|
+
// - `Date`s the request validation produced, as ISO literals
|
|
14
|
+
// (`timestampLiteral`);
|
|
15
|
+
// - bucket sizes from a closed list (`bucketInterval`);
|
|
16
|
+
// - literal row caps (`positive`).
|
|
17
|
+
//
|
|
18
|
+
// NO BIND PARAMETERS: GreptimeDB's Postgres wire refuses `$1` (spike #529).
|
|
19
|
+
// Pure functions; no Nest, no I/O.
|
|
20
|
+
// =============================================================================
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.BUCKET_SIZES_SECONDS = void 0;
|
|
23
|
+
exports.ident = ident;
|
|
24
|
+
exports.literal = literal;
|
|
25
|
+
exports.timestampLiteral = timestampLiteral;
|
|
26
|
+
exports.bucketInterval = bucketInterval;
|
|
27
|
+
exports.bucketSecondsFor = bucketSecondsFor;
|
|
28
|
+
exports.bucketRowLimit = bucketRowLimit;
|
|
29
|
+
exports.between = between;
|
|
30
|
+
exports.positive = positive;
|
|
31
|
+
/** Allowed bucket sizes, ascending. A span/buckets quotient is rounded UP to one of these. */
|
|
32
|
+
exports.BUCKET_SIZES_SECONDS = [10, 30, 60, 300, 600, 900, 1800, 3600, 10800, 21600];
|
|
33
|
+
/** Double-quotes an identifier (doubling `"`). Only ever called with server-side constants or discovered column names. */
|
|
34
|
+
function ident(name) {
|
|
35
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
36
|
+
}
|
|
37
|
+
/** Single-quotes a string literal (doubling `'`). Callers validate the value first. */
|
|
38
|
+
function literal(value) {
|
|
39
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
40
|
+
}
|
|
41
|
+
/** An ISO timestamp literal from a validated Date. */
|
|
42
|
+
function timestampLiteral(date) {
|
|
43
|
+
if (!(date instanceof Date) || !Number.isFinite(date.getTime())) {
|
|
44
|
+
throw new RangeError('timestampLiteral needs a valid Date');
|
|
45
|
+
}
|
|
46
|
+
return `'${date.toISOString()}'`;
|
|
47
|
+
}
|
|
48
|
+
/** `INTERVAL 'n seconds'` for an allowed bucket size. */
|
|
49
|
+
function bucketInterval(bucketSeconds) {
|
|
50
|
+
if (!exports.BUCKET_SIZES_SECONDS.includes(bucketSeconds)) {
|
|
51
|
+
throw new RangeError(`bucketSeconds must be one of ${exports.BUCKET_SIZES_SECONDS.join(', ')}`);
|
|
52
|
+
}
|
|
53
|
+
return `INTERVAL '${bucketSeconds} seconds'`;
|
|
54
|
+
}
|
|
55
|
+
/** The bucket size for a span: span/buckets rounded UP to an allowed size (the largest when above all). */
|
|
56
|
+
function bucketSecondsFor(spanMs, buckets) {
|
|
57
|
+
const wanted = spanMs / 1000 / buckets;
|
|
58
|
+
return (exports.BUCKET_SIZES_SECONDS.find((size) => size >= wanted) ??
|
|
59
|
+
exports.BUCKET_SIZES_SECONDS[exports.BUCKET_SIZES_SECONDS.length - 1]);
|
|
60
|
+
}
|
|
61
|
+
/** Rows a bucketed series over `[from, to)` can produce, plus alignment slack. */
|
|
62
|
+
function bucketRowLimit(from, to, bucketSeconds) {
|
|
63
|
+
return Math.ceil((to.getTime() - from.getTime()) / 1000 / bucketSeconds) + 2;
|
|
64
|
+
}
|
|
65
|
+
/** `"column" >= '<from>' AND "column" < '<to>'`. */
|
|
66
|
+
function between(column, from, to) {
|
|
67
|
+
return `${ident(column)} >= ${timestampLiteral(from)} AND ${ident(column)} < ${timestampLiteral(to)}`;
|
|
68
|
+
}
|
|
69
|
+
/** A literal row cap: a positive safe integer, or a RangeError. */
|
|
70
|
+
function positive(limit) {
|
|
71
|
+
if (!Number.isSafeInteger(limit) || limit < 1)
|
|
72
|
+
throw new RangeError(`limit must be a positive integer, got ${limit}`);
|
|
73
|
+
return limit;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=sql-literals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-literals.js","sourceRoot":"","sources":["../../../src/telemetry/dashboard/sql-literals.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 `TelemetryDashboardController` 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 createTelemetryDashboardController(options: ResolvedTelemetryModuleOptions): Type<unknown>;
|
|
14
|
+
//# sourceMappingURL=telemetry-dashboard.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-dashboard.controller.d.ts","sourceRoot":"","sources":["../../../src/telemetry/dashboard/telemetry-dashboard.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,IAAI,EAAE,MAAM,gBAAgB,CAAC;AA0BtE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAqD3E;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CA4JzG"}
|