This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: otel-dynamic-pii-scrubbing-baggage-fencing

OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing

Telemetry ingestion gateways MUST enforce schema-aware PII masking and W3C Baggage boundary fencing via OTTL (OpenTelemetry Transformation Language) transform processors before routing to cold storage sinks. Unfenced baggage propagation and unscrubbed span/log attributes violate PCI-DSS, HIPAA, and GDPR by persisting plaintext credentials, auth tokens, and identity markers across audit boundaries.

Prohibited Anti-Pattern: Unfenced Ingestion Gateway Persisting Plaintext PII and Poisoned Baggage Context to Cold Storage

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing - Telemetry ingestion gateways MUST enforce schema-aware PII masking and W3C Baggage boundary fencing via OTTL (OpenTelemetry Transformation Language) transform processors before routing to cold storage sinks. Unfenced baggage propagation and unscrubbed span/log attributes violate PCI-DSS, HIPAA, and GDPR by persisting plaintext credentials, auth tokens, and identity markers across audit boundaries.
globs: **/otel-collector*.{yaml,yml}, **/collector/**/*.{yaml,yml}, k8s/**/otel-*.{yaml,yml}, deployments/**/otel*.{yaml,yml}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/otel-dynamic-pii-scrubbing-baggage-fencing"
---

# OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Unfenced Ingestion Gateway Persisting Plaintext PII and Poisoned Baggage Context to Cold Storage

## System Constraints
You are a Principal Software Architect enforcing OpenTelemetry Collector dynamic PII scrubbing and W3C baggage fencing. Mandate deterministic OTTL-based schema sanitization, drop untrusted propagated context at the gateway perimeter, and ensure compliance with zero-trust observability architectures.

## Strict Guidelines
- Engineers MUST ALWAYS sanitize span attributes, log bodies, and metric labels using OTTL transform processors prior to batching and export.
- Engineers MUST NOT map raw incoming W3C Baggage headers unconditionally into span attributes or cold-storage indices.
- Ingress collectors MUST enforce an explicit allowlist for propagated Baggage keys, dropping unauthorized contextual metadata at the network boundary.
- Processors MUST SHA-256 hash or redact sensitive key names and payload patterns (e.g., authorization headers, credit card numbers, SSNs, JWTs).
- Dynamic PII scrubbing pipelines MUST execute before sampler processors and dead-letter queues to prevent data leakage in intermediate failure buffers.

## Bad vs Good Implementations
### OTel Collector Transform Processor Baggage Fencing and Attribute Masking

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Directly feeding uninspected traces to long-term storage allows arbitrary HTTP headers, authorization bearer tokens, and un-fenced incoming W3C Baggage metadata to enter audit logs and cold storage unchecked.
```yaml
processors:
  batch:
    timeout: 1s
    send_batch_size: 1024

pipelines:
  traces:
    receivers: [otlp]
    # VIOLATION: Zero PII scrubbing or baggage fencing prior to long-term S3 export
    processors: [batch]
    exporters: [otlp/cold_storage_s3]
```

#### Production Standard (Correct)
> **Standard**: Uses the OTTL transform processor to enforce strict attribute key filtering, regex-based credential masking, one-way cryptographic hashing of user identifiers, and baggage isolation before export.
```yaml
processors:
  transform/pii_and_baggage_fence:
    error_mode: propagate
    trace_statements:
      - context: span
        statements:
          # 1. Baggage Fencing: Strip non-allowlisted baggage attributes
          - keep_keys(attributes, ["app.environment", "tenant.id", "transaction.type", "http.status_code", "http.method", "http.route"])
          # 2. Dynamic PII Redaction: Mask sensitive tokens and credentials
          - replace_pattern(attributes["http.request.header.authorization"], "Bearer (.*)", "Bearer [REDACTED]")
          - replace_pattern(attributes["db.statement"], "(?i)(password|secret|key|token)\\s*=\\s*'[^']*'", "$1='[REDACTED]'")
          - set(attributes["user.email"], SHA256(attributes["user.email"])) where attributes["user.email"] != nil
    log_statements:
      - context: log
        statements:
          # 3. Payload Body Sanitization
          - replace_all_patterns(attributes, "value", "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b", "[EMAIL_REDACTED]")

pipelines:
  traces:
    receivers: [otlp]
    processors: [transform/pii_and_baggage_fence, batch]
    exporters: [otlp/cold_storage_s3]
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing

OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing defines an industrial-grade behavioral standard for devops engineering. Telemetry ingestion gateways MUST enforce schema-aware PII masking and W3C Baggage boundary fencing via OTTL (OpenTelemetry Transformation Language) transform processors before routing to cold storage sinks. Unfenced baggage propagation and unscrubbed span/log attributes violate PCI-DSS, HIPAA, and GDPR by persisting plaintext credentials, auth tokens, and identity markers across audit boundaries. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Unfenced Ingestion Gateway Persisting Plaintext PII and Poisoned Baggage Context to Cold Storage Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftUnfenced Ingestion Gateway Persisting Plaintext PII and Poisoned Baggage Context to Cold StorageCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS sanitize span attributes, log bodies, and metric labels using OTTL transform processors prior to batching and export.

Engineers MUST ALWAYS sanitize span attributes, log bodies, and metric labels using OTTL transform processors prior to batching and export.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT map raw incoming W3C Baggage headers unconditionally into span attributes or cold-storage indices.

Engineers MUST NOT map raw incoming W3C Baggage headers unconditionally into span attributes or cold-storage indices.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Ingress collectors MUST enforce an explicit allowlist for propagated Baggage keys, dropping unauthorized contextual metadata at the network boundary.

Ingress collectors MUST enforce an explicit allowlist for propagated Baggage keys, dropping unauthorized contextual metadata at the network boundary.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Processors MUST SHA-256 hash or redact sensitive key names and payload patterns (e.g., authorization headers, credit card numbers, SSNs, JWTs).

Processors MUST SHA-256 hash or redact sensitive key names and payload patterns (e.g., authorization headers, credit card numbers, SSNs, JWTs).

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Dynamic PII scrubbing pipelines MUST execute before sampler processors and dead-letter queues to prevent data leakage in intermediate failure buffers.

Dynamic PII scrubbing pipelines MUST execute before sampler processors and dead-letter queues to prevent data leakage in intermediate failure buffers.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is OpenTelemetry Gateway Schema-Aware Dynamic PII Scrubbing and Baggage Fencing critical for AI coding assistants?

Telemetry ingestion gateways MUST enforce schema-aware PII masking and W3C Baggage boundary fencing via OTTL (OpenTelemetry Transformation Language) transform processors before routing to cold storage sinks. Unfenced baggage propagation and unscrubbed span/log attributes violate PCI-DSS, HIPAA, and GDPR by persisting plaintext credentials, auth tokens, and identity markers across audit boundaries. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Unfenced Ingestion Gateway Persisting Plaintext PII and Poisoned Baggage Context to Cold Storage) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

OpenTelemetry