Dual-Use Filter
The dual-use-filter policy checks content against dual-use terms. If
blocked_terms is missing, the gateway uses a built-in list. This term check
does not determine an item's export classification or legal status.
Configuration
pack:
name: dual-use-filter-example
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
policy:
dual-use-filter:
blocked_terms:
- centrifuge
- precursor chemical
- maraging steel
- uranium enrichment
action: block
fuzzy_matching: true
max_distance: 2
Fields
| Field | Type | Description | Default |
|---|---|---|---|
blocked_terms | string[] | Terms to match. If not supplied, the gateway uses its built-in reference list. | built-in list |
action | block | redact | block stops the request. redact starts the gateway redaction path. | block |
fuzzy_matching | boolean | Enable near-match detection. | false |
max_distance | integer | Maximum edit distance used with fuzzy matching. | 1 |
Built-in reference terms
The default list includes a broad starter set such as:
weaponexplosivebioweaponnerve agentdual-use/dual usenato restricted,nato confidential,nato secretprecursor chemicalcyber surveillanceintrusion softwarenuclear materialcentrifugeuranium enrichmentplutoniumheavy watermaraging steelcarbon fibre/carbon fiber
Use cases
Block with custom terms
pack:
name: export-control
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
- entity-list-filter
- itar-ear-filter
policy:
dual-use-filter:
blocked_terms:
- uranium hexafluoride
- thermal imaging
- night vision
action: block
Use the built-in defaults
pack:
name: default-dual-use-guard
version: 1.0.0
enabled: true
policies:
chain:
- dual-use-filter
policy:
dual-use-filter: {}
How it works
- Verdictan makes one text buffer from the input message content.
- It loads
blocked_terms, or the built-in reference list whenblocked_termsis not supplied. - It checks for specified matches without case sensitivity.
- It can also examine fuzzy matches at
max_distanceor less. - On a match, it returns the
actionverdict.
Best practices
- Keep
blocked_termsnarrow when you override the defaults. - Use
blockwhen deterministic enforcement of the matched term is necessary. - The
redactverdict uses the gateway redaction path. This policy does not give a special replacement marker. - Combine it with other term controls only as a signal layer. Complete the necessary export-control review external to this policy.
Next steps
- Entity List Filter — configured entity-name matching
- ITAR/EAR Filter — Export-control term blocking
- Embedding Detector — Similarity-based matching
- DLP Filter — Custom regex and term controls