# `Threadline.Capture.RedactionPolicy`
[🔗](https://github.com/szTheory/threadline/blob/v0.9.0/lib/threadline/capture/redaction_policy.ex#L1)

Validates trigger redaction options at codegen time (Mix / `TriggerSQL`).

Excludes and masks are mutually exclusive per column: a column cannot appear
in both `:exclude` and `:mask`.

# `default_placeholder`

Default JSON-safe mask token baked into generated SQL.

# `validate!`

Validates `:exclude`, `:mask`, and optional `:mask_placeholder`.

Raises `ArgumentError` if `exclude` and `mask` intersect (message mentions both
`"exclude"` and `"mask"` and lists an offending column).

# `validate_placeholder!`

Validates a mask placeholder string for static SQL embedding.

Raises if empty, longer than 200, or contains ASCII
control characters (message contains `"placeholder"`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
