github yusing/godoxy v0.27.0

20 hours ago

New Features

  • Core/Rules: Introduces a new block-based DSL syntax for writing route rules. The new syntax supports:
    • Nested blocks
    • elif/else branches
    • Phase-based execution (pre/post phases) for more granular control over request handling.
    • Adds $redacted() dynamic variable for masking sensitive values in rule expressions.
  • Core/CLI: New godoxy-cli to query your LOCAL_API_ADDR in cli.
  • Core/API/Playground: Enhanced playground now accepts rule config as a string, supporting both YAML list and block DSL formats.
  • WebUI:
    • Rules (Block syntax): Context-aware syntax highlighting and autocompletion for keywords, HTTP methods, variables and mutation fields.
    • Home: Added category move functionality to context menu.
    • Route Edit Dialog: Added a new rules section.
    • Wiki: Integrated Fumadocs-based wiki for improved documentation experience.

Improvements

  • Core/Route: port syntax is now more flexible (e.g. :remote_port, local_port:, remote_port and local_port:remote_port)

  • Core/Middleware:

    • Response body modification now restricted to text-like content types (e.g. HTML, JSON, YAML, XML) only.
    • Binary content and transfer-encoded responses are now properly blocked from body modification while still allowing header/status changes.
    • Skip middlewares like OIDC, hCaptcha, Crowdsec and ForwardAuth for common static asset paths, allowing:
      • PWA apps to be properly detected
      • Website icons to be displayed properly
  • Core/Health: Recovery notifications now only sent after a prior down notification exists, preventing confusing alerts when services recover before failure threshold is met.

  • Core/Server: Fixed race condition when closing listeners and shutting down servers.

  • Core/Icons: Improved icon search with tiered ranking (exact > prefix > contains > fuzzy) for better results.

  • WebUI:

    • Layout: Glass morphism styling with improved scrollbar handling and sticky titlebar.
    • Enhanced mobile responsiveness across all pages.
    • Support config page on mobile.
    • Home: Enhanced mobile responsiveness with optimized event drawer (pull-to-open gesture), compact health badges, and touch gesture handling.
  • Servers Page: Redesigned servers page with responsive sidebar and real-time metric cards for CPU, Memory, Disk, Network, and Temperature.

  • Config page: Made config page fully responsive with proper breakpoint handling; YAML editor now hidden on mobile.

  • Routes page: Fixed grid responsiveness for smaller screens and vertical layouts; improved log header scrolling on mobile.

Bug Fixes

  • Core/HTTP3: Fixed panic in HTTP3 server with route rules.
  • Core/Proxmox: Added websocket validation to journalctl and tail endpoints to ensure only websocket connections are accepted.
  • WebUI/Config: Fixed non-string config content edge case handling.
  • WebUI/Autocert: Enhanced UI element visibility (carousel navigation text wrapping, renew button labels).

Upgrade Notes

  1. Rules Syntax: The new block DSL is optional and backward-compatible with existing YAML rules. Consider migrating to block syntax for improved readability.
  2. WebUI: Mobile users will notice improved WebUI experience.
  3. Wiki Migration: The wiki has been migrated to a new Fumadocs-based system.
  4. Backup: Always backup your configuration before upgrading.

Full Changelog: v0.26.0...v0.27.0

Don't miss a new godoxy release

NewReleases is sending notifications on new releases.