UNPKG

@embrace-io/web-sdk

Version:
57 lines (56 loc) 1.67 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions"); //#region src/sdk/defaultAttributeScrubbers.ts const HOST_CREDENTIALS_REGEX = /\/\/(.+):(.+)@(.+)\//; const DEFAULT_SENSITIVE_TOKENS = [ "AWSAccessKeyId", "Signature", "sig", "`X-Goog-Signature", "password", "auth", "pw", "token" ]; const scrubURL = ({ value, queryParamRegex, scrubPath, scrubQuery }) => { let scrubbed = value; if (scrubPath) scrubbed = scrubbed.replace(HOST_CREDENTIALS_REGEX, "//REDACTED:REDACTED@$3/"); if (scrubQuery) scrubbed = scrubbed.replaceAll(queryParamRegex, "$1$2=REDACTED"); return scrubbed; }; const getDefaultAttributeScrubbers = (additionalSensitiveQueryTokens) => { const sensitiveQueryTokens = [...DEFAULT_SENSITIVE_TOKENS, ...additionalSensitiveQueryTokens || []]; const queryParamRegex = new RegExp(`(^|&|\\?)(${sensitiveQueryTokens.join("|")})=[^&]+`, "g"); return [ { key: _opentelemetry_semantic_conventions.ATTR_URL_FULL, scrub: (value) => scrubURL({ value, queryParamRegex, scrubPath: true, scrubQuery: true }) }, { key: _opentelemetry_semantic_conventions.ATTR_URL_PATH, scrub: (value) => scrubURL({ value, queryParamRegex, scrubPath: true, scrubQuery: false }) }, { key: _opentelemetry_semantic_conventions.ATTR_URL_QUERY, scrub: (value) => scrubURL({ value, queryParamRegex, scrubPath: false, scrubQuery: true }) } ]; }; //#endregion exports.getDefaultAttributeScrubbers = getDefaultAttributeScrubbers; //# sourceMappingURL=defaultAttributeScrubbers.cjs.map