Allowlists are the primary tool for reducing triage noise. Rather than promoting a run every time a package connects to a CDN your infrastructure owns or reads a system library directory, you create an allowlist rule and those behaviors are silently filtered out before they ever appear as deviations. Rules are evaluated by the differ at analysis time — they also apply retroactively when you runDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/irchaosclub/FANGS/llms.txt
Use this file to discover all available pages before exploring further.
fangs baseline promote, so allowlisted values never get baked into the baseline.
Rule Kinds
FANGS supports three allowlist kinds, each targeting a different deviation category:cidr
Suppresses
net_new_destination deviations whose IP address falls within the specified CIDR range. Value must be a valid CIDR in x.x.x.x/n notation.path
Suppresses
fs_new_path_read and fs_new_path_write deviations whose normalized path starts with the specified prefix. Value must be an absolute path beginning with /.sni
Suppresses
net_new_https_host deviations whose SNI value equals the specified hostname. Matching is case-insensitive. No structural validation — any string is accepted.Scope
Every rule is either global or package-scoped:| Scope | When it applies |
|---|---|
global | Every run of every package |
package | Only runs of the named package |
-package for a global rule. Supply -package <name> to scope the rule to a single package.
Adding Rules
fangs allow add -kind path -value /usr/local/lib/ -note 'shared libs'
fangs allow add -kind path -value /usr/share/zoneinfo/ -note 'timezone DB reads'
fangs allow add \
-kind sni \
-value telemetry.example.com \
-package axios \
-note 'axios telemetry'
Listing and Removing Rules
Config-File-Managed Rules
Rules can also be declared inconfig/orchestrator.yaml under the allow section. These are upserted at orchestrator startup with deterministic cfg-prefixed IDs that are stable across restarts:
fangs allow add -package <name>.
Hardcoded CDN Allowlist
FANGS ships a built-in CDN allowlist (DefaultCDNAllowlist) that covers the major public CDN IP ranges:
Cloudflare
IPv4 and IPv6 ranges for Cloudflare’s CDN and edge network.
GitHub / Fastly
IP ranges used by GitHub Actions, GitHub Packages, and Fastly CDN.
Google / CloudFront
Google Cloud CDN ranges and Amazon CloudFront edge ranges.
Validation Summary
| Kind | Validation |
|---|---|
cidr | Parsed with Go’s net.ParseCIDR. Invalid CIDRs are rejected with an error. |
path | Must start with /. Relative paths are rejected. |
sni | No structural validation — any string is accepted. Matching is case-insensitive at evaluation time. |
Interaction with Baseline Promote
Allowlists are applied during promotion as well as at analysis time. When you runfangs baseline promote <run-id>, the CLI applies the same allowlist filter the differ uses, so suppressed values are never merged into baseline_fingerprints. This means:
- Adding a new allowlist rule and then re-promoting an old run cleans out the suppressed values retroactively.
- You do not need to worry about allowlisted CIDRs or paths polluting the baseline and then later being flagged as “missing” if you remove the rule.