Releases: heroiclabs/nakama
Releases · heroiclabs/nakama
v1.0.1
Notable changes
Added
- New code runtime functions to convert UUIDs between byte and string representations.
Changed
- Improve index selection in storage list operations.
- Payloads in
register_before
hooks now usePascalCase
field names and expose correctly formatted IDs. - Metadata regions in users, groups, and leaderboard records are now exposed to the code runtime as Lua tables.
Fixed
- The code runtime batch user update operations now process correctly.
v1.0.0
Notable changes
Added
- New storage partial update feature.
- Log warn messages at startup when using insecure default parameter values.
- Add code runtime function to update groups.
- Add code runtime function to list groups a user is part of.
- Add code runtime function to list users who're members of a group.
- Add code runtime function to submit a score to a leaderboard.
- Send in-app notification on friend request.
- Send in-app notification on friend request accept.
- Send in-app notification when a Facebook friend signs into the game for the first time.
- Send in-app notification to group admins when a user requests to join a private group.
- Send in-app notification to the user when they are added to a group or their request to join a private group is accepted.
- Send in-app notification to the user when someone wants to DM chat.
Changed
- Use a Lua table with content field when creating new notifications.
- Use a Lua table with metadata field when creating new groups.
- Use a Lua table with metadata field when updating a user.
- Updated configuration variable names. The most important one is
DB
which is nowdatabase.address
. - Moved all
nakamax
functions intonakama
runtime module. - An invalid config file or invalid cmdflag now prevents the server from startup.
- A matchmake token now expires after 30 instead of 15 seconds.
- The code runtime
os.date()
function now returns correct day of year. - The code runtime context passed to function hooks now use PascalCase case in fields names. For example
context.user_id
is nowcontext.UserId
. - Remove
admin
sub-command. - A group leave operation now returns a specific error code when the last admin attempts to leave.
- A group self list operations now return the user's membership state with each group.
v1.0.0-rc.1
Notable changes
Added
- New storage list feature.
- Ban users and create groups from within the code runtime.
- Update users from within the code runtime.
- New In-App Purchase validation feature.
- New In-App Notification feature.
Changed
- Run Facebook friends import after registration completes.
- Adjust command line flags to be follow pattern in the config file.
- Extend the server protocol to be batch-orientated for more message types.
- Update code runtime modules to use plural function names for batch operations.
- The code runtime JSON encoder/decoder now support root level JSON array literals.
- The code runtime storage functions now expect and return Lua tables for values.
- Login attempts with an ID that does not exist will return a new dedicated error code.
- Register attempts with an ID that already exists will return a new dedicated error code.
Fixed
- The runtime code for the after hook message was set to "before" incorrectly.
- The user ID was not passed into the function context in "after" authentication messages.
- Authentication messages required hook names which began with "." and "_".
- A device ID used in a link message which was already in use now returns "link in use" error code.
Note: These migration notes cover changes which need to be made in developer code. This release requires a Unity client with version greater or equal to 0.7.0 due to small changes in the server protocol.
v0.13.1
v0.13.0
Notable changes
Added
- Lua script runtime for custom code.
- Node status now also reports a startup timestamp.
- New matchmaking feature.
- Optionally send match data to a subset of match participants.
- Fetch users by handle.
- Add friend by handle.
- Filter by IDs in leaderboard list message.
- User storage messages can now set records with public read permission.
Changed
- The build system now suffixes Windows binaries with
exe
extension.
Fixed
- Set correct initial group member count when group is created.
- Do not update group count when join requests are rejected.
- Use cast with leaderboard BEST score submissions due to new strictness in database type conversion.
- Storage records can now correctly be marked with no owner (global).
NOTE: This release is compatible with cockroachdb 1.0 or greater. It should also be used with the Unity client at version 0.6.0 or greater.
v0.12.2
Notable changes
Added
- Add
--logtostdout
flag to redirect log output to console. - Add build rule to create Docker release images.
Changed
- Update Zap logging library to latest stable version.
- The
--verbose
flag no longer alters the logging output to print to both terminal and file. - The log output is now in JSON format.
- Update the healthcheck endpoint to be "/" (root path) of the main server port.
Fixed
- Fix a race when the heartbeat ticker might not be stopped after a connection is closed.
NOTE: This release is compatible with cockroachdb beta-20170330 but not newer versions yet. This is due to an issue in cockroachdb with schema migrations.
v0.12.1
Notable changes
Added
- Optionally allow JSON encoding in user login/register operations and responses.
Changed
- Improve user email storage and comparison.
- Allow group batch fetch by both ID and name.
- Increase heartbeat server time precision.
- Rework the embedded dashboard.
- Support 64 characters with
SystemInfo.deviceUniqueIdentifier
on Windows with device ID link messages.
Fixed
- Fix Facebook unlink operation.
v0.12.0
Notable changes
Added
- Dynamic leaderboards feature.
- Presence updates now report the user's handle.
- Add error codes to the server protocol.
Changed
- The build system now strips up to current dir in recorded source file paths at compile.
- Group names must now be unique.
Fixed
- Fix regression loading config file.
v0.11.3
v0.11.2
Notable changes
Added
- Include Dockerfile and Docker instructions.
- Use a default limit in topic message listings if one is not provided.
- Improve log messages in topic presence diff checks.
- Report self presence in realtime match create and join.
Changed
- Improve warn message when database is created in migrate subcommand.
- Print database connections to logs on server start.
- Use byte slices with most database operations.
- Standardize match presence field names across chat and realtime protocol.
- Improve concurrency for closed sockets.
Fixed
- Enforce concurrency control on outgoing socket messages.
- Fix session lookup in realtime message router.
- Fix input validation when chat messages are sent.
- Fix how IDs are handled in various login options.
- Fix presence service shutdown sequence.
- More graceful handling of session operations while connection is closed.
- Fix batch user fetch query construction.
- Fix duplicate leaves reported in topic presence diff messages.