kValueScrubExemptKeys top-level constant
Map keys whose String value is an identifier/locator that must reach the wire VERBATIM — value-pattern scrubbing is skipped for these. They are NOT secret (key-name redaction still applies to anything on the denylist), but running PII regexes over them would corrupt legitimate data:
- stack-frame fields (
filename/absPath/function) often embed paths that can look like emails/IPs; - release/version/sdk/platform/dist fields are build identifiers;
- URLs/paths/hosts have their own redaction story and frequently contain IP-shaped segments;
- trace/span/request ids and timestamps are hex/opaque tokens.
Exact, case-sensitive match on AllStak's own camelCase wire field names.
Implementation
const Set<String> kValueScrubExemptKeys = <String>{
// Stack frames (see _parseDartFrames): never corrupt symbolication input.
'filename',
'absPath',
'function',
'lineno',
'colno',
// Release / build / SDK identity.
'release',
'version',
'dist',
'sdkName',
'sdkVersion',
'sdk.name',
'sdk.version',
'commitSha',
'commit.sha',
'commit.branch',
'branch',
'platform',
'device.platform',
'environment',
// URLs / locators (own redactor / IP-shaped segments are legitimate here).
'url',
'path',
'host',
'href',
// Trace / span / request correlation ids + timestamps (opaque tokens).
'traceId',
'requestId',
'spanId',
'parentSpanId',
'errorFingerprint',
'timestamp',
// SDK's own release-health session id (also in kCorrelationAllowlist).
'sessionId',
};