Description
Automated Secret Redaction protects knowledge ingestion, agent diagnostics, connector content, and tool records from retaining recognizable credentials. A dependency-free rule pipeline detects common cloud, source-control, payment, chat, AI-provider, JWT, private-key, authorization-header, dotenv, inline-token, and database-connection patterns. Matches are replaced with grep-friendly rule identifiers, while callers receive the scrubbed value, finding locations, per-rule counts, and an optional strict-mode quarantine decision.
The entity-aware dispatcher applies the right rule set to known free-text fields, returns a scrubbed entity, can request an opt-in LLM review, emits redaction telemetry, and persists one evidence row per affected field and rule through an injected writer. A three-tier registry loads built-in, company, and user patterns in order, with higher tiers able to override a lower tier by stable rule identifier.
Selling Points
- Reduces the chance that API keys, bearer tokens, private keys, and embedded connection credentials survive ingestion or diagnostic capture.
- Covers heterogeneous content through typed entity field maps rather than trusting each consumer to remember which fields need inspection.
- Produces auditable rule counts without preserving the original secret value.
- Supports strict quarantine for workflows that should stop whenever a credential-like value is detected.
- Lets companies and users add or override patterns through a formal registry instead of forking the shared catalog.
User Story
A company syncs meeting transcripts and coding-agent records into Dots. Before persistence, the scrubber finds an inline bearer token and a dotenv credential, replaces each with named redaction markers, records which entity fields were affected, and quarantines the strict-mode item for review. The company later registers a private credential pattern at its own tier. The team walks away with usable content and evidence without storing the raw secrets.
Extension Surface
This capability is pluggable. packages/scrub/src/registry.ts exports ScrubRegistry.registerPattern, with explicit company and user tiers, override order, conflict handling, and applicability filters. packages/scrub/src/types.ts publishes the SecretPattern and ScrubRule contracts. New patterns can therefore be added without modifying packages/scrub/src/rules.ts or copying the core scrub function.
Capabilities & Limits
- Redacts built-in credential families and returns findings, counts, replacement text, and quarantine posture.
- Scrubs typed entity fields, persists redaction evidence, and optionally invokes an LLM reviewer.
- Supports built-in, company, and user pattern registration with deterministic overrides.
- Regex detection can produce false positives or miss novel secret formats; an optional review seam mitigates but does not eliminate that limit.
- Production persistence requires a real writer supplied by the composition root.
Implementation Map
packages/scrub/src/rules.tspackages/scrub/src/scrub.tspackages/scrub/src/scrub-entity.tspackages/scrub/src/registry.tspackages/scrub/src/types.ts