Releases: Phalcode/gamevault-backend
Releases · Phalcode/gamevault-backend
Version 9.0.0
Recommended Gamevault App Version: v1.7.3
Breaking Changes & Migration
- Relocated all APIs from
/api/v1
to/api
. This change reflects our move beyond version one, ensuring the most up-to-date and current API is always at/api
. - Deprecated
/api/health/admin
in favor of/api/admin/health
to provide additional features for server admins in the future. - Deprecated
/api/database/*
in favor of/api/admin/database/*
for the same reason as above. - The old routes will be removed in v11.0.0
Changes
- #205 Added real-time online/playing/busy/offline status.
- Introduced Socket Secret in
/api/users/me
to authenticate via Socket.IO - The Debug Log level now only returns the redacted server configuration, without sensitive data.
- Published Async API doc on
/api/docs/async
(doesn't work on Docker, due to a bug, so it is disabled). - Introduced new configuration
SERVER_ONLINE_ACTIVITIES_DISABLED
to disable activities. - Fixed contract generation #146 (again).
- Configured Admin Health API to not write any logs.
Thanks
Version 8.0.3
Recommended Gamevault App Version: v1.7.0
Changes
- Fixed Bug of 8.0.2 that using no filters at all would crash the server
Version 8.0.2
Recommended Gamevault App Version: v1.7.0
Changes
- Fixed Bug #268 where your games could not be filtered based on their tags and genres.
- Also made Tags API faster by limiting pages to 100 results by default.
Version 8.0.1
Recommended Gamevault App Version: v1.7.0
Changes
- Fixed initial Database Setup not happening
- Increased stability of some migrations
Version 8.0.0
Recommended Gamevault App Version: v1.7.0
Breaking Changes & Migration
-
Issue #234: Added a new Health API endpoint for administrators to access detailed server information.
-
The health endpoints now provide data in JSON format, replacing the previous fancy HTML page.
Changes
- Issue #253: Implemented the Database Backup and Restoration API.
- Improved data management: The server no longer saves empty progress entries with a "UNPLAYED" state and 0 minutes of playtime.
- This change involved a database migration to remove such empty progress entries.
- The Progress API now permanently deletes entries marked as unplayed with 0 minutes of playtime.
- Enhanced the Progress Upsert API to handle nullable fields, enabling partial updates.
- Performed additional code refactoring to ensure consistency in code structure and naming.
Thanks
Version 7.0.0
Recommended Gamevault App Version: v1.6.1
Breaking Changes & Migration
-
Case Insensitivity for Usernames and Emails:
- Usernames and user emails are now treated as case-insensitive.
- During the update to v7.0.0, a new database migration will check for users with conflicting usernames or emails caused by differences in letter casing.
- If such conflicts are found, the migration will halt and report an error. This prevents the update to v7.0.0 until these conflicts are resolved.
- Administrators are advised to revert to the previous GameVault version to address these conflicts and ensure a smooth transition to v7.0.0.
-
Performance Enhancement: Removal of Progress Details and Filters from /games API:
- To further enhance performance, the /games API no longer includes progress details and filters.
-
Improved User Progress Handling:
- User-related calls now include deleted game details in their progress information.
- This enhancement allows for the correct display of progress even after a game has been deleted, ensuring a more comprehensive user experience.
Changes
- Made Failing Game Downloads more robust
- Fixed missing indexation game type getting detected as difference
Thanks
Version 6.0.0
Recommended Gamevault App Version: v1.6.0
Breaking Changes & Migration
- We've removed the outdated Utility APIs. Instead, please switch to using the more current replacements.
- We've removed the Tags, Genres, Developers, and Publisher details from entries on the /games API for performace Reasons. To get all details for a game use the /game/:id API
- Fuzzy Search for Tags, Genres, Developers, and Publishers has been eliminated. (Previously for example, searching for a Publisher like "Rockstar" would return "GTA V") This change was made to improve search performance (18x speed)
Changes
- Fixed the default CORS configuration.
- Significantly enhanced the RAWG Search API, resulting in approximately 5 times faster performance and reduced data consumption. #187. Previously, search results inadvertently generated numerous tags, genres, developers, and stores in your databases, as well as images on your filesystem. This is no longer the case. The RAWG Search now provides only essential game information for identification and remapping.
- Improved Search Performance.
- Enhanced Error-Handling during image downloads.
- Transitioned to the Debian
20.6-slim
docker image. - Rectified "required/nullable" fields in the API Specification.
- Resolved the file title extraction issue. #209.
- Fixed the Broken Content-Disposition Header for some downloads. #209.
- Game Type only gets detected once, or when a game file changes and not on every index. #200
- Unified global error handler for 4XX and 5XX messages. The Problem is now directly inside the response without the duplicated status.
- Implemented
(NC)
flag to disable rawg-caching for single games. #194(Phalcode/gamevault-app#194)
Thanks
Version 5.0.2
Version 5.0.1
Recommended Gamevault App Version: v1.5.0
Changes
- Fixed Error when mapping RAWG Games that have no background_image.
- Fixed Error when downloading Games that have special Characters in their name.
Version 5.0.0
5.0.0
Recommended Gamevault App Version: v1.5.0
Breaking Changes & Migration
Issue #157: Optional User Information
- Email, First Name, and Last Name are no longer mandatory by default for new registrations. You can regain the previous functionality by configuring these options:
USERS_REQUIRE_EMAIL
= trueUSERS_REQUIRE_FIRST_NAME
= trueUSERS_REQUIRE_LAST_NAME
= true
Removed Image Fields from Registration
- Removed all images from registration: To prevent spam attacks, we can't allow people to save images on your server without your permission. Therefore, we removed all image fields from registration.
Changes
Runtime
- Updated to Node 20.6
Progress and Game Display
- Progress calls now include soft-deleted games, making it possible to display them correctly even after a game has been deleted.
Image Upload API
- Added a new API for Image Upload. See Issue #173.
- Introduced an option to set Images by their ID in the Update User and Update Game APIs.
- Implemented an API for updating Game Background Images.
- Added a configurable maximum image upload size,
IMAGE_MAX_SIZE_IN_KB
(default is 10,000 KB, which is 10MB). - Enhanced file upload security with Magic Bytes Checking for images.
- Modified the Game Release Date to be nullable. Now, filenames can consist only of the game title, see Issue #180.
- Improved RAWG Matching Algorithm to use fewer calls to Rawg and work without Release Dates.
- Made Image Source URLs nullable and unique.
- Images are now saved with their correct file extensions.
- Limited image format support to bmp, jpeg, png, tiff, gif, and ico to ensure compatibility with WPF.
- Added
IMAGE_SUPPORTED_IMAGE_FORMATS
, you can change the supported Content-Type Headers for images with this parameter if you have a non WPF Client. - Removed unused Image Garbage Collector configurations (
IMAGE_GC_INTERVAL_MINUTES
&IMAGE_GC_KEEP_DAYS
).
API Specification
- Added
@ApiBasicAuth()
to all APIs except Health API #186
Bandwidth Control
- Implemented server-side bandwidth limit configuration
SERVER_MAX_DOWNLOAD_BANDWIDTH_IN_KBPS
to control the server's maximum bandwidth. See Issue #10. - Added client-side bandwidth limit configuration through the
X-Download-Speed-Limit
Header in Download Requests.
Admin Features
- Admins now have the ability to delete the progress of other users by using the Progress ID.
RAWG Cache
- Changed the default RAWG Cache retention period from 7 days to 30 days since game data doesn't change frequently.
Database Changes
- Migrated Email, First Name, and Last Name as nullable fields in the database.
- Implemented Conditional Validators to ensure that only registrations matching the required user information configuration are accepted, denying registrations that don't meet the configuration criteria.
- Refactored the Configuration Class for improved organization and readability.
- First And Last Name fields now support German Umlauts (like ä,ö,ü, etc.).
- Added
RAWG_API_EXCLUDE_STORES
Config Parameter for Itch.io Indie-Game Lovers. - Set RAWG API Calls to look for games on all Platforms & Consoles and not just PC.
- Fixed a bug where Boxarts couldn't be found for certain games because the search effort was insufficient.
- Added nullable uploader field to Image Enity and uploaded_images field to User Entity for traceability.