Documentation
Docs Home › Getting Started › Architecture Concepts

Architecture Concepts

Purpose

Give operators a correct map of control plane vs data plane before they install.

Control plane: Manager

The Manager:

  • exposes HTTP(S), primarily /api/v1
  • serves the React console
  • authenticates administrators (username/password tokens, optional TOTP)
  • registers Agents and issues/refreshes Agent credentials
  • stores rules, blocked IPs, detection settings, and events in PostgreSQL
  • can emit Prometheus metrics and WebSocket console updates

SQLite is not the Manager production database.

Data plane: Agents

The shared Agent:

  • bootstraps durable identity
  • registers with the Manager
  • stores credentials locally
  • synchronizes rules/settings
  • uploads events
  • optionally loads eBPF programs

Active packet enforcement requires root. The dedicated Hosting profile is intended to run unprivileged because it does not load enforcement eBPF; a separate privileged hosting-ebpf-loader owns pass-only attach.

Observation vs enforcement

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

ProfileKernel programsPacket drop
Hosting Agenthosting_observe XDP/TCProhibited (pass / OK only)
Virtualization Agentfirewall XDP + firewall_egress TCIntended capability

A config leaf protection_model of virtualization, hosting, or hybrid exists on the shared Agent. That leaf is not the same thing as the Enterprise Hosting Agent profile.

Communications

Operators and Agents reach the Manager over HTTPS. The customer protocol is HTTP/REST. Do not document gRPC as the customer control-plane protocol.

Example Manager listen settings from configs/manager.example.yml:

  • server.host: 0.0.0.0
  • server.port / server.api_port: 8443
  • server.tls.enabled: true

zwallctl defaults to http://localhost:8080 if unconfigured. Operators must point the CLI at the actual Manager URL.

eBPF program families that exist

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

ProgramRoleEnforcement?
firewall.c / firewall_egress.cVirtualization/network protectionYes, intended
hosting_observe.cHosting telemetryObserve only
uid_gid_filter*.cUID/GID socket filteringIntended; ABI/lifecycle not documented as complete
smtp_dnat.cSMTP mark/NAT companionSpecialized
firewall_simple.cSimplified/legacy variantNot a separate customer product