Networking API

The networking backend exposes a JSON HTTP API consumed by the UI extension via ArgoCD’s proxy at /extensions/networking/.

Endpoints

List policies

GET /api/v1/policies?namespace={ns}&app={appName}

List Cilium network policies for an application or namespace.

Parameters:

NameTypeRequiredDescription
namespacestringNoFilter by namespace
appstringNoFilter by ArgoCD application name

Response:

{
  "policies": [
    {
      "name": "allow-guestbook-ingress",
      "namespace": "default",
      "kind": "CiliumNetworkPolicy",
      "endpointSelector": { "matchLabels": { "app": "guestbook-ui" } },
      "ingressRuleCount": 2,
      "egressRuleCount": 0
    }
  ],
  "clusterPolicies": [
    {
      "name": "platform-default-deny",
      "kind": "CiliumClusterwideNetworkPolicy",
      "endpointSelector": {},
      "ingressRuleCount": 0,
      "egressRuleCount": 1
    }
  ]
}

Query flows

GET /api/v1/flows?namespace={ns}&pod={podName}&since={duration}

Query Hubble network flows.

Parameters:

NameTypeRequiredDescription
namespacestringNoFilter by namespace
podstringNoFilter by pod name
sincestringNoTime window (e.g., 5m, 1h)

Response:

{
  "flows": [
    {
      "time": "2026-03-15T10:30:00Z",
      "source": { "namespace": "default", "pod": "guestbook-ui-abc123", "ip": "10.0.1.5" },
      "destination": { "namespace": "default", "pod": "redis-master-def456", "ip": "10.0.1.10", "port": 6379 },
      "verdict": "FORWARDED",
      "protocol": "TCP"
    }
  ]
}

Error responses

{
  "error": "hubble_unavailable",
  "message": "Hubble relay not reachable"
}