Skip to main content
Inspect the gateway routes floo is serving for an app. Use this when a host, path, service, or access mode does not behave the way you expected.

routes list

List customer-visible hosts, path prefixes, target services, and effective access policy.
floo edge routes list --app my-app
floo edge routes list --app my-app --env prod

Flags

FlagDescription
--app APPApp name or UUID (reads from config if omitted)
--env ENVOptional environment filter: dev, prod, or preview

JSON output

{
  "success": true,
  "data": {
    "routes": [
      {
        "id": "route_123",
        "host": "api.example.com",
        "path_prefix": "/",
        "environment_id": "env_prod",
        "environment_name": "prod",
        "environment_slug": "prod",
        "service_id": "svc_api",
        "service_name": "api",
        "service_type": "api",
        "access_mode": "accounts",
        "api_key_enabled": true,
        "required_scope": "api:read",
        "source": "custom_domain",
        "source_of_truth": "gateway_routes",
        "propagation_status": "unknown",
        "created_at": "2026-07-02T10:00:00Z",
        "updated_at": "2026-07-02T10:05:00Z"
      }
    ],
    "total": 1
  }
}
The output deliberately omits Cloud Run backend URLs. Treat floo hosts and custom domains as the public contract.

Troubleshooting

If an app is public when you expected auth, run:
floo edge routes list --app my-app --env prod --json 2>/dev/null | jq '.data.routes[] | {host, path_prefix, access_mode, api_key_enabled, required_scope}'
If a custom domain points at the wrong service, compare source, service_name, and path_prefix:
floo edge routes list --app my-app --json 2>/dev/null | jq '.data.routes[] | {host, path_prefix, service_name, source}'
source_of_truth: "gateway_routes" means the route was read from the serving table the gateway consumes. propagation_status: "unknown" means the API is not yet claiming per-worker gateway cache freshness; use the route row’s updated_at as the serving-table timestamp.