- The database is now MongoDB instead of SQLite.
- The database system is now modular so it's easier to add new databases.
- Switched to slog instead of using auralog, no more thirdparty dependency for logging!
- A bunch of stuff, afterall it was a recode.
- New endpoint for server DLL verification.
- User bit flag system for different flags like DONOR and such. Should match up with the game server otherwise issues may occur.
- New API endpoint to transfer characters and copy characters to another account.
- More detailed error responses for JSON errors.
- Drasticly imporved the response speed and RAM usage when updating characters.
- With character data the size of 5001 bytes, was
~100ms
now it's~30ms
- With character data the size of 5001 bytes, was
- Removed API endpoint to get all characters in via database, since it could be used to DoS the server.
- Config options to modify the driver for SQLite.
maxidleconns: 0 # Max idle connections
maxopenconns: 0 # Max open connections
connmaxlifetime: "" # Max lifetime of connections.
- Rate limiting by IP instead.
- Permission check for database file; make sure the database file has read-write permissions.
- New endpoint to restore by SteamID instead of character UID.
- Changed the router to chi instead of gorilla/mux
- RiP gorilla/mux since it's no longer maintained.
- Better error handling for database opening.
/character/rollback
endpoints are now in their own routing group. This will break any automated rollback systems.- Moved versions and restore endpoints to be under via
/character/rollback
routing group.
- Fixed SQL connection not being closed.
- Fixed slot being wrong for generated character file.
- Timeout for database in config.
- Gradefully shutdown server on signal.
- Added config options
BackupTime
andMaxBackups
- Customize how max character backups and how often to do character backups
- Added new endpoint
PATCH /character/{steamid}/{slot}/rollback/latest
which restore the character to via latest backup.
- Refactor the code and the project structure.
- Add migration system (with -m flag) to migrate TOML/INI config file to YAML
- Add authentication to check useragent as well.
- Add database migration system, thanks to @pbarnum
- Add new endpoints for rollback system, thanks to @pbarnum
PATCH /character/{uid}/restore
- Restore character to original version.GET /character/{steamid}/{slot}/versions
- Get all character versions.PATCH /character/{steamid}/{slot}/rollback/{version}
- Rollback character to specified version.
- Fix issue of creating character not overwriting, thanks to @pbarnum
- Add isAdmin field for FN admins.
- Add API endpoint to generate character file from data on via database for steamid64 and slot.
- Add API endpoint to check if FN connection is valid.
- Add new middleware method to bypass authorization so we can do manual authorization.
- Add support for YAML config file.
- Fix GET endpoint for steamid and slot to return single character instead of array of characters.
- Make sure slot is always emitted, and defaults to 0 if there's no slot.
- Add debug message to see if request is received by server.
- Add (bool)isBanned field to JSON response for
api/v1/character/{steamid64}
,api/v1/character/{steamid64}/{slot}
,api/v1/character/id/{id}
- Add size field
- Data is now text instead of blob type.
Initial Release
- Removed race field since it's no longer used.
- Removed all unnecessary fields and replaced them with a single blob field.
- Say the actual license in startup instead of just linking to license.
- Changed all JSON fields to be text instead of varchar(255)
- Got rid of sheaths field.
- Switched bags, spells, and equipped to text to support large JSON data.
- Switched to new migration engine.
- Updated auralog and entgo dependencies to the latest version
- Switched to a faster json package (go-json) instead of using encoding/json
- Switch race to string because MSC.
- Adds ExpireTime to config so you can modify when the log rotates.
- Adds Version to program start so you know what version you're running.
- Fixes log rotate not working.
- Fixes log not appending when resuming log file.
- Concurrency support for lists.
- Fixes api/v1 endpoints not returning the result.
- Fixes TLS error when enabled.
- Reverted config for HTTP and HTTPS ports, cause it is not needed.
- Auto cert http server will now error out if it fails.
- Enabled tls-alpn ACME challenges for TLS.
- Switched from TOML to INI config format because it's more standard.
- Set control headers to further secure the server.
- Hopefully fixed autocert not working on non default ports.
- Added config for HTTP and HTTPS ports
- Added auto certificate if enabled from Let's Encrypt.
- Added domain config option for the auto cert system.
- Renamed config IP to address.
- Renamed cdir flag to cfile.
Initial release.