@superblocksteam/telemetry 2.0.93 → 2.0.94-next.0
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/README.md +59 -44
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/resilient-exporter.d.ts.map +1 -1
- package/dist/browser/resilient-exporter.js.map +1 -1
- package/dist/common/contracts/tier2-traces.d.ts +62 -50
- package/dist/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist/common/contracts/tier2-traces.js +484 -138
- package/dist/common/contracts/tier2-traces.js.map +1 -1
- package/dist/common/guardrails.d.ts +2 -2
- package/dist/common/guardrails.d.ts.map +1 -1
- package/dist/common/guardrails.js +7 -7
- package/dist/common/guardrails.js.map +1 -1
- package/dist/common/log-sanitizer.d.ts +88 -0
- package/dist/common/log-sanitizer.d.ts.map +1 -1
- package/dist/common/log-sanitizer.js +304 -6
- package/dist/common/log-sanitizer.js.map +1 -1
- package/dist/common/resource.d.ts +4 -1
- package/dist/common/resource.d.ts.map +1 -1
- package/dist/common/resource.js +4 -2
- package/dist/common/resource.js.map +1 -1
- 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 +230 -0
- package/dist/common/trace-sanitizer.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/lint/forbidden-attributes.d.ts +2 -2
- package/dist/lint/forbidden-attributes.d.ts.map +1 -1
- package/dist/lint/forbidden-attributes.js +41 -40
- package/dist/lint/forbidden-attributes.js.map +1 -1
- package/dist/lint/index.d.ts +1 -1
- package/dist/llmobs/index.d.ts +2 -2
- package/dist/llmobs/tier1-exporter.d.ts +2 -2
- package/dist/llmobs/tier1-exporter.d.ts.map +1 -1
- package/dist/llmobs/tier1-exporter.js +17 -14
- package/dist/llmobs/tier1-exporter.js.map +1 -1
- package/dist/llmobs/tier2-summarizer.d.ts.map +1 -1
- package/dist/llmobs/tier2-summarizer.js +10 -4
- package/dist/llmobs/tier2-summarizer.js.map +1 -1
- package/dist/node/exporters/resilient-exporter.d.ts +14 -0
- package/dist/node/exporters/resilient-exporter.d.ts.map +1 -1
- package/dist/node/exporters/resilient-exporter.js +8 -1
- package/dist/node/exporters/resilient-exporter.js.map +1 -1
- package/dist/node/index.d.ts +2 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +7 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/init.d.ts.map +1 -1
- package/dist/node/init.js +61 -12
- package/dist/node/init.js.map +1 -1
- package/dist/node/log-processor.d.ts +41 -6
- package/dist/node/log-processor.d.ts.map +1 -1
- package/dist/node/log-processor.js +152 -61
- package/dist/node/log-processor.js.map +1 -1
- package/dist/node/metrics-client.d.ts.map +1 -1
- package/dist/node/metrics-client.js.map +1 -1
- 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 +56 -0
- package/dist/node/sanitizing-processor.d.ts.map +1 -0
- package/dist/node/sanitizing-processor.js +124 -0
- package/dist/node/sanitizing-processor.js.map +1 -0
- package/dist/node/traced-socket.d.ts +47 -3
- package/dist/node/traced-socket.d.ts.map +1 -1
- package/dist/node/traced-socket.js +96 -19
- package/dist/node/traced-socket.js.map +1 -1
- package/dist/testing/in-memory-exporter.d.ts +3 -3
- package/dist/testing/in-memory-exporter.d.ts.map +1 -1
- package/dist/testing/in-memory-exporter.js +3 -1
- package/dist/testing/in-memory-exporter.js.map +1 -1
- package/dist/testing/index.d.ts +2 -2
- package/dist/types/index.d.ts +28 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist-esm/browser/index.d.ts +2 -2
- package/dist-esm/browser/index.js +2 -2
- package/dist-esm/browser/resilient-exporter.d.ts.map +1 -1
- package/dist-esm/browser/resilient-exporter.js.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.d.ts +62 -50
- package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -1
- package/dist-esm/common/contracts/tier2-traces.js +480 -137
- package/dist-esm/common/contracts/tier2-traces.js.map +1 -1
- package/dist-esm/common/guardrails.d.ts +2 -2
- package/dist-esm/common/guardrails.d.ts.map +1 -1
- package/dist-esm/common/guardrails.js +9 -9
- package/dist-esm/common/guardrails.js.map +1 -1
- package/dist-esm/common/log-sanitizer.d.ts +88 -0
- package/dist-esm/common/log-sanitizer.d.ts.map +1 -1
- package/dist-esm/common/log-sanitizer.js +294 -5
- package/dist-esm/common/log-sanitizer.js.map +1 -1
- package/dist-esm/common/resource.d.ts +4 -1
- package/dist-esm/common/resource.d.ts.map +1 -1
- package/dist-esm/common/resource.js +3 -1
- package/dist-esm/common/resource.js.map +1 -1
- 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 +226 -0
- package/dist-esm/common/trace-sanitizer.js.map +1 -0
- package/dist-esm/index.d.ts +2 -1
- package/dist-esm/index.d.ts.map +1 -1
- package/dist-esm/index.js +2 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/lint/forbidden-attributes.d.ts +2 -2
- package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -1
- package/dist-esm/lint/forbidden-attributes.js +43 -42
- package/dist-esm/lint/forbidden-attributes.js.map +1 -1
- package/dist-esm/lint/index.d.ts +1 -1
- package/dist-esm/lint/index.js +1 -1
- package/dist-esm/llmobs/index.d.ts +2 -2
- package/dist-esm/llmobs/index.js +2 -2
- package/dist-esm/llmobs/tier1-exporter.d.ts +2 -2
- package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -1
- package/dist-esm/llmobs/tier1-exporter.js +18 -15
- package/dist-esm/llmobs/tier1-exporter.js.map +1 -1
- package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -1
- package/dist-esm/llmobs/tier2-summarizer.js +10 -4
- package/dist-esm/llmobs/tier2-summarizer.js.map +1 -1
- package/dist-esm/node/exporters/resilient-exporter.d.ts +14 -0
- package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -1
- package/dist-esm/node/exporters/resilient-exporter.js +8 -1
- package/dist-esm/node/exporters/resilient-exporter.js.map +1 -1
- package/dist-esm/node/index.d.ts +2 -1
- package/dist-esm/node/index.d.ts.map +1 -1
- package/dist-esm/node/index.js +2 -1
- package/dist-esm/node/index.js.map +1 -1
- package/dist-esm/node/init.d.ts.map +1 -1
- package/dist-esm/node/init.js +61 -12
- package/dist-esm/node/init.js.map +1 -1
- package/dist-esm/node/log-processor.d.ts +41 -6
- package/dist-esm/node/log-processor.d.ts.map +1 -1
- package/dist-esm/node/log-processor.js +151 -62
- package/dist-esm/node/log-processor.js.map +1 -1
- package/dist-esm/node/metrics-client.d.ts.map +1 -1
- package/dist-esm/node/metrics-client.js.map +1 -1
- 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 +56 -0
- package/dist-esm/node/sanitizing-processor.d.ts.map +1 -0
- package/dist-esm/node/sanitizing-processor.js +120 -0
- package/dist-esm/node/sanitizing-processor.js.map +1 -0
- package/dist-esm/node/traced-socket.d.ts +47 -3
- package/dist-esm/node/traced-socket.d.ts.map +1 -1
- package/dist-esm/node/traced-socket.js +96 -19
- package/dist-esm/node/traced-socket.js.map +1 -1
- package/dist-esm/testing/in-memory-exporter.d.ts +3 -3
- package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -1
- package/dist-esm/testing/in-memory-exporter.js +4 -2
- package/dist-esm/testing/in-memory-exporter.js.map +1 -1
- package/dist-esm/testing/index.d.ts +2 -2
- package/dist-esm/testing/index.js +2 -2
- package/dist-esm/types/index.d.ts +28 -1
- package/dist-esm/types/index.d.ts.map +1 -1
- package/dist-esm/types/index.js +1 -1
- package/package.json +17 -18
package/dist-esm/node/index.js
CHANGED
|
@@ -7,5 +7,6 @@ export { initNodeTelemetry, getTelemetryInstance, isTelemetryInitialized, resetT
|
|
|
7
7
|
export { MetricsClient, } from "./metrics-client.js";
|
|
8
8
|
export { TracedSocket, } from "./traced-socket.js";
|
|
9
9
|
export { ResilientExporter, } from "./exporters/resilient-exporter.js";
|
|
10
|
-
export {
|
|
10
|
+
export { LogExportMode, PolicyAwareLogProcessor, getLoggingPolicy, getMinimumPinoLevelForDeployment, getMinimumPinoLevelFromLoggingPolicy, } from "./log-processor.js";
|
|
11
|
+
export { createSafeLogger, redactForbiddenFields, } from "./safe-logger.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,GAEf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,GAKd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,GAEf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,GAKd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,gCAAgC,EAChC,oCAAoC,GAErC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,MAAM,EAAW,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,MAAM,EAAW,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAQ,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAapE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,kCAAkC;IAClC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,aAAa,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAmGD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAiLvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAO5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist-esm/node/init.js
CHANGED
|
@@ -14,11 +14,13 @@ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
|
14
14
|
import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
|
|
15
15
|
import { AggregationTemporality, PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics";
|
|
16
16
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
17
|
-
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
18
17
|
import { buildResource, validateResource } from "../common/resource.js";
|
|
19
18
|
import { TelemetryPolicyEvaluator } from "../common/policy-evaluator.js";
|
|
20
19
|
import { TelemetryTier } from "../types/policy.js";
|
|
21
20
|
import { ResilientExporter } from "./exporters/resilient-exporter.js";
|
|
21
|
+
import { getTraceSanitizerAttributeSets } from "../common/contracts/tier2-traces.js";
|
|
22
|
+
import { SanitizingSpanProcessor, noopSpanProcessor, } from "./sanitizing-processor.js";
|
|
23
|
+
import { TraceSanitizer } from "../common/trace-sanitizer.js";
|
|
22
24
|
import { PolicyAwareLogProcessor, getLoggingPolicy, LogExportMode, } from "./log-processor.js";
|
|
23
25
|
import { MetricsClient } from "./metrics-client.js";
|
|
24
26
|
// Singleton instance
|
|
@@ -51,6 +53,30 @@ function createNoOpInstance(config, policy) {
|
|
|
51
53
|
},
|
|
52
54
|
};
|
|
53
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Fallback logger for SanitizingSpanProcessor when config.logger is not provided.
|
|
58
|
+
* Forwards to console so processor messages are still visible.
|
|
59
|
+
*/
|
|
60
|
+
function createConsoleFallbackLogger() {
|
|
61
|
+
const log = (level) => (a, b) => {
|
|
62
|
+
if (typeof a === "string") {
|
|
63
|
+
if (level === "warn")
|
|
64
|
+
console.warn(a);
|
|
65
|
+
else
|
|
66
|
+
console.error(a);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
if (level === "warn")
|
|
70
|
+
console.warn(b ?? "", a);
|
|
71
|
+
else
|
|
72
|
+
console.error(b ?? "", a);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
error: log("error"),
|
|
77
|
+
warn: log("warn"),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
54
80
|
/**
|
|
55
81
|
* Validate telemetry configuration.
|
|
56
82
|
*
|
|
@@ -136,15 +162,25 @@ export function initNodeTelemetry(config, policy) {
|
|
|
136
162
|
droppedSpans += count;
|
|
137
163
|
console.warn(`[Telemetry] Dropped ${count} spans (${reason}). Total dropped: ${droppedSpans}`);
|
|
138
164
|
};
|
|
139
|
-
// Create trace exporter if URL provided and Tier 2 export is enabled
|
|
140
|
-
//
|
|
141
|
-
|
|
165
|
+
// Create trace exporter if URL provided and Tier 2 export is enabled.
|
|
166
|
+
// Traces go through SanitizingSpanProcessor: only contract-compliant spans are exported.
|
|
167
|
+
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization.
|
|
168
|
+
let spanProcessor;
|
|
142
169
|
if (config.otlpUrl &&
|
|
143
170
|
policyEvaluator.isExportEnabled(TelemetryTier.TIER_2_OPERATIONAL)) {
|
|
144
|
-
|
|
171
|
+
const tier2Exporter = new ResilientExporter({
|
|
145
172
|
delegate: new OTLPTraceExporter({ url: `${config.otlpUrl}/v1/traces` }),
|
|
146
173
|
onDrop,
|
|
174
|
+
logger: config.logger,
|
|
147
175
|
});
|
|
176
|
+
const hashConfig = config.traceSanitizerHashConfig ?? null;
|
|
177
|
+
const attributeSets = getTraceSanitizerAttributeSets(policy.deploymentType);
|
|
178
|
+
const traceSanitizer = new TraceSanitizer({
|
|
179
|
+
hashConfig,
|
|
180
|
+
...attributeSets,
|
|
181
|
+
});
|
|
182
|
+
const spanProcessorLogger = config.logger ?? createConsoleFallbackLogger();
|
|
183
|
+
spanProcessor = new SanitizingSpanProcessor(policyEvaluator, noopSpanProcessor, tier2Exporter, traceSanitizer, spanProcessorLogger);
|
|
148
184
|
}
|
|
149
185
|
// Create metric exporter if enabled
|
|
150
186
|
// Use isExportEnabled (not canExport) - sampling applies at runtime, not initialization
|
|
@@ -178,9 +214,7 @@ export function initNodeTelemetry(config, policy) {
|
|
|
178
214
|
// Note: instrumentations typed as unknown[] for flexibility with various OTEL instrumentation packages
|
|
179
215
|
const sdk = new NodeSDK({
|
|
180
216
|
resource,
|
|
181
|
-
spanProcessor
|
|
182
|
-
? new BatchSpanProcessor(traceExporter)
|
|
183
|
-
: undefined,
|
|
217
|
+
spanProcessor,
|
|
184
218
|
metricReader,
|
|
185
219
|
logRecordProcessor: logProcessor,
|
|
186
220
|
contextManager: new AsyncLocalStorageContextManager(),
|
|
@@ -189,10 +223,25 @@ export function initNodeTelemetry(config, policy) {
|
|
|
189
223
|
instrumentations: (config.instrumentations ?? []),
|
|
190
224
|
});
|
|
191
225
|
sdk.start();
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
226
|
+
const tracesEnabled = spanProcessor
|
|
227
|
+
? "enabled (Tier 2 sanitized)"
|
|
228
|
+
: "disabled";
|
|
229
|
+
const metricsEnabled = metricReader ? "enabled" : "disabled";
|
|
230
|
+
const logsEnabled = logProcessor ? "enabled" : "disabled";
|
|
231
|
+
if (typeof config.logger?.info === "function") {
|
|
232
|
+
config.logger.info({
|
|
233
|
+
component: "telemetry",
|
|
234
|
+
deploymentType: policy.deploymentType,
|
|
235
|
+
logs: logsEnabled,
|
|
236
|
+
metrics: metricsEnabled,
|
|
237
|
+
serviceName: config.serviceName,
|
|
238
|
+
traces: tracesEnabled,
|
|
239
|
+
}, "Telemetry initialized");
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
console.info(`[Telemetry] Initialized for ${config.serviceName} (${policy.deploymentType})` +
|
|
243
|
+
` | Traces: ${tracesEnabled} | Metrics: ${metricsEnabled} | Logs: ${logsEnabled}`);
|
|
244
|
+
}
|
|
196
245
|
const defaultMeter = metrics.getMeter(config.serviceName, config.serviceVersion);
|
|
197
246
|
instance = {
|
|
198
247
|
sdk,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAU,OAAO,EAAS,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAU,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/node/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { LogRecordProcessor, ReadableLogRecord } from "@opentelemetry/sdk-logs";
|
|
12
12
|
import type { Context } from "@opentelemetry/api";
|
|
13
13
|
import { TelemetryPolicy } from "../types/policy.js";
|
|
14
|
+
import type { SensitivePattern } from "../common/log-sanitizer.js";
|
|
14
15
|
/**
|
|
15
16
|
* Controls what logs are exported via OTEL.
|
|
16
17
|
*/
|
|
@@ -24,15 +25,26 @@ export declare enum LogExportMode {
|
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Logging-specific policy configuration.
|
|
28
|
+
* All sanitization is driven by these fields; when they are empty/off, no redaction is applied.
|
|
27
29
|
*/
|
|
28
30
|
export interface LoggingPolicyConfig {
|
|
29
31
|
/** What logs to export */
|
|
30
32
|
exportMode: LogExportMode;
|
|
31
33
|
/** Maximum log level for local retention */
|
|
32
34
|
localMaxLevel: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
|
|
33
|
-
/**
|
|
35
|
+
/** Patterns to redact from message/body and string values (e.g. JWT, API keys). When empty, no secret redaction. */
|
|
36
|
+
messageSecretPatterns: SensitivePattern[];
|
|
37
|
+
/** Attribute keys (lowercase) that trigger value → [REDACTED]. When empty, no key-based secret redaction. */
|
|
38
|
+
secretFieldNames: Set<string>;
|
|
39
|
+
/** Regex patterns for attribute key names that trigger value → [REDACTED]. When empty, only secretFieldNames apply. */
|
|
40
|
+
secretFieldPatterns: RegExp[];
|
|
41
|
+
/** When true, stack traces in body/attributes are replaced with placeholder. When false, left as-is. */
|
|
42
|
+
redactStackTraces: boolean;
|
|
43
|
+
/** Regex patterns to redact from log content (replaced with [REDACTED]). */
|
|
34
44
|
redactPatterns: RegExp[];
|
|
35
|
-
/**
|
|
45
|
+
/** Pattern+replacement rules for sensitive values (path, email). */
|
|
46
|
+
sensitivePatterns: SensitivePattern[];
|
|
47
|
+
/** Fields to exclude from exported logs (key and value omitted). */
|
|
36
48
|
forbiddenFields: Set<string>;
|
|
37
49
|
}
|
|
38
50
|
/**
|
|
@@ -42,6 +54,30 @@ export interface LoggingPolicyConfig {
|
|
|
42
54
|
* @returns Logging policy configuration
|
|
43
55
|
*/
|
|
44
56
|
export declare function getLoggingPolicy(policy: TelemetryPolicy): LoggingPolicyConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Returns the effective Pino log level from the current logging policy and env level.
|
|
59
|
+
* 1. Applies exportMode: when ERRORS_ONLY, never below warn so export paths never see INFO/DEBUG.
|
|
60
|
+
* 2. Applies localMaxLevel: caps local retention so we never set the logger more verbose than
|
|
61
|
+
* policy.localMaxLevel (e.g. localMaxLevel "debug" prevents trace from being written locally).
|
|
62
|
+
*
|
|
63
|
+
* Use when policy is available (e.g. after initNodeTelemetry) to sync logger level from policy.
|
|
64
|
+
*
|
|
65
|
+
* @param loggingPolicy - Logging policy (e.g. from getLoggingPolicy(telemetryPolicy))
|
|
66
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
67
|
+
* @returns Level to pass to Pino
|
|
68
|
+
*/
|
|
69
|
+
export declare function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy: LoggingPolicyConfig, envLevel: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the effective Pino log level for a deployment given the env-configured level.
|
|
72
|
+
* Used at logger bootstrap when policy is not yet initialized (e.g. server logger module load).
|
|
73
|
+
* Delegates to getMinimumPinoLevelFromLoggingPolicy with a synthetic policy from deployment type
|
|
74
|
+
* so the exportMode → level rule lives in one place.
|
|
75
|
+
*
|
|
76
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
77
|
+
* @param deploymentType - Deployment type from env (e.g. SUPERBLOCKS_DEPLOYMENT_TYPE)
|
|
78
|
+
* @returns Level to pass to Pino (envLevel or 'warn' for cloud-prem when envLevel is below warn)
|
|
79
|
+
*/
|
|
80
|
+
export declare function getMinimumPinoLevelForDeployment(envLevel: string, deploymentType: string): string;
|
|
45
81
|
/**
|
|
46
82
|
* Log processor that filters and sanitizes logs based on policy.
|
|
47
83
|
*
|
|
@@ -58,15 +94,14 @@ export declare class PolicyAwareLogProcessor implements LogRecordProcessor {
|
|
|
58
94
|
* Called when a log record is emitted.
|
|
59
95
|
*/
|
|
60
96
|
onEmit(logRecord: ReadableLogRecord, context?: Context): void;
|
|
97
|
+
/** True when policy has no sanitization (cloud passthrough). */
|
|
98
|
+
private isPassthroughPolicy;
|
|
61
99
|
/**
|
|
62
100
|
* Sanitize a log record for export.
|
|
63
101
|
* Mutates the log record in place to preserve OTEL SDK internal state.
|
|
102
|
+
* All redaction is policy-driven; when config is empty/off, content is left as-is.
|
|
64
103
|
*/
|
|
65
104
|
private sanitizeLogRecord;
|
|
66
|
-
/**
|
|
67
|
-
* Check if a string contains a stack trace.
|
|
68
|
-
*/
|
|
69
|
-
private containsStackTrace;
|
|
70
105
|
/**
|
|
71
106
|
* Sanitize log attributes.
|
|
72
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAiB,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAyBnE;;GAEG;AACH,oBAAY,aAAa;IACvB,+CAA+C;IAC/C,UAAU,eAAe;IACzB,4DAA4D;IAC5D,WAAW,gBAAgB;IAC3B,6DAA6D;IAC7D,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACvE,oHAAoH;IACpH,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;IAC1C,6GAA6G;IAC7G,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,uHAAuH;IACvH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,wGAAwG;IACxG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oEAAoE;IACpE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,oEAAoE;IACpE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAoD7E;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,CAmBR;AAuDD;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAElC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB;IAKrE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAqB7D,gEAAgE;IAChE,OAAO,CAAC,mBAAmB;IAa3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA6CzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuE1B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { TelemetryTier } from "../types/policy.js";
|
|
12
12
|
import { TelemetryPolicyEvaluator } from "../common/policy-evaluator.js";
|
|
13
|
-
import {
|
|
13
|
+
import { applyRedactPatterns, CLOUD_PREM_REDACT_PATTERNS, containsStackTrace, DEFAULT_SECRET_PATTERNS, DEFAULT_SENSITIVE_PATTERNS, EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM, isSecretFieldFromPolicy, isStackAttributeKey, redactSensitivePatterns, redactStackTraceForExport, REDACTED_PLACEHOLDER, sanitizeLogObjectForExport, SECRET_FIELD_PATTERNS, SECRET_FIELDS, STACK_TRACE_REDACTED_PLACEHOLDER, TIER1_FORBIDDEN_LOG_FIELDS, } from "../common/log-sanitizer.js";
|
|
14
14
|
import { DeploymentTypeEnum } from "@superblocksteam/shared";
|
|
15
15
|
// ============================================================================
|
|
16
16
|
// Log Export Mode
|
|
@@ -41,34 +41,118 @@ export function getLoggingPolicy(policy) {
|
|
|
41
41
|
return {
|
|
42
42
|
exportMode: LogExportMode.LOCAL_ONLY,
|
|
43
43
|
localMaxLevel: "debug",
|
|
44
|
+
messageSecretPatterns: DEFAULT_SECRET_PATTERNS,
|
|
45
|
+
secretFieldNames: SECRET_FIELDS,
|
|
46
|
+
secretFieldPatterns: SECRET_FIELD_PATTERNS,
|
|
47
|
+
redactStackTraces: true,
|
|
44
48
|
redactPatterns: [],
|
|
49
|
+
sensitivePatterns: DEFAULT_SENSITIVE_PATTERNS,
|
|
45
50
|
forbiddenFields: TIER1_FORBIDDEN_LOG_FIELDS,
|
|
46
51
|
};
|
|
47
52
|
}
|
|
48
|
-
// Cloud-prem: export errors only, with full sanitization
|
|
53
|
+
// Cloud-prem: export errors only, with full sanitization (secrets + sensitive patterns)
|
|
49
54
|
if (policy.deploymentType === DeploymentTypeEnum.CLOUD_PREM) {
|
|
50
55
|
return {
|
|
51
56
|
exportMode: LogExportMode.ERRORS_ONLY,
|
|
52
57
|
localMaxLevel: "debug",
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
messageSecretPatterns: DEFAULT_SECRET_PATTERNS,
|
|
59
|
+
secretFieldNames: SECRET_FIELDS,
|
|
60
|
+
secretFieldPatterns: SECRET_FIELD_PATTERNS,
|
|
61
|
+
redactStackTraces: true,
|
|
62
|
+
redactPatterns: CLOUD_PREM_REDACT_PATTERNS,
|
|
63
|
+
sensitivePatterns: DEFAULT_SENSITIVE_PATTERNS,
|
|
64
|
+
forbiddenFields: new Set([
|
|
65
|
+
...TIER1_FORBIDDEN_LOG_FIELDS,
|
|
66
|
+
...EXPORT_FORBIDDEN_FIELDS_CLOUD_PREM,
|
|
67
|
+
]),
|
|
62
68
|
};
|
|
63
69
|
}
|
|
64
|
-
// Cloud:
|
|
70
|
+
// Cloud: all sanitization off (logs sent as-is)
|
|
65
71
|
return {
|
|
66
72
|
exportMode: LogExportMode.INFO_AND_ABOVE,
|
|
67
73
|
localMaxLevel: "debug",
|
|
74
|
+
messageSecretPatterns: [],
|
|
75
|
+
secretFieldNames: new Set(),
|
|
76
|
+
secretFieldPatterns: [],
|
|
77
|
+
redactStackTraces: false,
|
|
68
78
|
redactPatterns: [],
|
|
69
|
-
|
|
79
|
+
sensitivePatterns: [],
|
|
80
|
+
forbiddenFields: new Set(),
|
|
70
81
|
};
|
|
71
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Pino levels below WARN; when exportMode is ERRORS_ONLY we never write these to stdout.
|
|
85
|
+
*/
|
|
86
|
+
const LEVELS_BELOW_WARN = new Set(["trace", "debug", "info"]);
|
|
87
|
+
/**
|
|
88
|
+
* Ordered from most verbose (index 0) to least verbose (index 5).
|
|
89
|
+
* Used to compare levels: "more restrictive" = higher index = fewer logs retained.
|
|
90
|
+
*/
|
|
91
|
+
const PINO_LEVEL_ORDER = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
92
|
+
function levelOrderIndex(level) {
|
|
93
|
+
const normalized = level.toLowerCase();
|
|
94
|
+
const idx = PINO_LEVEL_ORDER.indexOf(normalized);
|
|
95
|
+
return idx >= 0 ? idx : PINO_LEVEL_ORDER.indexOf("info");
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Returns the more restrictive of two levels (the one that retains fewer logs).
|
|
99
|
+
* E.g. moreRestrictiveLevel("trace", "debug") === "debug".
|
|
100
|
+
*/
|
|
101
|
+
function moreRestrictiveLevel(a, b) {
|
|
102
|
+
const idxA = levelOrderIndex(a);
|
|
103
|
+
const idxB = levelOrderIndex(b);
|
|
104
|
+
return PINO_LEVEL_ORDER[Math.max(idxA, idxB)] ?? "info";
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns the effective Pino log level from the current logging policy and env level.
|
|
108
|
+
* 1. Applies exportMode: when ERRORS_ONLY, never below warn so export paths never see INFO/DEBUG.
|
|
109
|
+
* 2. Applies localMaxLevel: caps local retention so we never set the logger more verbose than
|
|
110
|
+
* policy.localMaxLevel (e.g. localMaxLevel "debug" prevents trace from being written locally).
|
|
111
|
+
*
|
|
112
|
+
* Use when policy is available (e.g. after initNodeTelemetry) to sync logger level from policy.
|
|
113
|
+
*
|
|
114
|
+
* @param loggingPolicy - Logging policy (e.g. from getLoggingPolicy(telemetryPolicy))
|
|
115
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
116
|
+
* @returns Level to pass to Pino
|
|
117
|
+
*/
|
|
118
|
+
export function getMinimumPinoLevelFromLoggingPolicy(loggingPolicy, envLevel) {
|
|
119
|
+
let level;
|
|
120
|
+
const envLevelNormalized = envLevel.toLowerCase();
|
|
121
|
+
if (loggingPolicy.exportMode === LogExportMode.ERRORS_ONLY &&
|
|
122
|
+
LEVELS_BELOW_WARN.has(envLevelNormalized)) {
|
|
123
|
+
level = "warn";
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
level = envLevel;
|
|
127
|
+
}
|
|
128
|
+
return moreRestrictiveLevel(level, loggingPolicy.localMaxLevel);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Returns the effective Pino log level for a deployment given the env-configured level.
|
|
132
|
+
* Used at logger bootstrap when policy is not yet initialized (e.g. server logger module load).
|
|
133
|
+
* Delegates to getMinimumPinoLevelFromLoggingPolicy with a synthetic policy from deployment type
|
|
134
|
+
* so the exportMode → level rule lives in one place.
|
|
135
|
+
*
|
|
136
|
+
* @param envLevel - Level from env (e.g. SUPERBLOCKS_SERVER_LOG_LEVEL)
|
|
137
|
+
* @param deploymentType - Deployment type from env (e.g. SUPERBLOCKS_DEPLOYMENT_TYPE)
|
|
138
|
+
* @returns Level to pass to Pino (envLevel or 'warn' for cloud-prem when envLevel is below warn)
|
|
139
|
+
*/
|
|
140
|
+
export function getMinimumPinoLevelForDeployment(envLevel, deploymentType) {
|
|
141
|
+
const exportMode = deploymentType === DeploymentTypeEnum.CLOUD_PREM
|
|
142
|
+
? LogExportMode.ERRORS_ONLY
|
|
143
|
+
: LogExportMode.INFO_AND_ABOVE;
|
|
144
|
+
return getMinimumPinoLevelFromLoggingPolicy({
|
|
145
|
+
exportMode,
|
|
146
|
+
localMaxLevel: "debug",
|
|
147
|
+
messageSecretPatterns: [],
|
|
148
|
+
secretFieldNames: new Set(),
|
|
149
|
+
secretFieldPatterns: [],
|
|
150
|
+
redactStackTraces: false,
|
|
151
|
+
redactPatterns: [],
|
|
152
|
+
sensitivePatterns: [],
|
|
153
|
+
forbiddenFields: new Set(),
|
|
154
|
+
}, envLevel);
|
|
155
|
+
}
|
|
72
156
|
// ============================================================================
|
|
73
157
|
// Severity Level Utilities
|
|
74
158
|
// ============================================================================
|
|
@@ -143,39 +227,47 @@ export class PolicyAwareLogProcessor {
|
|
|
143
227
|
if (!shouldExportSeverity(logRecord.severityNumber, this.policy.exportMode)) {
|
|
144
228
|
return;
|
|
145
229
|
}
|
|
146
|
-
// Sanitize the log record in place before forwarding
|
|
147
|
-
// The logRecord is actually an SdkLogRecord at runtime, we mutate it directly
|
|
230
|
+
// Sanitize the log record in place before forwarding (policy-driven; empty config = passthrough)
|
|
148
231
|
this.sanitizeLogRecord(logRecord);
|
|
149
232
|
// Forward to delegate - cast is safe because logRecord is SdkLogRecord at runtime
|
|
150
233
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
151
234
|
this.delegate.onEmit(logRecord, context);
|
|
152
235
|
}
|
|
236
|
+
/** True when policy has no sanitization (cloud passthrough). */
|
|
237
|
+
isPassthroughPolicy() {
|
|
238
|
+
const p = this.policy;
|
|
239
|
+
return (p.messageSecretPatterns.length === 0 &&
|
|
240
|
+
p.secretFieldNames.size === 0 &&
|
|
241
|
+
p.secretFieldPatterns.length === 0 &&
|
|
242
|
+
!p.redactStackTraces &&
|
|
243
|
+
p.forbiddenFields.size === 0 &&
|
|
244
|
+
p.sensitivePatterns.length === 0 &&
|
|
245
|
+
p.redactPatterns.length === 0);
|
|
246
|
+
}
|
|
153
247
|
/**
|
|
154
248
|
* Sanitize a log record for export.
|
|
155
249
|
* Mutates the log record in place to preserve OTEL SDK internal state.
|
|
250
|
+
* All redaction is policy-driven; when config is empty/off, content is left as-is.
|
|
156
251
|
*/
|
|
157
252
|
sanitizeLogRecord(logRecord) {
|
|
253
|
+
const p = this.policy;
|
|
158
254
|
// Sanitize body - mutate in place
|
|
159
255
|
if (typeof logRecord.body === "string") {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (this.containsStackTrace(sanitizedBody)) {
|
|
168
|
-
// Use setAttribute pattern for LogRecord mutation
|
|
169
|
-
logRecord.body =
|
|
170
|
-
redactStackTrace(sanitizedBody);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
logRecord.body =
|
|
174
|
-
sanitizeLogMessage(sanitizedBody);
|
|
256
|
+
let body = p.messageSecretPatterns.length > 0
|
|
257
|
+
? redactSensitivePatterns(logRecord.body, p.messageSecretPatterns)
|
|
258
|
+
: logRecord.body;
|
|
259
|
+
body = redactSensitivePatterns(body, p.sensitivePatterns);
|
|
260
|
+
body = applyRedactPatterns(body, p.redactPatterns);
|
|
261
|
+
if (p.redactStackTraces && containsStackTrace(body)) {
|
|
262
|
+
body = redactStackTraceForExport(body, p.sensitivePatterns, p.messageSecretPatterns);
|
|
175
263
|
}
|
|
264
|
+
logRecord.body = body;
|
|
176
265
|
}
|
|
177
266
|
else if (logRecord.body && typeof logRecord.body === "object") {
|
|
178
|
-
|
|
267
|
+
if (!this.isPassthroughPolicy()) {
|
|
268
|
+
logRecord.body =
|
|
269
|
+
sanitizeLogObjectForExport(logRecord.body, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
270
|
+
}
|
|
179
271
|
}
|
|
180
272
|
// Sanitize attributes - mutate in place
|
|
181
273
|
const attrs = logRecord.attributes;
|
|
@@ -190,24 +282,6 @@ export class PolicyAwareLogProcessor {
|
|
|
190
282
|
}
|
|
191
283
|
}
|
|
192
284
|
}
|
|
193
|
-
/**
|
|
194
|
-
* Check if a string contains a stack trace.
|
|
195
|
-
*/
|
|
196
|
-
containsStackTrace(text) {
|
|
197
|
-
// Node.js stack traces
|
|
198
|
-
if (/at .+\(.+:\d+:\d+\)/.test(text))
|
|
199
|
-
return true;
|
|
200
|
-
// Go stack traces
|
|
201
|
-
if (/goroutine \d+ \[.+\]:/.test(text))
|
|
202
|
-
return true;
|
|
203
|
-
// Python stack traces
|
|
204
|
-
if (/File ".+", line \d+/.test(text))
|
|
205
|
-
return true;
|
|
206
|
-
// Java stack traces
|
|
207
|
-
if (/at \w+\.\w+\(.+\.java:\d+\)/.test(text))
|
|
208
|
-
return true;
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
285
|
/**
|
|
212
286
|
* Sanitize log attributes.
|
|
213
287
|
*/
|
|
@@ -215,29 +289,44 @@ export class PolicyAwareLogProcessor {
|
|
|
215
289
|
if (!attributes) {
|
|
216
290
|
return {};
|
|
217
291
|
}
|
|
292
|
+
const p = this.policy;
|
|
218
293
|
const sanitized = {};
|
|
219
294
|
for (const [key, value] of Object.entries(attributes)) {
|
|
220
295
|
const lowerKey = key.toLowerCase();
|
|
221
|
-
|
|
222
|
-
|
|
296
|
+
if (isSecretFieldFromPolicy(key, p.secretFieldNames, p.secretFieldPatterns)) {
|
|
297
|
+
sanitized[key] = REDACTED_PLACEHOLDER;
|
|
223
298
|
continue;
|
|
224
299
|
}
|
|
225
|
-
|
|
226
|
-
if (isSecretField(key)) {
|
|
300
|
+
if (p.forbiddenFields.has(lowerKey)) {
|
|
227
301
|
continue;
|
|
228
302
|
}
|
|
229
|
-
// Sanitize string values
|
|
230
303
|
if (typeof value === "string") {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
304
|
+
let str = p.messageSecretPatterns.length > 0
|
|
305
|
+
? redactSensitivePatterns(value, p.messageSecretPatterns)
|
|
306
|
+
: value;
|
|
307
|
+
str = redactSensitivePatterns(str, p.sensitivePatterns);
|
|
308
|
+
str = applyRedactPatterns(str, p.redactPatterns);
|
|
309
|
+
if (p.redactStackTraces) {
|
|
310
|
+
if (isStackAttributeKey(key)) {
|
|
311
|
+
sanitized[key] = containsStackTrace(str)
|
|
312
|
+
? redactStackTraceForExport(str, p.sensitivePatterns, p.messageSecretPatterns)
|
|
313
|
+
: STACK_TRACE_REDACTED_PLACEHOLDER;
|
|
314
|
+
}
|
|
315
|
+
else if (containsStackTrace(str)) {
|
|
316
|
+
sanitized[key] = redactStackTraceForExport(str, p.sensitivePatterns, p.messageSecretPatterns);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
sanitized[key] = str;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
sanitized[key] = str;
|
|
236
324
|
}
|
|
237
|
-
sanitized[key] = sanitizeLogMessage(sanitizedValue);
|
|
238
325
|
}
|
|
239
|
-
else if (value &&
|
|
240
|
-
|
|
326
|
+
else if (value &&
|
|
327
|
+
typeof value === "object" &&
|
|
328
|
+
!this.isPassthroughPolicy()) {
|
|
329
|
+
sanitized[key] = sanitizeLogObjectForExport(value, p.forbiddenFields, 0, p.sensitivePatterns);
|
|
241
330
|
}
|
|
242
331
|
else {
|
|
243
332
|
sanitized[key] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAmB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../src/node/log-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-client.d.ts","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics-client.d.ts","sourceRoot":"","sources":["../../src/node/metrics-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAuHrD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,aAAa;IAMZ,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,WAAW,CAAkC;gBAExB,KAAK,EAAE,KAAK;IAEzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAapC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IA2BhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAaxC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,IAAI;IAIlE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3D;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAGpE"}
|