Preface¶
In DSH, session telemetry may pass through multiple listeners and deployment rules before being sent to the backend. For security-sensitive profiles, developers need to reduce the risk of sensitive values being exposed in the outbound telemetry copy without rewriting the canonical session log.
Below, we introduce dsh-telemetry-redactor. It is maintained by 030611, licensed under MIT, and is a community-maintained project—not an official DeepSeek project.
What This Is¶
dsh-telemetry-redactor is a minimal DeepSeek Harness Profile Bundle used to redact sensitive values before the backend receives session telemetry.
It attaches to the official session-telemetry/record waterfall, calls next(), allowing other deployment rules to continue composing, and then returns a new recursively redacted record. It only modifies the outbound copy and does not rewrite the canonical session log.
This bundle does not add, replace, or enable a telemetry backend.
Redaction Scope¶
It covers three categories of content:
- Values under high-risk key names, such as:
authorization
cookie
credential
password
secret
token
apiKey
access_token
clientSecret
privateKey
-
Bearer and Basic authorization values embedded in strings.
-
Common credential formats, including
sk-..., GitHub tokens, Slack tokens, JWT-like triples, andtoken=.../api_key: ...assignments.
It preserves telemetry counts and fields such as inputTokens, output_tokens, tokenUsage, tokenCount, contextTokenCount, and the plain field tokenizer.
If a key name matches a sensitive key, the plugin redacts the entire value. This policy prioritizes security over preserving structure beneath credential fields.
Redaction occurs on the telemetry capture path, is synchronous, and recursively processes up to 64 nested containers.
Installation and Enablement¶
First, install it into a specified profile:
dsh plugin --profile web add dsh-telemetry-redactor
Then, check the resolved configuration:
dsh --profile web --dump-config
The dump must include the inserted telemetry-redactor row.
Typical Configuration¶
It has only one configuration item: replacement, with a default value of [REDACTED]. It must contain 1 to 128 characters and must not itself match a supported credential pattern.
Example:
- id: telemetry-redactor
config:
replacement: '[TELEMETRY-REDACTED]'
Key and pattern rules are fixed security behavior and cannot be disabled via configuration.
Boundaries and Considerations¶
fail-closed here only means that this coordinator will withhold a failing export copy and then continue the agent loop. It is not a guarantee that no telemetry path or listener order can bypass it.
Listeners are prepended, so this plugin can typically wrap deployment rules mounted before or after it and redact their final output. However, in security-sensitive deployments, a deliberately prepended outer listener could still add content after this plugin; the full waterfall listener set should be reviewed.
Unknown secret formats with no sensitive keys and no matches against recognized string patterns may pass through. Do not treat this plugin as a guarantee of completeness for arbitrary unknown credential formats.
Accessor properties and non-plain objects are rejected rather than read or silently converted. Proxies may execute or throw from reflection traps before the plugin inspects content.
dsh.plugin.json is supplemental community metadata. DSH installation is controlled by the dsh.bundle field in package.json and cordis.patch.yml.
Use Cases¶
It is suitable for deployments that already have a telemetry backend configured and want to reduce the risk of known sensitive keys and common credential patterns being exposed in the outbound telemetry copy.
It is not a substitute for all security controls. The plugin runs with the current dsh process permissions; review the source code and license before installation.
Links¶
GitHub repository:
https://github.com/030611/dsh-telemetry-redactor