Skip to main content
The gateway routes floo serves for an app and the IP/CIDR policy in front of them. Start here when a host, path, service, access mode, or client IP behaves unexpectedly.

routes list

Hosts, path prefixes, target services, and effective access policy.

Flags

JSON output

The output omits internal backend URLs. floo hosts and custom domains are the public contract.

Troubleshooting

If an app is public when you expected auth, run:
If a custom domain points at the wrong service, compare source, service_name, and path_prefix:
source_of_truth: "gateway_routes" means the route was read from the serving table the gateway consumes. propagation_status is always "unknown": the API does not report per-worker gateway cache freshness, so use the row’s updated_at as the serving-table timestamp.

policy get

Show the IP/CIDR edge policy for one environment: the ordered allow/deny rules, the default action, and whether the policy is enabled. The policy is declared in floo.app.toml under [edge] and applied on deploy; this command is read-only. Previews inherit the dev policy.

Flags

JSON output

With no policy for the environment, every IP is admitted and the command prints No edge policy for my-app in prod with data of {"policy": null, "env": "prod"}. A stored policy with enabled: false is not enforced.

policy check

Evaluate one client IP against the environment’s policy: first-match rules, then the default action. The gateway is the authoritative enforcer; this mirrors its logic to debug a rejection without sending traffic.

Arguments

Flags

JSON output

reason is rule_match, default_action, policy_disabled, or no_policy. enforced is false and admitted is true for the last two. An IPv4-mapped IPv6 address is evaluated as its IPv4 form, matching the gateway.

Errors