feat(core-shared): PII scrub processors for spans + log records
This commit is contained in:
@@ -1,47 +0,0 @@
|
||||
// packages/core-shared/src/instrumentation/sentry/pii-fields.ts
|
||||
|
||||
// R32 — substring match on event keys (case-insensitive)
|
||||
export const PII_KEY_SUBSTRINGS = [
|
||||
"email",
|
||||
"password",
|
||||
"token",
|
||||
"cookie",
|
||||
"authorization",
|
||||
"set-cookie",
|
||||
"x-api-key",
|
||||
"apikey",
|
||||
"api_key",
|
||||
"secret",
|
||||
"ipaddress",
|
||||
] as const;
|
||||
|
||||
// R33 — substring match on URL query-param keys (case-insensitive)
|
||||
export const PII_QUERY_PARAM_SUBSTRINGS = [
|
||||
"token",
|
||||
"email",
|
||||
"password",
|
||||
"key",
|
||||
"sig",
|
||||
"signature",
|
||||
"access_token",
|
||||
"accesstoken",
|
||||
"secret",
|
||||
] as const;
|
||||
|
||||
export const REDACTED_VALUE = "[redacted]" as const;
|
||||
export const REDACTED_IP = "[redacted-ip]" as const;
|
||||
|
||||
// IPv4: simple dotted-quad; IPv6: any colon-separated hex with at least one ::
|
||||
export const IPV4_REGEX = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g;
|
||||
export const IPV6_REGEX =
|
||||
/\b(?:[0-9a-fA-F]{1,4}:){2,7}[0-9a-fA-F]{1,4}\b|::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}/g;
|
||||
|
||||
export function keyContainsPii(key: string): boolean {
|
||||
const lower = key.toLowerCase();
|
||||
return PII_KEY_SUBSTRINGS.some((s) => lower.includes(s));
|
||||
}
|
||||
|
||||
export function queryParamContainsPii(key: string): boolean {
|
||||
const lower = key.toLowerCase();
|
||||
return PII_QUERY_PARAM_SUBSTRINGS.some((s) => lower.includes(s));
|
||||
}
|
||||
Reference in New Issue
Block a user