@superblocksteam/telemetry 2.0.0-SNAPSHOT.329be19cb7ca892b
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/LICENSE.txt +87 -0
- package/README.md +298 -0
- package/dist/browser/console-logging.d.ts +18 -0
- package/dist/browser/console-logging.d.ts.map +1 -0
- package/dist/browser/console-logging.js +32 -0
- package/dist/browser/console-logging.js.map +1 -0
- package/dist/browser/early-console-buffer.d.ts +49 -0
- package/dist/browser/early-console-buffer.d.ts.map +1 -0
- package/dist/browser/early-console-buffer.js +182 -0
- package/dist/browser/early-console-buffer.js.map +1 -0
- package/dist/browser/index.d.ts +17 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +50 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/init.d.ts +101 -0
- package/dist/browser/init.d.ts.map +1 -0
- package/dist/browser/init.js +329 -0
- package/dist/browser/init.js.map +1 -0
- package/dist/browser/instrumentations.d.ts +67 -0
- package/dist/browser/instrumentations.d.ts.map +1 -0
- package/dist/browser/instrumentations.js +83 -0
- package/dist/browser/instrumentations.js.map +1 -0
- package/dist/browser/logs.d.ts +55 -0
- package/dist/browser/logs.d.ts.map +1 -0
- package/dist/browser/logs.js +86 -0
- package/dist/browser/logs.js.map +1 -0
- package/dist/browser/metrics.d.ts +29 -0
- package/dist/browser/metrics.d.ts.map +1 -0
- package/dist/browser/metrics.js +49 -0
- package/dist/browser/metrics.js.map +1 -0
- package/dist/browser/resilient-exporter.d.ts +43 -0
- package/dist/browser/resilient-exporter.d.ts.map +1 -0
- package/dist/browser/resilient-exporter.js +88 -0
- package/dist/browser/resilient-exporter.js.map +1 -0
- package/dist/browser/sanitizer.d.ts +35 -0
- package/dist/browser/sanitizer.d.ts.map +1 -0
- package/dist/browser/sanitizer.js +211 -0
- package/dist/browser/sanitizer.js.map +1 -0
- package/dist/browser/traced-socket.d.ts +102 -0
- package/dist/browser/traced-socket.d.ts.map +1 -0
- package/dist/browser/traced-socket.js +203 -0
- package/dist/browser/traced-socket.js.map +1 -0
- package/dist/common/contracts/tier2-traces.d.ts +116 -0
- package/dist/common/contracts/tier2-traces.d.ts.map +1 -0
- package/dist/common/contracts/tier2-traces.js +736 -0
- package/dist/common/contracts/tier2-traces.js.map +1 -0
- package/dist/common/deployment-type.d.ts +18 -0
- package/dist/common/deployment-type.d.ts.map +1 -0
- package/dist/common/deployment-type.js +30 -0
- package/dist/common/deployment-type.js.map +1 -0
- package/dist/common/guardrails.d.ts +116 -0
- package/dist/common/guardrails.d.ts.map +1 -0
- package/dist/common/guardrails.js +189 -0
- package/dist/common/guardrails.js.map +1 -0
- package/dist/common/index.d.ts +18 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +34 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/log-sanitizer.d.ts +170 -0
- package/dist/common/log-sanitizer.d.ts.map +1 -0
- package/dist/common/log-sanitizer.js +690 -0
- package/dist/common/log-sanitizer.js.map +1 -0
- package/dist/common/normalize-metric-path.d.ts +2 -0
- package/dist/common/normalize-metric-path.d.ts.map +1 -0
- package/dist/common/normalize-metric-path.js +22 -0
- package/dist/common/normalize-metric-path.js.map +1 -0
- package/dist/common/policy-evaluator.d.ts +103 -0
- package/dist/common/policy-evaluator.d.ts.map +1 -0
- package/dist/common/policy-evaluator.js +200 -0
- package/dist/common/policy-evaluator.js.map +1 -0
- package/dist/common/resource.d.ts +79 -0
- package/dist/common/resource.d.ts.map +1 -0
- package/dist/common/resource.js +128 -0
- package/dist/common/resource.js.map +1 -0
- package/dist/common/tier-hints.d.ts +182 -0
- package/dist/common/tier-hints.d.ts.map +1 -0
- package/dist/common/tier-hints.js +209 -0
- package/dist/common/tier-hints.js.map +1 -0
- package/dist/common/trace-sanitizer.d.ts +82 -0
- package/dist/common/trace-sanitizer.d.ts.map +1 -0
- package/dist/common/trace-sanitizer.js +234 -0
- package/dist/common/trace-sanitizer.js.map +1 -0
- package/dist/common/traced-socket-types.d.ts +43 -0
- package/dist/common/traced-socket-types.d.ts.map +1 -0
- package/dist/common/traced-socket-types.js +17 -0
- package/dist/common/traced-socket-types.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/forbidden-attributes.d.ts +149 -0
- package/dist/lint/forbidden-attributes.d.ts.map +1 -0
- package/dist/lint/forbidden-attributes.js +215 -0
- package/dist/lint/forbidden-attributes.js.map +1 -0
- package/dist/lint/index.d.ts +9 -0
- package/dist/lint/index.d.ts.map +1 -0
- package/dist/lint/index.js +16 -0
- package/dist/lint/index.js.map +1 -0
- package/dist/llmobs/index.d.ts +22 -0
- package/dist/llmobs/index.d.ts.map +1 -0
- package/dist/llmobs/index.js +29 -0
- package/dist/llmobs/index.js.map +1 -0
- package/dist/llmobs/tier1-exporter.d.ts +146 -0
- package/dist/llmobs/tier1-exporter.d.ts.map +1 -0
- package/dist/llmobs/tier1-exporter.js +199 -0
- package/dist/llmobs/tier1-exporter.js.map +1 -0
- package/dist/llmobs/tier2-summarizer.d.ts +268 -0
- package/dist/llmobs/tier2-summarizer.d.ts.map +1 -0
- package/dist/llmobs/tier2-summarizer.js +656 -0
- package/dist/llmobs/tier2-summarizer.js.map +1 -0
- package/dist/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist/node/dynamic-attribute-processor.js +79 -0
- package/dist/node/dynamic-attribute-processor.js.map +1 -0
- package/dist/node/exporters/resilient-exporter.d.ts +91 -0
- package/dist/node/exporters/resilient-exporter.d.ts.map +1 -0
- package/dist/node/exporters/resilient-exporter.js +136 -0
- package/dist/node/exporters/resilient-exporter.js.map +1 -0
- package/dist/node/index.d.ts +13 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +32 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/init.d.ts +97 -0
- package/dist/node/init.d.ts.map +1 -0
- package/dist/node/init.js +365 -0
- package/dist/node/init.js.map +1 -0
- package/dist/node/local-obs-mode.d.ts +17 -0
- package/dist/node/local-obs-mode.d.ts.map +1 -0
- package/dist/node/local-obs-mode.js +22 -0
- package/dist/node/local-obs-mode.js.map +1 -0
- package/dist/node/log-processor.d.ts +132 -0
- package/dist/node/log-processor.d.ts.map +1 -0
- package/dist/node/log-processor.js +397 -0
- package/dist/node/log-processor.js.map +1 -0
- package/dist/node/metrics-client.d.ts +88 -0
- package/dist/node/metrics-client.d.ts.map +1 -0
- package/dist/node/metrics-client.js +209 -0
- package/dist/node/metrics-client.js.map +1 -0
- package/dist/node/safe-logger.d.ts +55 -0
- package/dist/node/safe-logger.d.ts.map +1 -0
- package/dist/node/safe-logger.js +158 -0
- package/dist/node/safe-logger.js.map +1 -0
- package/dist/node/sanitizing-processor.d.ts +67 -0
- package/dist/node/sanitizing-processor.d.ts.map +1 -0
- package/dist/node/sanitizing-processor.js +167 -0
- package/dist/node/sanitizing-processor.js.map +1 -0
- package/dist/node/service-tracers.d.ts +52 -0
- package/dist/node/service-tracers.d.ts.map +1 -0
- package/dist/node/service-tracers.js +81 -0
- package/dist/node/service-tracers.js.map +1 -0
- package/dist/node/traced-socket.d.ts +120 -0
- package/dist/node/traced-socket.d.ts.map +1 -0
- package/dist/node/traced-socket.js +338 -0
- package/dist/node/traced-socket.js.map +1 -0
- package/dist/npm-registry/emitter.d.ts +310 -0
- package/dist/npm-registry/emitter.d.ts.map +1 -0
- package/dist/npm-registry/emitter.js +537 -0
- package/dist/npm-registry/emitter.js.map +1 -0
- package/dist/npm-registry/index.d.ts +12 -0
- package/dist/npm-registry/index.d.ts.map +1 -0
- package/dist/npm-registry/index.js +28 -0
- package/dist/npm-registry/index.js.map +1 -0
- package/dist/npm-registry/sanitize.d.ts +174 -0
- package/dist/npm-registry/sanitize.d.ts.map +1 -0
- package/dist/npm-registry/sanitize.js +342 -0
- package/dist/npm-registry/sanitize.js.map +1 -0
- package/dist/npm-registry/spans.d.ts +61 -0
- package/dist/npm-registry/spans.d.ts.map +1 -0
- package/dist/npm-registry/spans.js +91 -0
- package/dist/npm-registry/spans.js.map +1 -0
- package/dist/testing/in-memory-exporter.d.ts +179 -0
- package/dist/testing/in-memory-exporter.d.ts.map +1 -0
- package/dist/testing/in-memory-exporter.js +256 -0
- package/dist/testing/in-memory-exporter.js.map +1 -0
- package/dist/testing/index.d.ts +9 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +21 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/metrics-capture.d.ts +29 -0
- package/dist/testing/metrics-capture.d.ts.map +1 -0
- package/dist/testing/metrics-capture.js +74 -0
- package/dist/testing/metrics-capture.js.map +1 -0
- package/dist/testing/test-init.d.ts +80 -0
- package/dist/testing/test-init.d.ts.map +1 -0
- package/dist/testing/test-init.js +144 -0
- package/dist/testing/test-init.js.map +1 -0
- package/dist/types/index.d.ts +84 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/policy.d.ts +92 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +125 -0
- package/dist/types/policy.js.map +1 -0
- package/dist-esm/browser/console-logging.d.ts +18 -0
- package/dist-esm/browser/console-logging.d.ts.map +1 -0
- package/dist-esm/browser/console-logging.js +27 -0
- package/dist-esm/browser/console-logging.js.map +1 -0
- package/dist-esm/browser/early-console-buffer.d.ts +49 -0
- package/dist-esm/browser/early-console-buffer.d.ts.map +1 -0
- package/dist-esm/browser/early-console-buffer.js +180 -0
- package/dist-esm/browser/early-console-buffer.js.map +1 -0
- package/dist-esm/browser/index.d.ts +17 -0
- package/dist-esm/browser/index.d.ts.map +1 -0
- package/dist-esm/browser/index.js +22 -0
- package/dist-esm/browser/index.js.map +1 -0
- package/dist-esm/browser/init.d.ts +101 -0
- package/dist-esm/browser/init.d.ts.map +1 -0
- package/dist-esm/browser/init.js +319 -0
- package/dist-esm/browser/init.js.map +1 -0
- package/dist-esm/browser/instrumentations.d.ts +67 -0
- package/dist-esm/browser/instrumentations.d.ts.map +1 -0
- package/dist-esm/browser/instrumentations.js +79 -0
- package/dist-esm/browser/instrumentations.js.map +1 -0
- package/dist-esm/browser/logs.d.ts +55 -0
- package/dist-esm/browser/logs.d.ts.map +1 -0
- package/dist-esm/browser/logs.js +79 -0
- package/dist-esm/browser/logs.js.map +1 -0
- package/dist-esm/browser/metrics.d.ts +29 -0
- package/dist-esm/browser/metrics.d.ts.map +1 -0
- package/dist-esm/browser/metrics.js +46 -0
- package/dist-esm/browser/metrics.js.map +1 -0
- package/dist-esm/browser/resilient-exporter.d.ts +43 -0
- package/dist-esm/browser/resilient-exporter.d.ts.map +1 -0
- package/dist-esm/browser/resilient-exporter.js +84 -0
- package/dist-esm/browser/resilient-exporter.js.map +1 -0
- package/dist-esm/browser/sanitizer.d.ts +35 -0
- package/dist-esm/browser/sanitizer.d.ts.map +1 -0
- package/dist-esm/browser/sanitizer.js +207 -0
- package/dist-esm/browser/sanitizer.js.map +1 -0
- package/dist-esm/browser/traced-socket.d.ts +102 -0
- package/dist-esm/browser/traced-socket.d.ts.map +1 -0
- package/dist-esm/browser/traced-socket.js +199 -0
- package/dist-esm/browser/traced-socket.js.map +1 -0
- package/dist-esm/common/contracts/tier2-traces.d.ts +116 -0
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -0
- package/dist-esm/common/contracts/tier2-traces.js +725 -0
- package/dist-esm/common/contracts/tier2-traces.js.map +1 -0
- package/dist-esm/common/deployment-type.d.ts +18 -0
- package/dist-esm/common/deployment-type.d.ts.map +1 -0
- package/dist-esm/common/deployment-type.js +27 -0
- package/dist-esm/common/deployment-type.js.map +1 -0
- package/dist-esm/common/guardrails.d.ts +116 -0
- package/dist-esm/common/guardrails.d.ts.map +1 -0
- package/dist-esm/common/guardrails.js +179 -0
- package/dist-esm/common/guardrails.js.map +1 -0
- package/dist-esm/common/index.d.ts +18 -0
- package/dist-esm/common/index.d.ts.map +1 -0
- package/dist-esm/common/index.js +18 -0
- package/dist-esm/common/index.js.map +1 -0
- package/dist-esm/common/log-sanitizer.d.ts +170 -0
- package/dist-esm/common/log-sanitizer.d.ts.map +1 -0
- package/dist-esm/common/log-sanitizer.js +672 -0
- package/dist-esm/common/log-sanitizer.js.map +1 -0
- package/dist-esm/common/normalize-metric-path.d.ts +2 -0
- package/dist-esm/common/normalize-metric-path.d.ts.map +1 -0
- package/dist-esm/common/normalize-metric-path.js +19 -0
- package/dist-esm/common/normalize-metric-path.js.map +1 -0
- package/dist-esm/common/policy-evaluator.d.ts +103 -0
- package/dist-esm/common/policy-evaluator.d.ts.map +1 -0
- package/dist-esm/common/policy-evaluator.js +196 -0
- package/dist-esm/common/policy-evaluator.js.map +1 -0
- package/dist-esm/common/resource.d.ts +79 -0
- package/dist-esm/common/resource.d.ts.map +1 -0
- package/dist-esm/common/resource.js +121 -0
- package/dist-esm/common/resource.js.map +1 -0
- package/dist-esm/common/tier-hints.d.ts +182 -0
- package/dist-esm/common/tier-hints.d.ts.map +1 -0
- package/dist-esm/common/tier-hints.js +199 -0
- package/dist-esm/common/tier-hints.js.map +1 -0
- package/dist-esm/common/trace-sanitizer.d.ts +82 -0
- package/dist-esm/common/trace-sanitizer.d.ts.map +1 -0
- package/dist-esm/common/trace-sanitizer.js +230 -0
- package/dist-esm/common/trace-sanitizer.js.map +1 -0
- package/dist-esm/common/traced-socket-types.d.ts +43 -0
- package/dist-esm/common/traced-socket-types.d.ts.map +1 -0
- package/dist-esm/common/traced-socket-types.js +16 -0
- package/dist-esm/common/traced-socket-types.js.map +1 -0
- package/dist-esm/index.d.ts +45 -0
- package/dist-esm/index.d.ts.map +1 -0
- package/dist-esm/index.js +56 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/lint/forbidden-attributes.d.ts +149 -0
- package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -0
- package/dist-esm/lint/forbidden-attributes.js +210 -0
- package/dist-esm/lint/forbidden-attributes.js.map +1 -0
- package/dist-esm/lint/index.d.ts +9 -0
- package/dist-esm/lint/index.d.ts.map +1 -0
- package/dist-esm/lint/index.js +9 -0
- package/dist-esm/lint/index.js.map +1 -0
- package/dist-esm/llmobs/index.d.ts +22 -0
- package/dist-esm/llmobs/index.d.ts.map +1 -0
- package/dist-esm/llmobs/index.js +22 -0
- package/dist-esm/llmobs/index.js.map +1 -0
- package/dist-esm/llmobs/tier1-exporter.d.ts +146 -0
- package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -0
- package/dist-esm/llmobs/tier1-exporter.js +193 -0
- package/dist-esm/llmobs/tier1-exporter.js.map +1 -0
- package/dist-esm/llmobs/tier2-summarizer.d.ts +268 -0
- package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -0
- package/dist-esm/llmobs/tier2-summarizer.js +652 -0
- package/dist-esm/llmobs/tier2-summarizer.js.map +1 -0
- package/dist-esm/node/dynamic-attribute-processor.d.ts +43 -0
- package/dist-esm/node/dynamic-attribute-processor.d.ts.map +1 -0
- package/dist-esm/node/dynamic-attribute-processor.js +74 -0
- package/dist-esm/node/dynamic-attribute-processor.js.map +1 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts +91 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -0
- package/dist-esm/node/exporters/resilient-exporter.js +132 -0
- package/dist-esm/node/exporters/resilient-exporter.js.map +1 -0
- package/dist-esm/node/index.d.ts +13 -0
- package/dist-esm/node/index.d.ts.map +1 -0
- package/dist-esm/node/index.js +13 -0
- package/dist-esm/node/index.js.map +1 -0
- package/dist-esm/node/init.d.ts +97 -0
- package/dist-esm/node/init.d.ts.map +1 -0
- package/dist-esm/node/init.js +359 -0
- package/dist-esm/node/init.js.map +1 -0
- package/dist-esm/node/local-obs-mode.d.ts +17 -0
- package/dist-esm/node/local-obs-mode.d.ts.map +1 -0
- package/dist-esm/node/local-obs-mode.js +19 -0
- package/dist-esm/node/local-obs-mode.js.map +1 -0
- package/dist-esm/node/log-processor.d.ts +132 -0
- package/dist-esm/node/log-processor.d.ts.map +1 -0
- package/dist-esm/node/log-processor.js +389 -0
- package/dist-esm/node/log-processor.js.map +1 -0
- package/dist-esm/node/metrics-client.d.ts +88 -0
- package/dist-esm/node/metrics-client.d.ts.map +1 -0
- package/dist-esm/node/metrics-client.js +205 -0
- package/dist-esm/node/metrics-client.js.map +1 -0
- package/dist-esm/node/safe-logger.d.ts +55 -0
- package/dist-esm/node/safe-logger.d.ts.map +1 -0
- package/dist-esm/node/safe-logger.js +154 -0
- package/dist-esm/node/safe-logger.js.map +1 -0
- package/dist-esm/node/sanitizing-processor.d.ts +67 -0
- package/dist-esm/node/sanitizing-processor.d.ts.map +1 -0
- package/dist-esm/node/sanitizing-processor.js +163 -0
- package/dist-esm/node/sanitizing-processor.js.map +1 -0
- package/dist-esm/node/service-tracers.d.ts +52 -0
- package/dist-esm/node/service-tracers.d.ts.map +1 -0
- package/dist-esm/node/service-tracers.js +78 -0
- package/dist-esm/node/service-tracers.js.map +1 -0
- package/dist-esm/node/traced-socket.d.ts +120 -0
- package/dist-esm/node/traced-socket.d.ts.map +1 -0
- package/dist-esm/node/traced-socket.js +334 -0
- package/dist-esm/node/traced-socket.js.map +1 -0
- package/dist-esm/npm-registry/emitter.d.ts +310 -0
- package/dist-esm/npm-registry/emitter.d.ts.map +1 -0
- package/dist-esm/npm-registry/emitter.js +525 -0
- package/dist-esm/npm-registry/emitter.js.map +1 -0
- package/dist-esm/npm-registry/index.d.ts +12 -0
- package/dist-esm/npm-registry/index.d.ts.map +1 -0
- package/dist-esm/npm-registry/index.js +12 -0
- package/dist-esm/npm-registry/index.js.map +1 -0
- package/dist-esm/npm-registry/sanitize.d.ts +174 -0
- package/dist-esm/npm-registry/sanitize.d.ts.map +1 -0
- package/dist-esm/npm-registry/sanitize.js +331 -0
- package/dist-esm/npm-registry/sanitize.js.map +1 -0
- package/dist-esm/npm-registry/spans.d.ts +61 -0
- package/dist-esm/npm-registry/spans.d.ts.map +1 -0
- package/dist-esm/npm-registry/spans.js +86 -0
- package/dist-esm/npm-registry/spans.js.map +1 -0
- package/dist-esm/package.json +1 -0
- package/dist-esm/testing/in-memory-exporter.d.ts +179 -0
- package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -0
- package/dist-esm/testing/in-memory-exporter.js +250 -0
- package/dist-esm/testing/in-memory-exporter.js.map +1 -0
- package/dist-esm/testing/index.d.ts +9 -0
- package/dist-esm/testing/index.d.ts.map +1 -0
- package/dist-esm/testing/index.js +9 -0
- package/dist-esm/testing/index.js.map +1 -0
- package/dist-esm/testing/metrics-capture.d.ts +29 -0
- package/dist-esm/testing/metrics-capture.d.ts.map +1 -0
- package/dist-esm/testing/metrics-capture.js +71 -0
- package/dist-esm/testing/metrics-capture.js.map +1 -0
- package/dist-esm/testing/test-init.d.ts +80 -0
- package/dist-esm/testing/test-init.d.ts.map +1 -0
- package/dist-esm/testing/test-init.js +137 -0
- package/dist-esm/testing/test-init.js.map +1 -0
- package/dist-esm/types/index.d.ts +84 -0
- package/dist-esm/types/index.d.ts.map +1 -0
- package/dist-esm/types/index.js +7 -0
- package/dist-esm/types/index.js.map +1 -0
- package/dist-esm/types/policy.d.ts +92 -0
- package/dist-esm/types/policy.d.ts.map +1 -0
- package/dist-esm/types/policy.js +122 -0
- package/dist-esm/types/policy.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier2-traces.js","sourceRoot":"","sources":["../../../src/common/contracts/tier2-traces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment Type Parsing
|
|
3
|
+
*
|
|
4
|
+
* Shared utility for validating and parsing deployment type values.
|
|
5
|
+
* Used by both the server and CLI telemetry initialization.
|
|
6
|
+
*/
|
|
7
|
+
import { DeploymentTypeEnum } from "@superblocksteam/shared";
|
|
8
|
+
/**
|
|
9
|
+
* Parse and validate a deployment type string.
|
|
10
|
+
*
|
|
11
|
+
* Returns CLOUD if not specified. Throws if an invalid value is provided.
|
|
12
|
+
*
|
|
13
|
+
* @param value - Raw deployment type string (typically from env var)
|
|
14
|
+
* @returns Valid DeploymentTypeEnum value
|
|
15
|
+
* @throws Error if value is not a valid DeploymentTypeEnum
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseDeploymentType(value: string | undefined): DeploymentTypeEnum;
|
|
18
|
+
//# sourceMappingURL=deployment-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-type.d.ts","sourceRoot":"","sources":["../../src/common/deployment-type.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,kBAAkB,CAapB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deployment Type Parsing
|
|
4
|
+
*
|
|
5
|
+
* Shared utility for validating and parsing deployment type values.
|
|
6
|
+
* Used by both the server and CLI telemetry initialization.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.parseDeploymentType = parseDeploymentType;
|
|
10
|
+
const shared_1 = require("@superblocksteam/shared");
|
|
11
|
+
/**
|
|
12
|
+
* Parse and validate a deployment type string.
|
|
13
|
+
*
|
|
14
|
+
* Returns CLOUD if not specified. Throws if an invalid value is provided.
|
|
15
|
+
*
|
|
16
|
+
* @param value - Raw deployment type string (typically from env var)
|
|
17
|
+
* @returns Valid DeploymentTypeEnum value
|
|
18
|
+
* @throws Error if value is not a valid DeploymentTypeEnum
|
|
19
|
+
*/
|
|
20
|
+
function parseDeploymentType(value) {
|
|
21
|
+
if (!value || value === "") {
|
|
22
|
+
return shared_1.DeploymentTypeEnum.CLOUD;
|
|
23
|
+
}
|
|
24
|
+
if (!Object.values(shared_1.DeploymentTypeEnum).includes(value)) {
|
|
25
|
+
throw new Error(`Invalid SUPERBLOCKS_DEPLOYMENT_TYPE: "${value}". ` +
|
|
26
|
+
`Valid values are: ${Object.values(shared_1.DeploymentTypeEnum).join(", ")}.`);
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=deployment-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-type.js","sourceRoot":"","sources":["../../src/common/deployment-type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAaH,kDAeC;AA1BD,oDAA6D;AAE7D;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CACjC,KAAyB;IAEzB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC3B,OAAO,2BAAkB,CAAC,KAAK,CAAC;IAClC,CAAC;IACD,IACE,CAAC,MAAM,CAAC,MAAM,CAAC,2BAAkB,CAAC,CAAC,QAAQ,CAAC,KAA2B,CAAC,EACxE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,KAAK;YACjD,qBAAqB,MAAM,CAAC,MAAM,CAAC,2BAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,KAA2B,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry Guardrails
|
|
3
|
+
*
|
|
4
|
+
* Lint-time guardrails to detect forbidden or high-cardinality attributes.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: In the tiered telemetry architecture, the OTEL Collector handles
|
|
7
|
+
* runtime filtering and sanitization. These guardrails are for:
|
|
8
|
+
* - ESLint rules (static analysis)
|
|
9
|
+
* - Development warnings (not enforcement)
|
|
10
|
+
* - CI validation
|
|
11
|
+
*
|
|
12
|
+
* See obs/otel-collector/config-tiered.yaml for runtime enforcement.
|
|
13
|
+
*/
|
|
14
|
+
import type { Attributes } from "@opentelemetry/api";
|
|
15
|
+
/**
|
|
16
|
+
* Guardrail violation types.
|
|
17
|
+
*/
|
|
18
|
+
export declare enum ViolationType {
|
|
19
|
+
/** Attribute is forbidden in Tier 2 */
|
|
20
|
+
FORBIDDEN_ATTRIBUTE = "forbidden_attribute",
|
|
21
|
+
/** Attribute should be a resource attribute, not span attribute */
|
|
22
|
+
RESOURCE_ONLY = "resource_only",
|
|
23
|
+
/** Value contains forbidden pattern (JWT, API key, etc.) */
|
|
24
|
+
FORBIDDEN_VALUE = "forbidden_value",
|
|
25
|
+
/** Attribute value has too high cardinality */
|
|
26
|
+
HIGH_CARDINALITY = "high_cardinality"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Guardrail violation record.
|
|
30
|
+
*/
|
|
31
|
+
export interface GuardrailViolation {
|
|
32
|
+
/** Type of violation */
|
|
33
|
+
type: ViolationType;
|
|
34
|
+
/** Attribute key that violated */
|
|
35
|
+
attributeKey: string;
|
|
36
|
+
/** Human-readable message */
|
|
37
|
+
message: string;
|
|
38
|
+
/** Severity level */
|
|
39
|
+
severity: "error" | "warning";
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Mode for guardrail reporting.
|
|
43
|
+
*
|
|
44
|
+
* NOTE: Runtime filtering is handled by the OTEL Collector.
|
|
45
|
+
* These modes are for lint-time/development feedback only.
|
|
46
|
+
*/
|
|
47
|
+
export declare enum GuardrailMode {
|
|
48
|
+
/** Log violations as warnings (development) */
|
|
49
|
+
WARN = "warn",
|
|
50
|
+
/** Throw on violations (CI/strict mode) */
|
|
51
|
+
STRICT = "strict"
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Options for guardrail validation.
|
|
55
|
+
*/
|
|
56
|
+
export interface GuardrailOptions {
|
|
57
|
+
/** Reporting mode */
|
|
58
|
+
mode: GuardrailMode;
|
|
59
|
+
/** Whether to check for high-cardinality values */
|
|
60
|
+
checkCardinality?: boolean;
|
|
61
|
+
/** Maximum allowed cardinality for string values */
|
|
62
|
+
maxCardinalityLength?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Validate span attributes against Tier 2 guardrails.
|
|
66
|
+
*
|
|
67
|
+
* This is for lint-time validation. Runtime filtering is handled by Collector.
|
|
68
|
+
*
|
|
69
|
+
* @param attributes - Attributes to validate
|
|
70
|
+
* @param options - Guardrail options
|
|
71
|
+
* @returns Array of violations found
|
|
72
|
+
*/
|
|
73
|
+
export declare function validateSpanAttributes(attributes: Attributes, options?: Partial<GuardrailOptions>): GuardrailViolation[];
|
|
74
|
+
/**
|
|
75
|
+
* Validate metric labels against Tier 2 guardrails.
|
|
76
|
+
*
|
|
77
|
+
* @param labels - Metric labels to validate
|
|
78
|
+
* @param options - Guardrail options
|
|
79
|
+
* @returns Array of violations found
|
|
80
|
+
*/
|
|
81
|
+
export declare function validateMetricLabels(labels: Record<string, string | number | boolean>, options?: Partial<GuardrailOptions>): GuardrailViolation[];
|
|
82
|
+
/**
|
|
83
|
+
* Report guardrail violations.
|
|
84
|
+
*
|
|
85
|
+
* NOTE: This is for development feedback only. Runtime filtering
|
|
86
|
+
* is handled by the OTEL Collector.
|
|
87
|
+
*
|
|
88
|
+
* @param attributes - Attributes to check
|
|
89
|
+
* @param options - Guardrail options
|
|
90
|
+
* @throws Error in STRICT mode if violations found
|
|
91
|
+
*/
|
|
92
|
+
export declare function reportViolations(attributes: Attributes, options?: Partial<GuardrailOptions>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Check if an attribute key is allowed in Tier 2.
|
|
95
|
+
* Convenience function for quick checks.
|
|
96
|
+
*
|
|
97
|
+
* @param key - Attribute key
|
|
98
|
+
* @returns true if allowed
|
|
99
|
+
*/
|
|
100
|
+
export declare function isTier2Allowed(key: string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Check if an attribute should be hashed (by Collector).
|
|
103
|
+
*
|
|
104
|
+
* @param key - Attribute key
|
|
105
|
+
* @returns true if should be hashed
|
|
106
|
+
*/
|
|
107
|
+
export declare function shouldHash(key: string): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Get all forbidden attribute names (for documentation/linting).
|
|
110
|
+
*/
|
|
111
|
+
export declare function getForbiddenAttributes(): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Get all hashed attribute names (for documentation/linting).
|
|
114
|
+
*/
|
|
115
|
+
export declare function getHashedAttributes(): string[];
|
|
116
|
+
//# sourceMappingURL=guardrails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/common/guardrails.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUrD;;GAEG;AACH,oBAAY,aAAa;IACvB,uCAAuC;IACvC,mBAAmB,wBAAwB;IAC3C,mEAAmE;IACnE,aAAa,kBAAkB;IAC/B,4DAA4D;IAC5D,eAAe,oBAAoB;IACnC,+CAA+C;IAC/C,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;GAKG;AACH,oBAAY,aAAa;IACvB,+CAA+C;IAC/C,IAAI,SAAS;IACb,2CAA2C;IAC3C,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACtC,kBAAkB,EAAE,CAyDtB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACtC,kBAAkB,EAAE,CAGtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACtC,IAAI,CAuBN;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Telemetry Guardrails
|
|
4
|
+
*
|
|
5
|
+
* Lint-time guardrails to detect forbidden or high-cardinality attributes.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: In the tiered telemetry architecture, the OTEL Collector handles
|
|
8
|
+
* runtime filtering and sanitization. These guardrails are for:
|
|
9
|
+
* - ESLint rules (static analysis)
|
|
10
|
+
* - Development warnings (not enforcement)
|
|
11
|
+
* - CI validation
|
|
12
|
+
*
|
|
13
|
+
* See obs/otel-collector/config-tiered.yaml for runtime enforcement.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.GuardrailMode = exports.ViolationType = void 0;
|
|
17
|
+
exports.validateSpanAttributes = validateSpanAttributes;
|
|
18
|
+
exports.validateMetricLabels = validateMetricLabels;
|
|
19
|
+
exports.reportViolations = reportViolations;
|
|
20
|
+
exports.isTier2Allowed = isTier2Allowed;
|
|
21
|
+
exports.shouldHash = shouldHash;
|
|
22
|
+
exports.getForbiddenAttributes = getForbiddenAttributes;
|
|
23
|
+
exports.getHashedAttributes = getHashedAttributes;
|
|
24
|
+
const tier2_traces_js_1 = require("./contracts/tier2-traces.js");
|
|
25
|
+
const resource_js_1 = require("./resource.js");
|
|
26
|
+
/**
|
|
27
|
+
* Guardrail violation types.
|
|
28
|
+
*/
|
|
29
|
+
var ViolationType;
|
|
30
|
+
(function (ViolationType) {
|
|
31
|
+
/** Attribute is forbidden in Tier 2 */
|
|
32
|
+
ViolationType["FORBIDDEN_ATTRIBUTE"] = "forbidden_attribute";
|
|
33
|
+
/** Attribute should be a resource attribute, not span attribute */
|
|
34
|
+
ViolationType["RESOURCE_ONLY"] = "resource_only";
|
|
35
|
+
/** Value contains forbidden pattern (JWT, API key, etc.) */
|
|
36
|
+
ViolationType["FORBIDDEN_VALUE"] = "forbidden_value";
|
|
37
|
+
/** Attribute value has too high cardinality */
|
|
38
|
+
ViolationType["HIGH_CARDINALITY"] = "high_cardinality";
|
|
39
|
+
})(ViolationType || (exports.ViolationType = ViolationType = {}));
|
|
40
|
+
/**
|
|
41
|
+
* Mode for guardrail reporting.
|
|
42
|
+
*
|
|
43
|
+
* NOTE: Runtime filtering is handled by the OTEL Collector.
|
|
44
|
+
* These modes are for lint-time/development feedback only.
|
|
45
|
+
*/
|
|
46
|
+
var GuardrailMode;
|
|
47
|
+
(function (GuardrailMode) {
|
|
48
|
+
/** Log violations as warnings (development) */
|
|
49
|
+
GuardrailMode["WARN"] = "warn";
|
|
50
|
+
/** Throw on violations (CI/strict mode) */
|
|
51
|
+
GuardrailMode["STRICT"] = "strict";
|
|
52
|
+
})(GuardrailMode || (exports.GuardrailMode = GuardrailMode = {}));
|
|
53
|
+
const DEFAULT_OPTIONS = {
|
|
54
|
+
mode: GuardrailMode.WARN,
|
|
55
|
+
checkCardinality: true,
|
|
56
|
+
maxCardinalityLength: 200,
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Validate span attributes against Tier 2 guardrails.
|
|
60
|
+
*
|
|
61
|
+
* This is for lint-time validation. Runtime filtering is handled by Collector.
|
|
62
|
+
*
|
|
63
|
+
* @param attributes - Attributes to validate
|
|
64
|
+
* @param options - Guardrail options
|
|
65
|
+
* @returns Array of violations found
|
|
66
|
+
*/
|
|
67
|
+
function validateSpanAttributes(attributes, options = {}) {
|
|
68
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
69
|
+
const violations = [];
|
|
70
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
71
|
+
// Check for forbidden attributes
|
|
72
|
+
if (tier2_traces_js_1.TIER2_FORBIDDEN_ATTRIBUTES.has(key)) {
|
|
73
|
+
violations.push({
|
|
74
|
+
type: ViolationType.FORBIDDEN_ATTRIBUTE,
|
|
75
|
+
attributeKey: key,
|
|
76
|
+
message: `Attribute '${key}' is forbidden in Tier 2 telemetry. ` +
|
|
77
|
+
`Collector will filter this at runtime.`,
|
|
78
|
+
severity: "warning",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// Check for resource-only attributes
|
|
82
|
+
if (resource_js_1.RESOURCE_ONLY_ATTRIBUTES.has(key)) {
|
|
83
|
+
violations.push({
|
|
84
|
+
type: ViolationType.RESOURCE_ONLY,
|
|
85
|
+
attributeKey: key,
|
|
86
|
+
message: `Attribute '${key}' should be a RESOURCE attribute, not a span attribute. ` +
|
|
87
|
+
`Set it in initNodeTelemetry() config, not per-span.`,
|
|
88
|
+
severity: "warning",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// Check for forbidden value patterns
|
|
92
|
+
if ((0, tier2_traces_js_1.containsForbiddenPattern)(value)) {
|
|
93
|
+
violations.push({
|
|
94
|
+
type: ViolationType.FORBIDDEN_VALUE,
|
|
95
|
+
attributeKey: key,
|
|
96
|
+
message: `Attribute '${key}' contains a forbidden pattern (JWT, API key, etc.). ` +
|
|
97
|
+
`Collector will filter this at runtime.`,
|
|
98
|
+
severity: "warning",
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// Check for high cardinality
|
|
102
|
+
if (opts.checkCardinality && typeof value === "string") {
|
|
103
|
+
if (value.length > opts.maxCardinalityLength) {
|
|
104
|
+
violations.push({
|
|
105
|
+
type: ViolationType.HIGH_CARDINALITY,
|
|
106
|
+
attributeKey: key,
|
|
107
|
+
message: `Attribute '${key}' has a very long value (${value.length} chars). ` +
|
|
108
|
+
`This may cause high cardinality. Consider using a shorter, normalized value.`,
|
|
109
|
+
severity: "warning",
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return violations;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validate metric labels against Tier 2 guardrails.
|
|
118
|
+
*
|
|
119
|
+
* @param labels - Metric labels to validate
|
|
120
|
+
* @param options - Guardrail options
|
|
121
|
+
* @returns Array of violations found
|
|
122
|
+
*/
|
|
123
|
+
function validateMetricLabels(labels, options = {}) {
|
|
124
|
+
// Metric labels use the same rules as span attributes
|
|
125
|
+
return validateSpanAttributes(labels, options);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Report guardrail violations.
|
|
129
|
+
*
|
|
130
|
+
* NOTE: This is for development feedback only. Runtime filtering
|
|
131
|
+
* is handled by the OTEL Collector.
|
|
132
|
+
*
|
|
133
|
+
* @param attributes - Attributes to check
|
|
134
|
+
* @param options - Guardrail options
|
|
135
|
+
* @throws Error in STRICT mode if violations found
|
|
136
|
+
*/
|
|
137
|
+
function reportViolations(attributes, options = {}) {
|
|
138
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
139
|
+
const violations = validateSpanAttributes(attributes, opts);
|
|
140
|
+
if (violations.length === 0) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
switch (opts.mode) {
|
|
144
|
+
case GuardrailMode.STRICT: {
|
|
145
|
+
throw new Error(`Guardrail violations found:\n` +
|
|
146
|
+
violations.map((v) => ` - ${v.message}`).join("\n"));
|
|
147
|
+
}
|
|
148
|
+
case GuardrailMode.WARN: {
|
|
149
|
+
violations.forEach((v) => {
|
|
150
|
+
console.warn(`[Guardrail] ${v.message}`);
|
|
151
|
+
});
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check if an attribute key is allowed in Tier 2.
|
|
158
|
+
* Convenience function for quick checks.
|
|
159
|
+
*
|
|
160
|
+
* @param key - Attribute key
|
|
161
|
+
* @returns true if allowed
|
|
162
|
+
*/
|
|
163
|
+
function isTier2Allowed(key) {
|
|
164
|
+
return (!tier2_traces_js_1.TIER2_FORBIDDEN_ATTRIBUTES.has(key) &&
|
|
165
|
+
!tier2_traces_js_1.TIER2_DROPPED_ATTRIBUTES.has(key) &&
|
|
166
|
+
!resource_js_1.RESOURCE_ONLY_ATTRIBUTES.has(key));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check if an attribute should be hashed (by Collector).
|
|
170
|
+
*
|
|
171
|
+
* @param key - Attribute key
|
|
172
|
+
* @returns true if should be hashed
|
|
173
|
+
*/
|
|
174
|
+
function shouldHash(key) {
|
|
175
|
+
return tier2_traces_js_1.TIER2_HASHED_ATTRIBUTES.has(key);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get all forbidden attribute names (for documentation/linting).
|
|
179
|
+
*/
|
|
180
|
+
function getForbiddenAttributes() {
|
|
181
|
+
return [...tier2_traces_js_1.TIER2_FORBIDDEN_ATTRIBUTES];
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get all hashed attribute names (for documentation/linting).
|
|
185
|
+
*/
|
|
186
|
+
function getHashedAttributes() {
|
|
187
|
+
return [...tier2_traces_js_1.TIER2_HASHED_ATTRIBUTES];
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=guardrails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/common/guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common Telemetry Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities for resource building and policy evaluation.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: Sanitization and routing are handled by the OTEL Collector
|
|
7
|
+
* in the tiered telemetry architecture. See obs/otel-collector/config-tiered.yaml.
|
|
8
|
+
*/
|
|
9
|
+
export * from "./deployment-type.js";
|
|
10
|
+
export * from "./traced-socket-types.js";
|
|
11
|
+
export * from "./resource.js";
|
|
12
|
+
export * from "./policy-evaluator.js";
|
|
13
|
+
export * from "./guardrails.js";
|
|
14
|
+
export * from "./contracts/tier2-traces.js";
|
|
15
|
+
export * from "./log-sanitizer.js";
|
|
16
|
+
export * from "./normalize-metric-path.js";
|
|
17
|
+
export * from "./tier-hints.js";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Common Telemetry Utilities
|
|
4
|
+
*
|
|
5
|
+
* Shared utilities for resource building and policy evaluation.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Sanitization and routing are handled by the OTEL Collector
|
|
8
|
+
* in the tiered telemetry architecture. See obs/otel-collector/config-tiered.yaml.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
__exportStar(require("./deployment-type.js"), exports);
|
|
26
|
+
__exportStar(require("./traced-socket-types.js"), exports);
|
|
27
|
+
__exportStar(require("./resource.js"), exports);
|
|
28
|
+
__exportStar(require("./policy-evaluator.js"), exports);
|
|
29
|
+
__exportStar(require("./guardrails.js"), exports);
|
|
30
|
+
__exportStar(require("./contracts/tier2-traces.js"), exports);
|
|
31
|
+
__exportStar(require("./log-sanitizer.js"), exports);
|
|
32
|
+
__exportStar(require("./normalize-metric-path.js"), exports);
|
|
33
|
+
__exportStar(require("./tier-hints.js"), exports);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,uDAAqC;AACrC,2DAAyC;AACzC,gDAA8B;AAC9B,wDAAsC;AACtC,kDAAgC;AAChC,8DAA4C;AAC5C,qDAAmC;AACnC,6DAA2C;AAC3C,kDAAgC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Sanitizer for Application-Level Secret Protection
|
|
3
|
+
*
|
|
4
|
+
* Sanitizes secrets from log messages while preserving debugging information.
|
|
5
|
+
* This operates at the APPLICATION layer and removes values that should NEVER
|
|
6
|
+
* appear in any log, anywhere.
|
|
7
|
+
*
|
|
8
|
+
* ARCHITECTURE:
|
|
9
|
+
* - Application layer (this file): secret sanitization only (unconditional, all deployments)
|
|
10
|
+
* - Policy layer (DEFAULT_SENSITIVE_PATTERNS / export path): PII redaction (deployment-specific;
|
|
11
|
+
* cloud-prem redacts emails, cloud does not)
|
|
12
|
+
* - Pipeline layer (OTel Collector): Tier-based filtering for export
|
|
13
|
+
*
|
|
14
|
+
* Stack traces and file paths are preserved for debugging. The pipeline layer
|
|
15
|
+
* handles additional tier-based redaction for exported logs.
|
|
16
|
+
*
|
|
17
|
+
* @see https://github.com/superblocksteam/engineering/blob/main/projects/o11y-refactor/epics/epic-c4-logging-strategy.md
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Patterns that indicate tokens, keys, and secrets in log messages.
|
|
21
|
+
* These use capture groups to preserve prefixes while redacting values.
|
|
22
|
+
* Exported as DEFAULT_SECRET_PATTERNS for use in LoggingPolicyConfig (e.g. cloud-prem).
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_SECRET_PATTERNS: SensitivePattern[];
|
|
25
|
+
/**
|
|
26
|
+
* Fields that contain secrets and should be stripped from log objects.
|
|
27
|
+
* Only includes actual secret field names - NOT debugging info.
|
|
28
|
+
*
|
|
29
|
+
* Pipeline-layer concerns (AI content, stack traces, PII) are NOT included here.
|
|
30
|
+
* Those are handled by the OTel Collector for tier-based export filtering.
|
|
31
|
+
*/
|
|
32
|
+
export declare const SECRET_FIELDS: Set<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Patterns for compound field names that contain secrets.
|
|
35
|
+
* Uses word boundary matching to avoid false positives.
|
|
36
|
+
* Exported for use in LoggingPolicyConfig (e.g. cloud-prem).
|
|
37
|
+
*/
|
|
38
|
+
export declare const SECRET_FIELD_PATTERNS: RegExp[];
|
|
39
|
+
/**
|
|
40
|
+
* Check if a field name contains secrets using word boundary matching.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isSecretField(fieldName: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Policy-driven secret field check. When names and patterns are empty, returns false.
|
|
45
|
+
* Used by PolicyAwareLogProcessor so cloud can pass empty set/array for no redaction.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isSecretFieldFromPolicy(fieldName: string, secretFieldNames: Set<string>, secretFieldPatterns: RegExp[]): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Placeholder string used when redacting forbidden or secret fields in logs.
|
|
50
|
+
* Use this constant so all packages (server, telemetry) share one value.
|
|
51
|
+
*/
|
|
52
|
+
export declare const REDACTED_PLACEHOLDER = "[REDACTED]";
|
|
53
|
+
/**
|
|
54
|
+
* Field names that must never be included in exported logs (stack, prompt, code, etc.).
|
|
55
|
+
* Used as the base for both cloud and cloud-prem.
|
|
56
|
+
*/
|
|
57
|
+
export declare const BASE_EXPORT_FORBIDDEN_FIELDS: Set<string>;
|
|
58
|
+
/** Export-forbidden fields for cloud (base only; email keys allowed). */
|
|
59
|
+
export declare const EXPORT_FORBIDDEN_FIELDS_CLOUD: Set<string>;
|
|
60
|
+
/** Export-forbidden fields for cloud-prem (base + email keys). */
|
|
61
|
+
export declare const EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM: Set<string>;
|
|
62
|
+
export declare function isStackAttributeKey(key: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Check if a string contains a stack trace (for export redaction).
|
|
65
|
+
*/
|
|
66
|
+
export declare function containsStackTrace(text: string): boolean;
|
|
67
|
+
/** Placeholder for stack trace redaction in exported logs. Exported for use in log-processor. */
|
|
68
|
+
export declare const STACK_TRACE_REDACTED_PLACEHOLDER = "[STACK TRACE REDACTED - Tier 1 only]";
|
|
69
|
+
/**
|
|
70
|
+
* Apply redact patterns to a string with a single replacement (resets lastIndex on each pattern).
|
|
71
|
+
*/
|
|
72
|
+
export declare function applyRedactPatterns(str: string, patterns: RegExp[], replacement?: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* A pattern and its replacement for sensitive value redaction (e.g. path, email).
|
|
75
|
+
* Configured in logging policy alongside forbiddenFields and redactPatterns.
|
|
76
|
+
*/
|
|
77
|
+
export interface SensitivePattern {
|
|
78
|
+
pattern: RegExp;
|
|
79
|
+
replacement: string;
|
|
80
|
+
}
|
|
81
|
+
/** Sensitive patterns for cloud: path only (emails are not redacted in cloud). */
|
|
82
|
+
export declare const SENSITIVE_PATTERNS_CLOUD: SensitivePattern[];
|
|
83
|
+
/** Default sensitive patterns (path, email) for cloud-prem and when export is strict. */
|
|
84
|
+
export declare const DEFAULT_SENSITIVE_PATTERNS: SensitivePattern[];
|
|
85
|
+
/**
|
|
86
|
+
* Regex patterns for cloud-prem log export: matched content is replaced with [REDACTED].
|
|
87
|
+
* Used as redactPatterns in LoggingPolicyConfig when deploymentType is CLOUD_PREM.
|
|
88
|
+
*/
|
|
89
|
+
export declare const CLOUD_PREM_REDACT_PATTERNS: RegExp[];
|
|
90
|
+
/**
|
|
91
|
+
* Apply sensitive patterns (pattern + replacement) to text.
|
|
92
|
+
* Used with policy.sensitivePatterns whenever redacting values for export.
|
|
93
|
+
*/
|
|
94
|
+
export declare function redactSensitivePatterns(text: string, patterns: SensitivePattern[]): string;
|
|
95
|
+
/**
|
|
96
|
+
* Redact stack trace for export: keep first line (error message) after sanitizing
|
|
97
|
+
* it with sensitive patterns, replace the rest with a placeholder.
|
|
98
|
+
* Use when exporting logs so stack traces never leave the environment.
|
|
99
|
+
*
|
|
100
|
+
* @param messageSecretPatterns - When non-empty, applied to first line before sensitivePatterns (policy-driven). When empty, uses sanitizeLogMessage for first line.
|
|
101
|
+
*/
|
|
102
|
+
export declare function redactStackTraceForExport(text: string, sensitivePatterns?: SensitivePattern[], messageSecretPatterns?: SensitivePattern[]): string;
|
|
103
|
+
/**
|
|
104
|
+
* Sanitize a log message string for export: sensitive patterns, then policy redact patterns, then
|
|
105
|
+
* stack trace redaction. Use for the message argument in log calls (e.g. safe logger stdout path).
|
|
106
|
+
*/
|
|
107
|
+
export declare function sanitizeLogMessageForExport(message: string, redactPatterns: RegExp[], sensitivePatterns: SensitivePattern[]): string;
|
|
108
|
+
/**
|
|
109
|
+
* @deprecated Use SECRET_FIELDS instead. This export is kept for backward
|
|
110
|
+
* compatibility but now only contains secret fields, not Tier 1 content fields.
|
|
111
|
+
*/
|
|
112
|
+
export declare const TIER1_FORBIDDEN_LOG_FIELDS: Set<string>;
|
|
113
|
+
/**
|
|
114
|
+
* Sanitizes secrets from a log message string.
|
|
115
|
+
* Preserves debugging info (emails, file paths, stack traces, etc.) for troubleshooting.
|
|
116
|
+
* Email redaction is deployment-specific and handled via DEFAULT_SENSITIVE_PATTERNS
|
|
117
|
+
* on the export path (cloud-prem only).
|
|
118
|
+
*
|
|
119
|
+
* @param message - The log message to sanitize
|
|
120
|
+
* @returns Message with secrets redacted
|
|
121
|
+
*/
|
|
122
|
+
export declare function sanitizeLogMessage(message: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* Sanitizes secrets within a stack trace while preserving the full trace.
|
|
125
|
+
* Stack traces are essential for debugging - only redact secrets within them.
|
|
126
|
+
*
|
|
127
|
+
* @param stack - The stack trace string
|
|
128
|
+
* @returns Stack trace with secrets redacted but structure preserved
|
|
129
|
+
*/
|
|
130
|
+
export declare function redactStackTrace(stack: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* Recursively sanitizes secrets and high-risk PII from an object.
|
|
133
|
+
* Strips secret fields entirely, sanitizes string values.
|
|
134
|
+
* Preserves low-risk debugging info (stack traces, file paths).
|
|
135
|
+
*
|
|
136
|
+
* @param obj - The object to sanitize
|
|
137
|
+
* @param depth - Current recursion depth (default: 0)
|
|
138
|
+
* @returns Object with secrets removed
|
|
139
|
+
*/
|
|
140
|
+
export declare function sanitizeLogObject<T>(obj: T, depth?: number): T;
|
|
141
|
+
/**
|
|
142
|
+
* Sanitize an object for export: exclude forbidden keys (omitted), redact secret keys (key kept, value [REDACTED]),
|
|
143
|
+
* and apply sensitive patterns to string values. Used by PolicyAwareLogProcessor when exporting log body objects.
|
|
144
|
+
*/
|
|
145
|
+
export declare function sanitizeLogObjectForExport(obj: unknown, forbiddenFields: Set<string>, depth?: number, sensitivePatterns?: SensitivePattern[]): unknown;
|
|
146
|
+
/**
|
|
147
|
+
* Sanitize a log record for export with both key-based and value-based redaction.
|
|
148
|
+
* Applies sensitivePatterns and redactPatterns to every string value.
|
|
149
|
+
* Use for the server stdout path (safe logger and RemoteLogger redactRecord) so exported logs match OTLP behavior.
|
|
150
|
+
*/
|
|
151
|
+
export declare function sanitizeLogRecordForExport(obj: unknown, forbiddenFields: Set<string>, redactPatterns: RegExp[], sensitivePatterns: SensitivePattern[], depth?: number): unknown;
|
|
152
|
+
/**
|
|
153
|
+
* Sanitizes secrets from an error object.
|
|
154
|
+
* Preserves full stack traces for debugging.
|
|
155
|
+
*
|
|
156
|
+
* @param error - The error to sanitize
|
|
157
|
+
* @returns Error object with secrets redacted
|
|
158
|
+
*/
|
|
159
|
+
export declare function sanitizeLogError(error: unknown): unknown;
|
|
160
|
+
/**
|
|
161
|
+
* Safe JSON stringify with secret sanitization.
|
|
162
|
+
* Handles circular references and non-serializable types.
|
|
163
|
+
* Preserves debugging info (stack traces, file paths, emails).
|
|
164
|
+
*
|
|
165
|
+
* @param obj - Object to stringify
|
|
166
|
+
* @param space - Indentation (optional)
|
|
167
|
+
* @returns JSON string with secrets redacted
|
|
168
|
+
*/
|
|
169
|
+
export declare function safeJsonStringify(obj: unknown, space?: string | number): string;
|
|
170
|
+
//# sourceMappingURL=log-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-sanitizer.d.ts","sourceRoot":"","sources":["../../src/common/log-sanitizer.ts"],"names":[],"mappings":"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"}
|