System Policies Reference
Reference page. This is the canonical inventory of every built-in policy, its category, and its default action. Use it to look up what ships out of the box before you write a custom policy. New to policies? Start with Policy-as-Code and Policy Hierarchy .
AxonFlow ships with 79 built-in system policies :
69 pattern-based system policies evaluated by the Agent for low-latency enforcement
10 condition-based system policies evaluated by the Orchestrator for context-aware governance
These policies give engineers a strong production baseline for LLM security, PII protection, prompt-injection defense, secret detection, and runtime compliance controls.
System policies are immutable (tier=system) — you cannot edit or delete them, but Enterprise customers can override their action or disable them per organization (see Customizing System Policies ).
Actions are governance-profile-driven
The Action column below is the default profile action — the out-of-the-box posture (ADR-036, v6.2.0+). In the default profile, SQL injection, PII, and sensitive-data detections warn (the request flows through unchanged but the detection is recorded), while the unambiguously dangerous classes block : admin-table access, Indonesian KTP, and prompt-injection ship as block . Singapore PII ships as redact .
This is deliberate (observe-first): false positives that hard-block legitimate traffic teach users to bypass the system. To harden enforcement, switch profiles or set per-category env vars — e.g. AXONFLOW_PROFILE=strict makes PII/SQLi/sensitive-data block , and PII_ACTION=redact / SQLI_ACTION=block flip individual categories. See Governance Profiles for the full dev / default / strict / compliance matrix. Enterprise customers can additionally override any single policy's action per organization.
Overview
Category Evaluation Count Severity Range Default Action Security - SQL Injection (security-sqli) Pattern-Based (Agent) 37 Critical - Medium Warn Security - Admin Access (security-admin) Pattern-Based (Agent) 4 High - Medium Block Security - Dangerous Instructions (security-dangerous) Pattern-Based (Agent) 4 High Block Sensitive Data / Secrets (sensitive-data) Pattern-Based (Agent) 6 High Warn PII - Global (pii-global) Pattern-Based (Agent) 7 Critical - Low Warn / Log PII - United States (pii-us) Pattern-Based (Agent) 2 Critical Warn PII - European Union (pii-eu) Pattern-Based (Agent) 1 Critical Warn PII - India (pii-india) Pattern-Based (Agent) 2 Critical Warn PII - Singapore (pii-singapore) Pattern-Based (Agent) 5 Critical - Low Redact PII - Indonesia (pii-indonesia) Pattern-Based (Agent) 1 Critical Block Risk Management (dynamic-risk) Condition-Based (Orchestrator) 2 - Block / Warn Compliance (dynamic-compliance) Condition-Based (Orchestrator) 3 - Block Security Controls (dynamic-security) Condition-Based (Orchestrator) 2 - Block Cost Management (dynamic-cost) Condition-Based (Orchestrator) 2 - Block / Warn Access Control (dynamic-access) Condition-Based (Orchestrator) 1 - Block
Pattern-based total: 69 · Condition-based total: 10 · All system policies: 79.
"Secret/unsafe-code" detection
Generic secret detection (API keys, tokens, passwords, connection strings) ships as the sensitive-data category below. Language-specific code secret/unsafe patterns (e.g. provider-specific API-key formats, eval()/pickle) are surfaced today only as audit metadata on generated-code responses, not as enforced policies. Enforced agent-traffic code-secret/unsafe-code detection is tracked as potential net-new work, not a shipped system policy.
Pattern-Based System Policies
Security - SQL Injection (security-sqli)
37 patterns covering all major SQL injection techniques.
UNION-Based Injection (2 patterns)
ID Name Severity Action sys_sqli_union_selectUNION SELECT Detection Critical Warn sys_sqli_union_injectionUNION Injection After Termination Critical Warn
Boolean-Based Blind Injection (3 patterns)
ID Name Severity Action sys_sqli_or_trueOR True Condition High Warn sys_sqli_or_stringOR String Condition High Warn sys_sqli_and_falseAND False Condition High Warn
Time-Based Blind Injection (4 patterns)
ID Name Severity Action sys_sqli_sleepMySQL SLEEP Function Critical Warn sys_sqli_waitforSQL Server WAITFOR DELAY Critical Warn sys_sqli_pg_sleepPostgreSQL pg_sleep Critical Warn sys_sqli_benchmarkMySQL BENCHMARK Function Critical Warn
Error-Based Injection (3 patterns)
ID Name Severity Action sys_sqli_extractvalueEXTRACTVALUE Function High Warn sys_sqli_updatexmlUPDATEXML Function High Warn sys_sqli_convert_intCONVERT INT Injection High Warn
Stacked Queries (5 patterns)
ID Name Severity Action sys_sqli_stacked_dropStacked DROP Statement Critical Warn sys_sqli_stacked_deleteStacked DELETE Statement Critical Warn sys_sqli_stacked_updateStacked UPDATE Statement Critical Warn sys_sqli_stacked_insertStacked INSERT Statement Critical Warn sys_sqli_stacked_execStacked EXEC Statement Critical Warn
ID Name Severity Action sys_sqli_inline_commentInline Comment Injection High Warn sys_sqli_line_comment_mysqlMySQL Line Comment Injection High Warn sys_sqli_line_comment_dashDouble-Dash Comment Injection High Warn
Generic Patterns (9 patterns)
ID Name Severity Action sys_sqli_select_fromSELECT FROM After Termination Critical Warn sys_sqli_admin_bypassAuthentication Bypass Critical Warn sys_sqli_hex_encodingHex-Encoded Payload Medium Warn sys_sqli_char_functionCHAR Function Obfuscation High Warn sys_sqli_concat_selectCONCAT with Embedded SELECT High Warn sys_sqli_information_schemaINFORMATION_SCHEMA Access High Warn sys_sqli_sys_tablesSystem Tables Access High Warn sys_sqli_load_fileLOAD_FILE Function Critical Warn sys_sqli_into_outfileINTO OUTFILE/DUMPFILE Critical Warn
Dangerous Query Patterns (8 patterns)
ID Name Severity Action sys_sqli_drop_tableDROP TABLE Statement Critical Warn sys_sqli_drop_databaseDROP DATABASE Statement Critical Warn sys_sqli_truncateTRUNCATE TABLE Statement Critical Warn sys_sqli_alter_tableALTER TABLE Statement High Warn sys_sqli_delete_no_whereDELETE Without WHERE Critical Warn sys_sqli_create_userCREATE USER Statement Critical Warn sys_sqli_grantGRANT Privileges Statement Critical Warn sys_sqli_revokeREVOKE Privileges Statement Critical Warn
Security - Admin Access (security-admin)
4 patterns guarding access to sensitive administrative tables and schemas.
ID Name Severity Action Description sys_admin_users_tableUsers Table Access High Block Access to users table sys_admin_audit_logAudit Log Access High Block Access to audit logs sys_admin_config_tableConfiguration Table Access High Block System config access sys_admin_info_schemaInformation Schema Access Medium Block System schema access
Security - Dangerous Instructions (security-dangerous)
4 patterns detecting indirect prompt-injection attempts in free-text that flows into the model (OWASP LLM01). These guard merchant/user-controlled fields and ship as block .
ID Name Severity Action Description sys_dangerous_injection_overridePrompt Injection — Instruction Override High Block "Ignore/disregard previous instructions" and similar overrides sys_dangerous_injection_role_overridePrompt Injection — Role Reassignment High Block Attempts to reassign the assistant to a privileged/jailbreak persona sys_dangerous_injection_system_exfilPrompt Injection — System Prompt Exfiltration High Block Attempts to reveal/print/repeat the system prompt or hidden instructions sys_dangerous_injection_bracket_markerPrompt Injection — Template/Bracket Marker High Block Injected chat-template/role-delimiter markers ([system], <im_start>, ### system)
Sensitive Data / Secrets (sensitive-data)
6 patterns detecting credentials and secrets in request/response content (generic, provider-agnostic).
ID Name Severity Action Description sys_sensitive_api_keyAPI Key Detection High Warn Generic API-key assignment patterns sys_sensitive_tokenToken Detection High Warn Bearer/access tokens in content sys_sensitive_secretSecret Detection High Warn Generic secret assignment patterns sys_sensitive_passwordPassword Detection High Warn Password values in content sys_sensitive_credentialsCredentials Detection High Warn Combined credential patterns sys_sensitive_connectionConnection String Detection High Warn Database/service connection strings
PII - Global (pii-global)
7 universal patterns applicable in all regions.
ID Name Severity Action Description sys_pii_credit_cardCredit Card Number Critical Warn Visa, MC, Amex, Discover, Diners, JCB sys_pii_passportPassport Number High Warn Generic passport format sys_pii_dobDate of Birth High Log Common date formats sys_pii_emailEmail Address Medium Log Standard email format sys_pii_phonePhone Number Medium Log International formats sys_pii_ip_addressIP Address Medium Log IPv4 addresses sys_pii_booking_refBooking Reference Low Log Context-anchored 6-char alphanumeric
PII - United States (pii-us)
ID Name Severity Action Description sys_pii_ssnSocial Security Number Critical Warn XXX-XX-XXXX format sys_pii_bank_accountBank Account Number Critical Warn Routing + account number
PII - European Union (pii-eu)
ID Name Severity Action Description sys_pii_ibanIBAN Critical Warn International Bank Account Number
PII - India (pii-india)
ID Name Severity Action Description sys_pii_panPAN (Permanent Account Number) Critical Warn 10-char with entity-type validation sys_pii_aadhaarAadhaar Number Critical Warn 12-digit UID (DPDP Act 2023)
PII - Singapore (pii-singapore)
Singapore-specific patterns support MAS FEAT-oriented governance and regional privacy controls in Community Edition. These ship as redact .
ID Name Severity Action Description sys_pii_singapore_nricSingapore NRIC Detection Critical Redact National Registration Identity Card pattern sys_pii_singapore_finSingapore FIN Detection Critical Redact Foreign Identification Number pattern sys_pii_singapore_uenSingapore UEN Detection High Redact Unique Entity Number pattern sys_pii_singapore_phoneSingapore Phone Detection Medium Redact +65 phone numberssys_pii_singapore_postalSingapore Postal Code Detection Low Warn Six-digit postal code pattern
PII - Indonesia (pii-indonesia)
Indonesia KTP/NIK detection for OJK / BI / UU PDP compliance. The Community shared engine seeds the KTP menu entry as block ; the Enterprise Indonesia PII detector additionally enforces NIK, NPWP, phone, and major-bank account patterns at runtime with NIK validation.
ID Name Severity Action Description sys_pii_indonesia_ktpIndonesian KTP Detection Critical Block 16-digit KTP/NIK (keyword-anchored, NIK-validated)
Condition-Based System Policies
Condition-based policies use context-aware rules evaluated by the Orchestrator. These provide runtime governance for risk, compliance, cost, and access control.
Policy ID Naming Convention
System policy IDs follow the pattern: sys_ + category abbreviation + specific pattern name.
Prefix Meaning Example sys_sqli_SQL injection pattern sys_sqli_union_selectsys_admin_Admin access control sys_admin_users_tablesys_dangerous_Prompt-injection guard sys_dangerous_injection_overridesys_sensitive_Secret / sensitive-data pattern sys_sensitive_api_keysys_pii_PII detection pattern sys_pii_ssnsys_dyn_Dynamic/condition-based policy sys_dyn_high_risk_block
Risk Management (dynamic-risk)
ID Name Condition Action sys_dyn_high_risk_blockBlock High-Risk Queries risk_score > 0.8Block sys_dyn_anomalous_accessAnomalous Access Detection risk_score > 0.6 and anomalous access patternAlert
Condition example (as returned by GET /api/v1/policies):
{
"id" : "sys_dyn_high_risk_block" ,
"name" : "Block High-Risk Queries" ,
"type" : "risk_based" ,
"category" : "dynamic-risk" ,
"tier" : "system" ,
"conditions" : [
{ "field" : "risk_score" , "operator" : "greater_than" , "value" : 0.8 }
] ,
"actions" : [
{ "type" : "block" , "config" : { "reason" : "Query risk score exceeds safety threshold" } }
] ,
"enabled" : true
}
Compliance (dynamic-compliance)
ID Name Condition Action sys_dyn_hipaaHIPAA Compliance Healthcare data keywords present Redact + Log sys_dyn_gdprGDPR Compliance User region in EU/EEA/UK Redact + Log sys_dyn_financialFinancial Data Protection Financial data keywords present Redact + Log
Condition example (as returned by GET /api/v1/policies):
{
"id" : "sys_dyn_hipaa" ,
"name" : "HIPAA Compliance" ,
"type" : "compliance" ,
"category" : "dynamic-compliance" ,
"tier" : "system" ,
"conditions" : [
{ "field" : "query" , "operator" : "contains_any" , "value" : [ "patient" , "diagnosis" , "treatment" , "medical_record" , "prescription" ] }
] ,
"actions" : [
{ "type" : "redact" , "config" : { "fields" : [ "patient_id" , "ssn" , "medical_record_number" ] } } ,
{ "type" : "log" , "config" : { "compliance" : "hipaa" } }
] ,
"enabled" : true
}
Security Controls (dynamic-security)
ID Name Condition Action sys_dyn_tenant_isolationTenant Isolation Cross-tenant tenant_id access attempt Block sys_dyn_debug_restrictDebug Mode Restriction debug query outside development environmentBlock
Cost Management (dynamic-cost)
ID Name Condition Action sys_dyn_expensive_queryExpensive Query Limit cost_estimate > 100Alert + Log sys_dyn_llm_costLLM Cost Optimization LLM chat and monthly_llm_usage > 1000 Add risk + Alert
Access Control (dynamic-access)
ID Name Condition Action sys_dyn_sensitive_dataSensitive Data Control Query references salary, SSN, or medical records Redact
Querying System Policies
List All System Policies
const policies = await client . listStaticPolicies ( {
tier : 'system'
} ) ;
console . log ( ` Total system policies: ${ policies . length } ` ) ;
Filter by Category
const sqli = await client . listStaticPolicies ( {
tier : 'system' ,
category : 'security-sqli'
} ) ;
const pii = await client . listStaticPolicies ( {
tier : 'system' ,
category : 'pii-global'
} ) ;
REST API
# All system policies
curl "http://localhost:8080/api/v1/static-policies?tier=system"
# Filtered by category
curl "http://localhost:8080/api/v1/static-policies?tier=system&category=security-sqli"
Customizing System Policies (Enterprise)
Policy overrides require an Enterprise license.
You cannot modify system policy patterns, but you can:
Disable a policy for your organization
Change the action (only to more restrictive, or disable)
Set an expiration for temporary overrides
Example: Disable Email Detection
await client . createPolicyOverride ( {
policyId : 'sys_pii_email' ,
enabledOverride : false ,
overrideReason : 'Internal tool - no customer email exposure' ,
} ) ;
Example: Escalate to Block
await client . createPolicyOverride ( {
policyId : 'sys_pii_credit_card' ,
actionOverride : 'block' ,
overrideReason : 'PCI requirement - block all credit-card exposure' ,
} ) ;
Rollout Checklist
Use this page as one layer of the broader governance rollout: