Documentation
Docs Home › Concepts › Policy Model

Policy Model

Purpose

Name the objects operators manage on the Manager and where they may be applied. This is not a formal policy language and not a promise that every object type is production-complete.

Concept

Policy is Manager-owned. Virtualization Agents synchronize and enforce. Hosting Agents observe and cannot receive rules.

Enable/disable exists on rules (POST /api/v1/rules/:id/enable and disable) in addition to delete. Testing mode exists so operators can inspect before they enforce.

Data/control flow

Administrator → PostgreSQL object → Agent sync → eBPF maps on Virtualization Agents.

Implemented v1 groups:

Scroll sideways to see the full table. Use the arrow keys when focused.

ObjectPrefixNotes
Firewall rules/api/v1/rulesincluding assign-to-agent
CIDR rules/api/v1/rules/cidr
DNS rules/api/v1/rules/dnsimplemented, not a resolver WAF
UID/GID rules/api/v1/rules/uid-gidimplemented, not production-complete
Blocked IPs/api/v1/security/blocked-ips
GeoIP rules/api/v1/geoip/rules
External blocklists/api/v1/blocklists
Agent policyPUT|PATCH /api/v1/agents/:id/policy
Detection settings/api/v1/agents/:id/detection-settings

CLI (zwallctl allow|deny|remove|whitelist|unwhitelist|rate-limit|block-port|temp-block|temp-allow) talks to the Manager API, not directly to maps, except local map maintenance commands (map ls/clear/pin) on a node with pin dir /sys/fs/bpf/fw.

AI Preview can draft unpublished rule-review records. Those drafts cannot become live policy.Rule through AI routes. There are no registered apply/enforce/create-rule AI routes.

Boundaries

  • Hosting observation Agents: HTTP 409 on rule assignment.
  • protection_model hybrid vs Hosting profile is a known profile-identity mismatch — do not use hybrid as “policy works everywhere.”
  • Edge mode policy/fail-open is not a public certified product.
  • DHCP guard and SMTP proxy are specialized, example-disabled or Hosting-rejected.
  • Detection example profiles list may not load as a map.

Edition differences

Object types above are SHARED unless a handler is nil (then the group is not registered). License gates apply to some Enterprise writes (blocklists/RBL/discovery). Community has a 3-Agent cap, which caps where policy can land.

Common misconceptions

  • “Approving an AI recommendation created a rule.” It did not.
  • “DNS rules replace the customer’s DNS server.” They do not.
  • “UID/GID rules replace Hosting observation.” Hosting rejects UID/GID features; virt UID/GID is incomplete.
  • “Testing mode is a throughput test.” It is inspect-before-enforce.