You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Note:** This section describes the networking architecture automatically configured when using the **Production** deployment type (WAF mode).
153
+
154
+
When deploying with WAF configuration (`enablePrivateNetworking: true`), the following security measures are applied:
155
+
156
+
-**Public Ingress (Frontend Only)**: Only the frontend web application is exposed through the public nginx ingress. **No backend API routes are on the public ingress** — backend services are completely private.
157
+
-**Server-Side Proxy**: The frontend container (Vite) acts as a reverse proxy. Browser API calls to `/backend` are intercepted by the frontend server and forwarded internally to the backend service via ClusterIP DNS — the request never leaves the cluster.
158
+
-**ClusterIP Services**: Backend services (`aiservice`, `kernelmemory`) use ClusterIP services for internal communication only. They have no public IP or external load balancer.
159
+
-**Kubernetes Network Policies**: NetworkPolicy resources enforce traffic isolation — backend pods only accept traffic from frontend pods and the ingress controller within the cluster.
160
+
-**Private Endpoints**: All Azure PaaS services (Cosmos DB, Storage, Search, OpenAI, etc.) use private endpoints and are not accessible from the public internet.
161
+
162
+
**Traffic Flow (WAF mode):**
163
+
```
164
+
Internet → Public Ingress (nginx) → / → Frontend (frontapp:5900)
165
+
↓
166
+
Vite Proxy (server-side)
167
+
/backend → aiservice (ClusterIP, internal only)
168
+
/api → aiservice (ClusterIP, internal only)
169
+
↓
170
+
Azure PaaS (via Private Endpoints)
171
+
172
+
Backend API from internet → NOT ROUTABLE (no public ingress route exists)
173
+
Direct access to backend pods → BLOCKED by NetworkPolicy
0 commit comments