> ## Documentation Index
> Fetch the complete documentation index at: https://getfloo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# edge

> CLI reference: inspect the effective edge route table for an app

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.

```bash theme={null}
floo edge routes list --app my-app
floo edge routes list --app my-app --env prod
```

### Flags

| Flag        | Description                                              |
| ----------- | -------------------------------------------------------- |
| `--app APP` | App name or UUID (reads from config if omitted)          |
| `--env ENV` | Optional environment filter: `dev`, `prod`, or `preview` |

### JSON output

```json theme={null}
{
  "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:

```bash theme={null}
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`:

```bash theme={null}
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.
