Skip to content

Commit

Permalink
Release 5.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Alfagun74 committed Sep 12, 2023
2 parents 9bdef05 + 02a7333 commit 22e9fb5
Show file tree
Hide file tree
Showing 48 changed files with 3,259 additions and 602 deletions.
78 changes: 77 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,87 @@
# GameVault Backend Server Changelog

## 5.0.0
## 6.0.0

### Changes

- TODO: Removed Deprecated Utility APIs

## 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` = true
- `USERS_REQUIRE_FIRST_NAME` = true
- `USERS_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](https://github.com/Phalcode/gamevault-backend/issues/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](https://github.com/Phalcode/gamevault-backend/issues/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](https://github.com/Phalcode/gamevault-backend/issues/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.

### Thanks

- @freitagdavid
- @Kairubyte
- @yotadak

## 4.0.1

### Changes
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:20.5 AS base
FROM node:20.6 AS base
# Default Variables
ENV PUID=1000
ENV PGID=1000
Expand Down
54 changes: 29 additions & 25 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gamevault-backend",
"version": "4.0.1",
"version": "5.0.0",
"description": "the self-hosted gaming platform for drm-free games",
"author": "Alkan Alper, Schäfer Philip GbR / Phalcode",
"private": true,
Expand All @@ -12,38 +12,39 @@
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/src/main",
"lint": "eslint \"{src,apps,libs}/**/*.ts\" --fix",
"migration:gen:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/sqlite.migration-config.js migration:generate -p",
"migration:run:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/sqlite.migration-config.js migration:run",
"migration:revert:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/sqlite.migration-config.js migration:revert",
"migration:gen:postgres": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/postgres.migration-config.js migration:generate -p",
"migration:run:postgres": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/postgres.migration-config.js migration:run",
"migration:revert:postgres": "rimraf dist && pnpm run build && typeorm -d dist/modules/database/migrations/postgres.migration-config.js migration:revert"
"migration:gen:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/sqlite.migration-config.js migration:generate -p",
"migration:run:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/sqlite.migration-config.js migration:run",
"migration:revert:sqlite": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/sqlite.migration-config.js migration:revert",
"migration:gen:postgres": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/postgres.migration-config.js migration:generate -p",
"migration:run:postgres": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/postgres.migration-config.js migration:run",
"migration:revert:postgres": "rimraf dist && pnpm run build && typeorm -d dist/src/modules/database/migrations/postgres.migration-config.js migration:revert"
},
"dependencies": {
"@nestjs/axios": "3.0.0",
"@nestjs/common": "10.2.1",
"@nestjs/core": "10.2.1",
"@nestjs/passport": "10.0.1",
"@nestjs/platform-express": "10.2.1",
"@nestjs/common": "10.2.4",
"@nestjs/core": "10.2.4",
"@nestjs/passport": "10.0.2",
"@nestjs/platform-express": "10.2.4",
"@nestjs/schedule": "3.0.3",
"@nestjs/swagger": "7.1.8",
"@nestjs/swagger": "7.1.11",
"@nestjs/typeorm": "10.0.0",
"async-g-i-s": "1.5.0",
"axios": "1.4.0",
"axios": "1.5.0",
"bcrypt": "5.1.1",
"better-sqlite3": "8.5.2",
"better-sqlite3": "8.6.0",
"class-transformer": "0.5.1",
"class-validator": "0.14.0",
"compression": "1.7.4",
"cookie-parser": "1.4.6",
"dotenv": "16.3.1",
"express": "4.18.2",
"fastify": "4.21.0",
"fastify": "4.22.2",
"file-type-checker": "^1.0.8",
"helmet": "7.0.0",
"mime": "3.0.0",
"morgan": "1.10.0",
"nest-winston": "1.9.4",
"nestjs-paginate": "8.2.1",
"nestjs-paginate": "8.3.0",
"node-7z": "3.0.0",
"passport": "0.6.0",
"passport-http": "0.3.0",
Expand All @@ -53,33 +54,36 @@
"rxjs": "7.8.1",
"sharp": "0.32.5",
"string-similarity-js": "2.1.4",
"throttle": "^1.0.3",
"typeorm": "0.3.17",
"typeorm-naming-strategies": "4.1.0",
"winston": "3.10.0",
"winston-console-format": "1.0.8",
"winston-daily-rotate-file": "4.7.1"
},
"devDependencies": {
"@nestjs/cli": "10.1.16",
"@nestjs/cli": "10.1.17",
"@nestjs/schematics": "10.0.2",
"@types/bcrypt": "5.0.0",
"@types/compression": "1.7.2",
"@types/cookie-parser": "1.4.3",
"@types/compression": "1.7.3",
"@types/cookie-parser": "1.4.4",
"@types/express": "4.17.17",
"@types/mime": "3.0.1",
"@types/morgan": "1.9.5",
"@types/node": "20.5.6",
"@types/multer": "^1.4.7",
"@types/node": "20.6.0",
"@types/node-7z": "2.1.5",
"@types/passport-http": "0.3.9",
"@types/string-similarity": "4.0.0",
"@typescript-eslint/eslint-plugin": "6.4.1",
"@typescript-eslint/parser": "6.4.1",
"eslint": "8.47.0",
"@types/throttle": "^1.0.1",
"@typescript-eslint/eslint-plugin": "6.6.0",
"@typescript-eslint/parser": "6.6.0",
"eslint": "8.49.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-import": "2.28.1",
"eslint-plugin-prettier": "5.0.0",
"prettier": "3.0.2",
"prettier-plugin-jsdoc": "1.0.1",
"prettier": "3.0.3",
"prettier-plugin-jsdoc": "1.0.2",
"simple-git-hooks": "2.9.0",
"ts-node": "10.9.1",
"typescript": "5.2.2"
Expand Down
Loading

0 comments on commit 22e9fb5

Please sign in to comment.