Relationships
#2519 dashboard System tab shows Port —, TLS disabled, Auth —, Scheduling disabled although serve.config reports them correctly
Opened by randybias · 9/25/2026· Shipped 9/25/2026
Problem
The dashboard's System tab shows wrong serve configuration:
Port —
TLS disabled
Auth Mode —
Scheduling disabled
Dashboard enabledThe serve.config response for the same server, fetched over the dashboard's own WebSocket with an admin token, is correct:
{"config":{"port":9090,"host":"0.0.0.0","tls":{"enabled":true,"certFile":"/tls/tls.crt"},"authMode":"token","scheduling":{"enabled":true},"dashboard":{"enabled":true},"webhooks":[],"hotReload":true,"remoteOnly":true,"autoResume":true,"trustProxy":true,"verifyOnEnroll":true, ...}}/health also reports scheduling.enabled: true, and the scheduler fires on time: run b3ff2168 at 05:00:00Z today, triggerSource: schedule.
Likely cause (INFERRED from the payload shape)
The values arrive nested under config, and the System view appears to read top-level fields. So every field falls back to its empty or default rendering, except Dashboard, which is true by construction.
Ask
Read the nested config object, and add a contract test that renders the System view from a real serve.config payload. remoteOnly, autoResume, hotReload and trustProxy are also worth showing, as they change how the server behaves.
Shipped
Click a lifecycle step above to view its details.
stack72 commented 9/25/2026, 9:13:49 PM
Thanks @randybias for reporting this! We shipped: The dashboard System tab misreads the serve.config response in two ways: it reads fields from the top level while the server nests them under config, and it tests tls, scheduling and dashboard for truthiness while the server sends them as objects with an enabled field. Fix it in the dashboard by moving the payload-to-rows translation out of System.tsx into a small pure module that reads the real wire shape, render the rows from it, add the four behaviour-changing flags the issue asks for (Remote Only, Auto Resume, Hot Reload, Trust Proxy), and pin it with a contract test that builds its payload from the server's own redactServeOptions. The server's wire shape is unchanged.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.
Sign in to post a ripple.