Policy Controls Catalog
Verdictan has policy controls for requests, tools, output, routing, and audit paths. This catalog shows the primary controls. It also gives starter snippets.
Request, tool, and routing controls
data-routing-policy: filter which configured providers can receive traffic.prompt-injection: detect jailbreak and prompt-injection signals before upstream calls.pii-detector: redact or block sensitive identifiers and apply buffered response redaction.hipaa-phi-detector: add HIPAA-style PHI heuristics on top of the shared redaction pipeline.rbac: enforce role, identity, and sensitivity-based access rules.agent-firewall: allow or deny tool use and enforce per-request action or transaction limits.cjis-mode: enforce CJIS-style request constraints.dlp-filter: apply broader data-loss-prevention pattern controls.safety-filter: block or escalate dangerous content patterns.student-privacy: protect student-data scenarios.case-privacy: protect case-sensitive justice and legal data.itar-ear-filter: block export-control reference terms.entity-list-filter: match denied or watch-listed entities.dual-use-filter: detect dual-use and sensitive capability signals.embedding-detector: semantic detector that can be declared directly in config.
Output controls
quality-scorer: calculate and act on quality thresholds.human-oversight: return an escalated result and do not deliver assistant content.citation-verifier: evaluate groundedness against request context.mnpi-filter: block generated output containing configured MNPI phrases.financial-compliance: add finance-oriented compliance behavior.legal-privilege: block generated output containing privilege markers.upl-filter: apply unauthorized-practice-of-law controls.bias-monitor: escalate the built-in HR-oriented bias signal when it is equal to or more than the configured threshold.response-rewriter: apply deterministic response transformations after the upstream model returns.healthcare-compliance: enforce medical blocked patterns and disclaimers.
Audit and evidence
audit-logger: add an allow-only audit marker to the active chain. Configure storage and retention through their owning workflows.
Starter configurations
The sections below give correct starter YAML for standard combinations.
PII redaction with audit logging
policies:
chain:
- pii-detector
- audit-logger
policy:
pii-detector:
action: redact
redaction:
marker_format: label
include_metadata: true
audit-logger: {}
Prompt-injection protection
policies:
chain:
- prompt-injection
- audit-logger
policy:
prompt-injection:
attack_patterns:
- "ignore.*previous.*instructions"
- "forget.*system.*prompt"
encoding:
decode_base64: true
normalize_unicode: true
detect_homoglyphs: true
boundaries:
enforce_delimiters: true
reject_fake_boundaries: true
Agent firewall with role-based tool access
policies:
chain:
- audit-logger
- agent-firewall
- rbac
policy:
agent-firewall:
tools:
roles:
analyst:
allowed:
- search
- summarize
denied:
- execute_code
- shell_command
rbac:
require_auth: true
roles:
analyst:
allowed_tools:
- search
- summarize
denied_tools:
- execute_code
- shell_command
audit-logger: {}
The two role controls use the role in the authenticated policy identity. They do not trust a caller-supplied role header.
Healthcare redaction stack
providers:
targets:
- id: healthcare-provider
provider: openai
model: your-openai-model
secret_key_ref:
env: VERDICTAN_OPENAI_API_KEY
data_policy:
zero_data_retention: true
policies:
chain:
- audit-logger
- data-routing-policy
- pii-detector
- hipaa-phi-detector
- healthcare-compliance
policy:
data-routing-policy:
require_zero_data_retention: true
on_no_compliant_provider: block
pii-detector:
action: redact
healthcare_mode: true
pci_mode: false
redaction:
marker_format: label
include_metadata: true
hipaa-phi-detector:
action: redact
healthcare-compliance: {}
audit-logger: {}
Finance output controls
policies:
chain:
- audit-logger
- mnpi-filter
- financial-compliance
- quality-scorer
policy:
mnpi-filter:
detect_patterns:
- "earnings before announcement"
- "merger not public"
financial-compliance: {}
quality-scorer:
min_output_chars: 100
min_sentences: 2
audit-logger: {}
Use stream: false for this output-control stack.
Testing a policy config
After you write the config, validate it with the CLI. Then, send a test request.
verdictan policy lint --file policy-config.yaml
- cURL
- Python
- Node.js
curl http://localhost:41002/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VERDICTAN_REQUEST_TOKEN" \
-d '{
"model": "your-openai-model",
"messages": [
{"role": "user", "content": "My SSN is 123-45-6789. Summarize the report."}
]
}'
import os
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:41002/v1",
api_key=os.environ["VERDICTAN_REQUEST_TOKEN"],
)
response = client.chat.completions.create(
model="your-openai-model",
messages=[{"role": "user", "content": "My SSN is 123-45-6789. Summarize the report."}],
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const requestToken = process.env.VERDICTAN_REQUEST_TOKEN;
if (!requestToken) {
throw new Error("VERDICTAN_REQUEST_TOKEN is required");
}
const client = new OpenAI({
baseURL: "http://localhost:41002/v1",
apiKey: requestToken,
});
const response = await client.chat.completions.create({
model: "your-openai-model",
messages: [{ role: "user", content: "My SSN is 123-45-6789. Summarize the report." }],
});
console.log(response.choices[0].message.content);
Important limitations
- The catalog shows primary controls, but the runtime manages some behavior.
- For example,
human-oversightacts only onaction: escalate.language-validatorenforces input checks only. - These controls do not give complete compliance guarantees. Customers continue to own legal review, operating processes, and provider governance.
- Use the declarative config reference as the source of truth for specified accepted shapes.
Next steps
- Declarative Config Reference — Full config schema for each policy
- Config Testing — validate selected controls before rollout
- Overview — How policies execute in the gateway