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
- The Config page includes edit/add modals to showcase how configuration could be managed.
55
-
- Current backend is read-only for config: it exposes `GET /api/router/config/all` only.
56
-
- Demo save targets `POST /api/router/config/update` (not implemented by default). You can wire this endpoint in the backend to persist changes, or keep the edits as a UI mock.
57
-
- Tools DB panel attempts to load `/api/tools-db` for `tools_db.json`. Add a backend route or static file handler to serve this if you want it live.
57
+
- The Config page includes edit/add modals for multiple sections (Models, Endpoints, Prompt Guard, Similarity Cache, Categories, Reasoning Families, Tools, Observability, Batch Classification API).
58
+
- Backend supports read/write operations:
59
+
-`GET /api/router/config/all` returns the current config (YAML parsed and served as JSON).
60
+
-`POST /api/router/config/update` updates the config file on disk (writes YAML). Requires the process to have write permission to the specified config path.
61
+
- Tools DB panel loads `/api/tools-db`, which serves `tools_db.json` from the same directory as your config file.
62
+
- Note for containers/Kubernetes: if the config is mounted from a read-only ConfigMap, updates won’t persist. Mount a writable volume or manage config externally if you need persistence.
-`TARGET_OPENWEBUI_URL` (optional; enable playground tab only if present)
119
-
Note: The backend already adjusts frame-busting headers (X-Frame-Options/CSP) to allow embedding from the dashboard origin; no extra env flag is required.
129
+
Optional:
130
+
-`ROUTER_CONFIG_PATH` (default: `../../config/config.yaml`) — path to the router config file used by the config APIs and Tools DB.
131
+
-`DASHBOARD_STATIC_DIR` — override static assets directory (defaults to `../frontend`).
132
+
Note: The backend already adjusts frame-busting headers (X-Frame-Options/CSP) to allow embedding from the dashboard origin; no extra env flag is required.
120
133
121
134
Recommended upstream settings for embedding:
122
135
@@ -128,11 +141,12 @@ Recommended upstream settings for embedding:
@@ -171,10 +185,15 @@ Recommended upstream settings for embedding:
171
185
- Frame embedding: backend strips/overrides `X-Frame-Options` and `Content-Security-Policy` headers from upstreams to permit `frame-ancestors 'self'` only
172
186
- Future: OIDC login on dashboard, session cookie, and per-route RBAC; signed proxy sessions to Grafana/Open WebUI
173
187
188
+
Write access warning for config updates:
189
+
190
+
- The `POST /api/router/config/update` endpoint writes to the mounted config path. In Docker/K8s this may be read-only if sourced from a ConfigMap. Use a writable volume, bind-mount, or external configuration service if you need runtime persistence.
191
+
174
192
## Extensibility
175
193
176
194
- New panels: add tabs/components to `frontend/`
177
195
- New integrations: add target env vars and a new `/embedded/<service>` route in backend proxy
196
+
- Topology: customize nodes/edges in `TopologyPage.tsx` (React Flow)
178
197
- Metrics aggregation: add `/api/metrics` in backend to produce derived KPIs from Prometheus
179
198
180
199
## Implementation notes
@@ -213,7 +232,7 @@ docker compose -f tools/observability/docker-compose.obs.yml up -d
213
232
cd dashboard/frontend
214
233
npm install
215
234
npm run dev
216
-
# Vite runs at http://localhost:3001 and proxies /apiand /embedded to http://localhost:8700
235
+
# Vite runs at http://localhost:3001 and proxies /api, /embedded and /healthz to http://localhost:8700
217
236
218
237
# 3) Start the Dashboard backend in another terminal
0 commit comments