Skip to main content

System Policies Reference

AxonFlow ships with 63 system policies (53 pattern-based + 10 condition-based) that provide comprehensive security and compliance coverage out-of-the-box.

Overview

CategoryEvaluationCountSeverity Range
Security - SQL InjectionPattern-Based (Agent)37Critical - Medium
Security - Admin AccessPattern-Based (Agent)4High - Medium
PII - GlobalPattern-Based (Agent)7Critical - Low
PII - United StatesPattern-Based (Agent)2Critical
PII - European UnionPattern-Based (Agent)1Critical
PII - IndiaPattern-Based (Agent)2Critical
Risk ManagementCondition-Based (Orchestrator)2-
ComplianceCondition-Based (Orchestrator)3-
Security ControlsCondition-Based (Orchestrator)2-
Cost ManagementCondition-Based (Orchestrator)2-
Access ControlCondition-Based (Orchestrator)1-

Pattern-Based System Policies

Security - SQL Injection (security-sqli)

37 patterns covering all major SQL injection techniques.

UNION-Based Injection (2 patterns)

IDNameSeverityAction
sys_sqli_union_selectUNION SELECT DetectionCriticalBlock
sys_sqli_union_injectionUNION Injection After TerminationCriticalBlock

Boolean-Based Blind Injection (3 patterns)

IDNameSeverityAction
sys_sqli_or_trueOR True ConditionHighBlock
sys_sqli_or_stringOR String ConditionHighBlock
sys_sqli_and_falseAND False ConditionHighBlock

Time-Based Blind Injection (4 patterns)

IDNameSeverityAction
sys_sqli_sleepMySQL SLEEP FunctionCriticalBlock
sys_sqli_waitforSQL Server WAITFOR DELAYCriticalBlock
sys_sqli_pg_sleepPostgreSQL pg_sleepCriticalBlock
sys_sqli_benchmarkMySQL BENCHMARK FunctionCriticalBlock

Error-Based Injection (3 patterns)

IDNameSeverityAction
sys_sqli_extractvalueEXTRACTVALUE FunctionHighBlock
sys_sqli_updatexmlUPDATEXML FunctionHighBlock
sys_sqli_convert_intCONVERT INT InjectionHighBlock

Stacked Queries (5 patterns)

IDNameSeverityAction
sys_sqli_stacked_dropStacked DROP StatementCriticalBlock
sys_sqli_stacked_deleteStacked DELETE StatementCriticalBlock
sys_sqli_stacked_updateStacked UPDATE StatementCriticalBlock
sys_sqli_stacked_insertStacked INSERT StatementCriticalBlock
sys_sqli_stacked_execStacked EXEC StatementCriticalBlock

Comment-Based Injection (3 patterns)

IDNameSeverityAction
sys_sqli_inline_commentInline Comment InjectionHighBlock
sys_sqli_line_comment_mysqlMySQL Line Comment InjectionHighBlock
sys_sqli_line_comment_dashDouble-Dash Comment InjectionHighBlock

Generic Patterns (9 patterns)

IDNameSeverityAction
sys_sqli_select_fromSELECT FROM After TerminationCriticalBlock
sys_sqli_admin_bypassAuthentication BypassCriticalBlock
sys_sqli_hex_encodingHex-Encoded PayloadMediumBlock
sys_sqli_char_functionCHAR Function ObfuscationHighBlock
sys_sqli_concat_selectCONCAT with Embedded SELECTHighBlock
sys_sqli_information_schemaINFORMATION_SCHEMA AccessHighBlock
sys_sqli_sys_tablesSystem Tables AccessHighBlock
sys_sqli_load_fileLOAD_FILE FunctionCriticalBlock
sys_sqli_into_outfileINTO OUTFILE/DUMPFILECriticalBlock

Dangerous Query Patterns (8 patterns)

IDNameSeverityAction
sys_sqli_drop_tableDROP TABLE StatementCriticalBlock
sys_sqli_drop_databaseDROP DATABASE StatementCriticalBlock
sys_sqli_truncateTRUNCATE TABLE StatementCriticalBlock
sys_sqli_alter_tableALTER TABLE StatementHighBlock
sys_sqli_delete_no_whereDELETE Without WHERECriticalBlock
sys_sqli_create_userCREATE USER StatementCriticalBlock
sys_sqli_grantGRANT Privileges StatementCriticalBlock
sys_sqli_revokeREVOKE Privileges StatementCriticalBlock

Security - Admin Access (security-admin)

IDNameSeverityActionDescription
sys_admin_users_tableUsers Table AccessHighBlockAccess to users table
sys_admin_audit_logAudit Log AccessHighBlockAccess to audit logs
sys_admin_config_tableConfiguration Table AccessHighBlockSystem config access
sys_admin_info_schemaInformation Schema AccessMediumBlockSystem schema access

PII - Global (pii-global)

Universal patterns applicable in all regions.

IDNameSeverityActionDescription
sys_pii_credit_cardCredit Card NumberCriticalBlockVisa, MC, Amex, Discover
sys_pii_emailEmail AddressMediumLogStandard email format
sys_pii_phonePhone NumberMediumLogInternational formats
sys_pii_ip_addressIP AddressMediumLogIPv4 addresses
sys_pii_passportPassport NumberHighBlockGeneric passport format
sys_pii_dobDate of BirthHighLogCommon date formats
sys_pii_booking_refBooking ReferenceLowLog6-char alphanumeric

PII - United States (pii-us)

IDNameSeverityActionDescription
sys_pii_ssnSocial Security NumberCriticalBlockXXX-XX-XXXX format
sys_pii_bank_accountBank Account NumberCriticalBlockRouting + account number

PII - European Union (pii-eu)

IDNameSeverityActionDescription
sys_pii_ibanIBANCriticalBlockInternational Bank Account Number

PII - India (pii-india)

IDNameSeverityActionDescription
sys_pii_panPAN (Permanent Account Number)CriticalBlock10-char with entity type validation
sys_pii_aadhaarAadhaar NumberCriticalBlock12-digit UID (DPDP Act 2023)

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.

PrefixMeaningExample
sys_sqli_SQL injection patternsys_sqli_union_select
sys_admin_Admin access controlsys_admin_users_table
sys_pii_PII detection patternsys_pii_ssn
sys_dyn_Dynamic/condition-based policysys_dyn_high_risk_block

Risk Management (dynamic-risk)

IDNameConditionAction
sys_dyn_high_risk_blockBlock High-Risk Queriesrisk_score > 0.8Block
sys_dyn_anomalous_accessAnomalous Access Detectionrisk_score > 0.5Warn

Risk score thresholds:

Risk ScoreActionDescription
> 0.8BlockHigh-risk query immediately rejected
> 0.5WarnElevated-risk query allowed with warning logged
<= 0.5AllowNormal-risk query proceeds without policy match

Condition example:

{
"id": "sys_dyn_high_risk_block",
"name": "Block High-Risk Queries",
"conditions": {
"risk_score": { "gt": 0.8 }
},
"action": "block",
"message": "Query blocked due to high risk score."
}

Compliance (dynamic-compliance)

IDNameConditionAction
sys_dyn_hipaaHIPAA Compliancedata_category == "healthcare"Block (if PHI detected)
sys_dyn_gdprGDPR Compliancedata_region == "eu" and PII presentBlock
sys_dyn_financialFinancial Data Protectiondata_category == "financial"Block (if PCI data detected)

Condition example:

{
"id": "sys_dyn_hipaa",
"name": "HIPAA Compliance",
"conditions": {
"data_category": "healthcare",
"contains_phi": true
},
"action": "block",
"message": "Protected Health Information detected. HIPAA compliance requires blocking this query."
}

Security Controls (dynamic-security)

IDNameConditionAction
sys_dyn_tenant_isolationTenant Isolationtarget_tenant != request_tenantBlock
sys_dyn_debug_restrictDebug Mode Restrictiondebug == true and environment == "production"Block

Cost Management (dynamic-cost)

IDNameConditionAction
sys_dyn_expensive_queryExpensive Query Limitestimated_cost > cost_thresholdWarn
sys_dyn_llm_costLLM Cost Optimizationmonthly_usage > monthly_limitBlock

Access Control (dynamic-access)

IDNameConditionAction
sys_dyn_sensitive_dataSensitive Data ControlResponse contains salary, SSN, or medical recordsBlock

Querying System Policies

List All System Policies

const policies = await client.listStaticPolicies({
tier: 'system'
});

console.log(`Total system policies: ${policies.length}`);

Filter by Category

// Get all SQL injection policies
const sqli = await client.listStaticPolicies({
tier: 'system',
category: 'security-sqli'
});

// Get all PII policies
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)

Enterprise Feature

Policy overrides require an Enterprise license.

You cannot modify system policy patterns, but you can:

  1. Disable a policy for your organization
  2. Change the action (only to more restrictive or disable)
  3. 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_dob',
actionOverride: 'block', // Was 'log'
overrideReason: 'HIPAA requirement - block all DOB exposure',
});