Skip to content

v6.0.0

Compare
Choose a tag to compare
@marvinruder marvinruder released this 22 Sep 16:47
· 242 commits to main since this release
cb3cebd

What's Changed

Breaking changes

This release migrates away from Redis. Existing Redis instances deployed only for integration with Rating Tracker can be safely discarded of, which will result in the one-time loss of existing cache entries, session IDs and other ephemeral resources. New cached resources and sessions will be stored in the existing PostgreSQL database.

Recently, Rating Tracker migrated from Express to Hono as the underlying web framework. During this migration, the project file structure was also reworked to resemble those of NestJS projects: For each domain such as users, stocks, auth etc., there exists

  • a controller which now handles routing, endpoint documentation, request validation and calls functions handling the vast majority of data processing tasks,
  • a service aggregating functions which implement most logic related to the domain,
  • optionally a schema describing the structure of larger entities for the purpose of validation.

Benefits of Hono include performance, better integration with tools generating an OpenAPI documentation, better validation of requests and responses supported by Zod, as well as type safety across both backend and frontend code by using Hono Client. Hono now also supports adding security-related headers like Content-Security-Policy etc. to responses, so those can be removed from a reverse proxy configuration. The integration with reverse proxies has also been improved in the way that the number of trustworthy proxies can now be configured using the environment variable TRUSTWORTHY_PROXY_COUNT. This has an impact on the evaluation of the X-Forwarded-For header and helps identifying a client’s real IP.

Finally, the development services no longer include an nginx reverse proxy. Instead, Vite runs a proxy forwarding all API requests to the backend. This proxy supports both HTTP/2 and HTTPS, which means that it must be supplied with SSL certificates. Those can be taken from an existing nginx setup, the files of which can be deleted afterwards.

For details regarding recommended configuration and environment changes, please refer to the README.

Major features

Minor changes

Tweaks and fixes

Notable dependency updates

Full Changelog: v5.0.1...v6.0.0