v0.32.2
This commit is contained in:
1 parent
bb025dcf44
commit
b0f211555a
74 files changed
+6089
-556
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# RustProxy 0.32.2
|
||||
# RustProxy 0.32.3
|
||||
|
||||
**0.31.0 panel/cache additions:** browser-negotiated Zstd/Brotli/gzip for HTML, JS and CSS (Settings → Administration); optional HTTP BAN/PURGE restricted to explicit IP/CIDR allowlist (Settings → Cache, disabled by default); System information Refresh button beside the API badge. See [Settings](docs/SETTINGS.md) and [Cache](docs/CACHE.md).
|
||||
|
||||
@@ -7,7 +7,28 @@ streaming HTTP/TLS/WebSocket forwarding, raw TCP/UDP stream hosts, IP-bound vhos
|
||||
|
||||
**0.31.9 Certificate API management: inspect and edit credential settings without exposing/rotating the current token, or regenerate one existing token with one-time display. Rust/Cargo and live testing required.**
|
||||
|
||||
## What changed in 0.32.2
|
||||
## What changed in 0.32.3
|
||||
|
||||
- **Consistently sized Overview rows:** the dashboard now uses ordinary CSS Grid for both default and customized layouts. Six numeric tiles, three standard live charts, two optional wide charts and three diagnostic panels form separate, equal-height rows with the original density-controlled gaps. Blocks cannot float into unfinished rows of another size or acquire arbitrary heights. Ordering and Hide/Show remain editable **inside each size group**; existing saved widget IDs, visibility, preference API, chart data and reset/default behavior stay compatible. CSS Grid automatically resizes whole rows when live content grows, without pixel offsets, layout timers or extra polling.
|
||||
|
||||
- **Layout and shape polish:** all 62 blocks remain movable, hideable, recoverable and resettable using existing account preferences. The X Hide control now matches the rounding of the arrow buttons for all five global corner presets; the RustProxy logo keeps its established outline and is excluded from global corner changes. No new metric polling, backend settings, API routes or version changes.
|
||||
- **62 optional/standard blocks:** six more miniature history cards and seven new full-width multi-series charts. The new views cover requests/s, H1/H3 shares, cache misses, backend activity, protocol traffic rates, CPU, RAM, cache behavior, open connections, backend availability and latency. All 13 additions are hidden by default, consume the existing snapshot and have bounded histories; no extra backend polling. Buttons remain right-aligned, with the badge before them.
|
||||
- **Backend upstream protocols:** four explicit, backward-compatible choices: HTTP/1.1 (`http1`, default), Auto (`auto`: HTTPS ALPN H2/H1, cleartext H1), HTTP/2 compatible (`http2`: HTTPS ALPN H2/H1, cleartext h2c) and H2 only (`h2`: HTTPS requires H2, cleartext h2c). No post-failure request replay, extra retry loop or changes to WebSocket semantics.
|
||||
- **Whole-Overview arrangement:** the same visual editor now manages all 62 independent blocks: the previous 30 metric cards, 12 optional time-series cards and seven full-width panels (live traffic, system, connections, cache, process, network and backend table). A responsive, row-aligned grid allows free ordering/hiding of every block without sacrificing the symmetrical factory layout. **Default view** previews the factory layout without writing it; **Reset layout** requests confirmation and restores only Dashboard order/visibility in one preference PUT. Existing saved layout and unrelated account settings remain unchanged.
|
||||
- **More opt-in charts:** CPU, RSS, file descriptors, open connections, WebSocket tunnels, TLS failures/s, request errors/s, recent cache HIT percentage, cache HOT RAM, incoming HTTP/2 share, mean response latency and unhealthy backend count. All are optional and hidden initially; 30-sample history uses the existing status updates and never creates network calls. Ratios and rates require genuine counter deltas; missing observations remain unavailable, not fabricated zeros.
|
||||
- **Overview Cards registry:** source of truth for widget IDs, translations, selectors, defaults and data-source metadata is `src/admin/web/dashboard-widgets.json`. Both server-side preference validation and the authenticated dashboard JavaScript use this registry. Existing order and opt-ins are preserved; stale unknown widget IDs no longer invalidate an entire saved preference document.
|
||||
- **Optional HTTP backend cards:** fourteen opt-in Overview tiles: origin health, in-flight requests, errors/s, health-probe RTT, byte rates, configured upstream modes, request-rate trend, concurrency-capacity utilization, HTTP 5xx, timeouts, DNS/TCP/TLS/I/O errors, retry attempts, queue pressure and Hyper client-pool rotations. All reuse the existing status stream; all fourteen are hidden by default, including upgraded accounts. Configured protocol modes are not negotiated ALPN results.
|
||||
- **No protocol migration or behavior regression for saved origins:** unchanged `protocol: "http2"` HTTPS origins retain their 0.32.2 H1 TLS fallback. The new strict mode must be selected explicitly as `protocol: "h2"`. The Origin editor labels ALPN/H2C transport behaviors, and HTTP/1.1 WebSocket Upgrade continues using its separate client. The OpenAPI Dashboard preferences schema now matches all 49 registered blocks.
|
||||
- **Two optional appearance themes:** **Ultra dark** uses an AMOLED-style near-black canvas and restrained mint highlights; **Warm cream** uses a muted ivory, low-glare palette. Both are selectable in Settings -> Appearance, persisted per administrator via the existing preferences API, available on the login screen after a cached choice, and preserve the original Dark/Light options and dark default.
|
||||
- **Direct block hiding and restoring:** when Overview is unlocked, each numeric tile, chart, diagnostic panel and table has an accessible **× Hide from Dashboard** button. This changes only the current layout draft; the collapsible **Hidden blocks** shelf restores any block immediately. **Save and lock** persists order/visibility once; **Cancel** reverts both. Hidden blocks also remain available in the visual editor. No measurement, registry or server data is deleted.
|
||||
- **Direct, lockable Dashboard arrangement:** choose **Unlock layout** on Overview, drag the handles on actual number tiles, charts, diagnostics panels or the backend table, or use the arrow buttons. **Save and lock** saves once; **Cancel changes** restores the previous order. Moving to another panel discards unsaved edits. No status re-polling or cloning of live charts is necessary. The modal editor remains available for enabling hidden blocks.
|
||||
- **Labeled block types:** all 49 entries have explicit registry metadata for **Number**, **Number + chart**, **Chart**, **Diagnostics panel** or **Table**. Appearance settings and the arrangement modal show the type, and the modal filters hidden blocks by type. Existing selections and defaults are unchanged.
|
||||
- **Visual Overview layout editor:** use **Arrange cards visually** on Overview or **Visual layout editor** in Settings -> Appearance -> Dashboard layout. Drag previews of metrics or large panels to reorder; Show/Hide controls and keyboard arrows are available. Save commits both lists in one account-preference update; Cancel leaves the layout unchanged. Existing Appearance controls still work.
|
||||
- **Connection-level ALPN reuse:** H1/H2 is negotiated only when opening a TLS connection, not on every HTTP request. The existing per-backend Hyper keep-alive/pool and bounded generation recycling (default 25,000 requests or 3,600 seconds) reuse negotiated connections and permit renegotiation when new connections open. No shared protocol-decision cache or extra probes were added: DNS and multi-origin backends may have peers with different H2 support. Explicit H1, H2C and H2-only, and WebSocket isolation keep their existing behavior.
|
||||
- **Regression coverage:** add local TLS peers for H2/H1 ALPN, H2-required failures, cleartext Auto, protocol serialization, and WebSocket isolation; add registry/preference regressions. Existing pooling, health probes, HTTP/3/QUIC and WebSocket transport behavior are unchanged.
|
||||
- **Verification limit:** pre-Cargo checks are runnable here, but Rust 1.99+, real-peer Rust tests, process benchmarks and production acceptance must be executed on a Rust-enabled host; see [test report](docs/TEST_REPORT.md).
|
||||
|
||||
## Previously in 0.32.2
|
||||
|
||||
- **Web Server cache revalidation:** browser refresh (`Cache-Control: no-cache` or `max-age=0`), stale objects and freshness-constrained requests now use stored origin `ETag` / `Last-Modified` validators. An unchanged local static resource returns `304` to RustProxy; it reuses the cached body and increases `X-Cache-Hits` rather than resetting it to a new MISS.
|
||||
- **Correct conditional delivery:** retain the client's original validators for downstream `304` decisions (or serve a body on an unconditional refresh). HEAD, single byte ranges, transformed-response headers and `Vary` isolation are retained. If the local resource changes, a successful response replaces the previous representation; an uncacheable 304 discards the shared copy.
|
||||
@@ -214,6 +235,8 @@ Named HTTP/HTTPS listener bind addresses use the same chip-style editor as vhost
|
||||
### Retained 0.26.4 release notes
|
||||
|
||||
- Extend session-only editor drafts to **404 hosts**, preserving the complete unfinished form state when another editor is opened or the dialog is minimized.
|
||||
- In **Settings -> Appearance**, the Overview list shows clean card names and visibility/reorder actions without type badges; the draggable visual editor still identifies numeric cards, charts, tables and diagnostic panels. Appearance is the first Settings tab on a new browser, then the last active tab is remembered; explicit links such as `/settings?tab=cache` always win.
|
||||
- Independently of Dark, Light, Ultra Dark and Cream, administrators can choose **Corner rounding** (Original, Square, Subtle, Rounded or Extra rounded). Original matches the established geometry in every theme and is the default for existing accounts. Ultra Dark preserves the original coral/soft-green logo mark while keeping its near-black background.
|
||||
- Complete the Polish translation for **Settings -> Appearance -> Button style** and keep the button-size preference independent from global interface scale.
|
||||
- Keep search/filter inputs in compact toolbars no taller than the active button style, including Backends, vhost-style lists, Docker, Logs and Settings search controls.
|
||||
- Reuse the vhost Enabled control presentation in 404 hosts, Redirects and Streams so modal enable/disable state is visually consistent.
|
||||
|
||||
Reference in new issue
Block a user