Noteworthy changes deprecated

8.46

Breaking Change

node.js instead of nginx

  • The UI's former “home container” which was a static nginx server suited for delivering UI assets (JavaScript bundles, CSS, etc.), has been replaced by a fastify-based nodejs service.
  • IMPORTANT: Please review and adjust existing memory and CPU limits.
    • The former nginx-based service had lower memory requirements because it only served static UI assets. The new Node.js-based service requires more memory to operate efficiently, especially when features such as BIMI are enabled. The default is 256Mi for both request and limit. By default, the Helm chart deploys two instances of the service.
    • A CPU request is still defined, but no CPU limit is set anymore. This configuration is common and intentional, as it allows the service to handle short CPU bursts without being throttled. If your deployment requires a CPU limit due to cluster policies or operational requirements, you may set one accordingly. A commonly used default limit is 1 CPU.
  • This shift introduces a proper runtime environment directly alongside the UI, enabling a Backend-for-Frontend (BFF) pattern. Instead of routing every UI-adjacent operation through the Java middleware, we can now implement lightweight, UI-centric services directly within the UI stack.
  • BIMI is the first feature built on this foundation.
  • The new architecture also opens the door for additional UI-focused functionality, such as:
    • Local authentication handling, potentially superseding the Switchboard service for UI-side auth flows.
    • UI-specific configuration endpoints, allowing faster rollout and iteration of configuration changes without touching and restarting the core backend services.
  • Overall, this refactoring establishes a more flexible and responsive UI platform, better suited for features that are tightly integrated with the frontend experience.

Move JWT handling from Switchboard to core UI

  • Historically, the Switchboard service handled JWT-based authentication. The Switchboard's functional focus is on WebSockets and push events and quite often it is not installed for that purpose.
  • However, the AI service or new feature like BIMI need JWT-based authentication as well, so the Switchboard needs to be setup just for the authentication part.
  • Therefore, we decided to relocate authentication from the Switchboard into the new Core UI service.
  • See Auth for more details

8.33

Consumed API

Migrate to new Mail API endpoints

Breaking Change

  • Issue 715
  • Migrate to new Mail API endpoints for actions move, flag, archiveand copy
  • The new endpoints support multiple mail references in a single request, improving efficiency and performance.
  • This change is also a prerequisite for enabling some of our upcoming features.
  • Backward Compatibility
    • The old endpoints are used by default for middleware versions before version 8.33.
    • If the old API is still needed, you can enable it by setting io.ox/mail//useLegacyAPI to true.