2.5 KiB
2.5 KiB
RustProxy 0.23.2 specification audit
Scope
0.23.2 is a patch release on top of 0.23.1. It extends the Cache/Transformation live charts with an operator-selectable bounded history window and fixes local CLI access when the administration listener uses HTTPS. No proxy-path, SQLite schema or administration API payload change is introduced.
Cache / Transformation chart history
- Both live charts remain default-collapsed and full-width when expanded.
- Existing cumulative counters are still converted to per-second rates with the existing 3-second refresh.
- Each workspace offers 60, 120, 300 and 600 retained samples, corresponding to roughly 3, 6, 15 and 30 minutes.
- The selected limit is stored in browser local storage separately for Cache and Transformation.
- Reducing the limit trims the in-memory arrays immediately; increasing it grows only with future samples. The maximum remains bounded at 600 samples per series.
- Scope/session resets still clear the corresponding chart history.
Local CLI / live-log HTTPS
- The root cause of the 0.23.0/0.23.1
rust-proxy --livelogsreconnect loop is the CLI's previous hard-codedhttp://{admin}/api/live-logsURI. A TLS-enabled administration socket intentionally returns HTTP 308 on plaintext requests, and the CLI treated that expected redirect as a stream failure. - The CLI now probes the loopback
/healthzendpoint before creating authenticated API requests. HTTP success selectshttp; the administration listener's 308 with an HTTPSLocationselectshttps. - The probe carries no CLI session cookie. After scheme selection, the live SSE stream and retained-history API use the same selected transport.
- HTTPS certificate verification is pinned to leaf certificates read from the private
<data-dir>/certsdirectory. This supports the app-managed self-signed default certificate without disabling TLS verification globally or relying on public DNS/SAN routing to reach the loopback listener. - The same local client is used by
config get/reload/applyandtls reload/deploy, eliminating the same hard-coded-HTTP failure mode there. - The local administration address remains required to be loopback.
Verification status
Rust-independent source, JavaScript/JSON, shell, Go-agent and release-smoke checks are run in the packaging workspace. cargo, rustc and rustfmt are unavailable here, so compiler/type tests, a live TLS handshake against the built binary and sustained browser/live-log runtime acceptance remain release-host gates.