Skip to content

Config schema: acls

This page lists the fields for optional top-level acls: and per-listener acls:. For when to use ACLs and how they run on ingress, see Client ACLs.

acls (top-level)

Property Value
Type Object
Required No — when omitted, every client is admitted
Location Top-level key in the config file or overlay (whole-section replace when present)
FieldTypeRequiredDefaultDescription
default_actionstringnoallowallow or deny. Applied when no rule matches. deny = silent drop (no DNS reply).
ruleslistno[]Ordered ACL rules; first match wins

Rule object

Field Type Required Description
match string yes Name of a type: cidr entry under data_sources:
action string yes drop, refuse, tag, or accept
tag string when action: tag Single tag name to set on the transaction
acls:
  default_action: deny
  rules:
    - match: block_nets
      action: drop
    - match: corp_nets
      action: accept
    - match: partners
      action: tag
      tag: partner

Per-listener acls

Same shape as top-level acls:, nested on a listener object.

When Effect
Omitted Inherit top-level acls: entirely (or admit-all)
Set Full replace for that listener — not a merge with global

Validation summary

Rule Typical failure
match names a type: cidr source Unknown or non-cidr data source name
action: tag includes tag Missing tag name
Known action / default_action Unknown action string

Reload and overlay

Change How it applies
Top-level acls: Hot via reload / overlay replace into the runtime snapshot
data_sources: (CIDR files) Hot on snapshot rebuild (file re-read)
Per-listener acls: File reload, or whole-listeners: overlay replace

Export preserves structure and paths, not prefix file contents. See Client ACLs — Overlay and export.