Firewall Rules API
Create and manage CEL-based firewall rules.
Firewall rules are CEL expressions evaluated on every request in firewall mode. Rules are compiled at write time — invalid expressions are rejected with 400.
List Rules
GET
/api/proxies/:id/rulesbash
curl https://cifp.vril.dev/api/proxies/proxy-id/rules \
-H "Authorization: Bearer cifp_your_api_key"Response
{
"rules": [
{
"id": "rule_abc",
"name": "allow-openai",
"priority": 10,
"action": "allow",
"celExpression": "request.host == \"api.openai.com\"",
"enabled": true,
"createdAt": "2026-06-01T10:00:00Z"
}
],
"count": 1
}Create Rule
POST
/api/proxies/:id/rulesbash
curl -X POST https://cifp.vril.dev/api/proxies/proxy-id/rules \
-H "Authorization: Bearer cifp_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "allow-openai",
"priority": 10,
"action": "allow",
"celExpression": "request.host == \"api.openai.com\"",
"enabled": true,
"description": "Allow OpenAI API traffic"
}'| Field | Required | Description |
|---|---|---|
| name | Yes | Display name. 1–100 chars. |
| celExpression | Yes | Boolean CEL expression. Compiled at write time. |
| action | Yes | allow, deny, or hitl |
| priority | No | Integer 0–10000. Lower = higher priority. Default 100. |
| enabled | No | Toggle rule without deleting. Default true. |
| description | No | Optional documentation. Max 500 chars. |
Update Rule
PATCH
/api/proxies/:id/rules/:ruleIdAll fields are optional. Only provided fields are updated.
bash
# Disable a rule
curl -X PATCH https://cifp.vril.dev/api/proxies/proxy-id/rules/rule-id \
-H "Authorization: Bearer cifp_your_api_key" \
-d '{"enabled": false}
# Change priority and action
curl -X PATCH https://cifp.vril.dev/api/proxies/proxy-id/rules/rule-id \
-d '{"priority": 5, "action": "hitl"}'Delete Rule
DELETE
/api/proxies/:id/rules/:ruleIdbash
curl -X DELETE https://cifp.vril.dev/api/proxies/proxy-id/rules/rule-id \
-H "Authorization: Bearer cifp_your_api_key"
# Returns 204 No Content