Releases: heroiclabs/nakama
v3.10.0
Notable changes
Added
- Add ctx field to access http request headers in the runtimes.
- New JS runtime stringToBinary and binaryToString functions.
- New configuration option for frequency of database DNS change scans.
Changed
- Set JavaScript runtime custom error message as the returned payload message in RPC requests.
- JavaScript runtime match data changed to use Uint8Array type.
- Update Tally, and transitive dependencies to resolve dynamic linker error in xxhash package.
- Build with Go 1.17.5 release.
Fixed
- Gracefully close Lua matches when call queue fills up.
- Better handling for Lua runtime wallet update operation errors.
- Fix handling of leaderboard record writes that do not need to update the database.
- Fix parsing edge case in TypeScript/JavaScript runtime storage delete operations.
- Better handling of leaderboard and tournament score submissions that result in no score change.
- Named match creation now returns existing presences if the name mapped to an existing match.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.21.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.9.0
Notable changes
Added
- Allow creation of relayed matches with a name. Names will be mapped to match identifiers.
- Expose Nakama errors to the server runtime.
- The wallet ledger view in the Nakama Console now supports pagination.
Changed
- Periodically check database hostname for underlying address changes more frequently.
- Upgrade GRPC, GRPC-Gateway, Protobuf, PGX, and other dependencies.
Fixed
- Fix optimistic email imports when linking social profiles.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.20.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.8.0
Notable changes
Added
- Add final notification sent to sockets closed via single socket option.
- Add match signal function to server framework.
- Add node status icons to the console dashboard.
Changed
-
Build with Go 1.17.2 release.
-
Match handlers are now required to implement a signal handler function.
Match signals allow the match handler to be sent a reservation signal to mark a user ID or session ID into the match state ahead of their join attempt and eventual join flow. This is useful to apply reservations to a matchmaking system with Nakama's matchmaker or match listings APIs.
-
Log status follow missing users at debug instead of warn level.
Fixed
- Fix input validation edge case in group listing operations.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.19.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.7.0
Notable changes
Added
- New config options to enforce a single socket per user, and a single match per socket.
Changed
- Build with Go 1.17.1 release.
- Allow tournament creation operations to set the authoritative flag.
- Update to nakama-common 1.18.0 release.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.18.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.6.0
Notable changes
Added
- More informational logging when groups are created, updated, or deleted.
- Add "ChannelMessageUpdate" function to server framework.
- New config option to toggle Lua runtime error stacktraces returned to clients.
Changed
- Use the Facebook Graph API v11.0 version.
- Defer Facebook email import execution to after account creation.
- Improve encode/decode check in authoritative match creation parameters.
- Warn when using deprecated config parameters.
- Improve email import semantics when linking social accounts.
- Log IAP provider API response payload when non 200 status code is returned.
- Better handling of storage operations where OCC is not required.
- Default ledger updates to false in "walletsUpdate" function in the JavaScript/Lua runtimes. Same as how Go usage works.
- Build with Go 1.17.0 release.
- Purchase validation functions now return a flag indicating if valid purchases are new or resubmitted.
- Adjust Lua runtime pool allocation startup logs.
Fixed
- Fix log level in Lua runtime log calls which use structured logger fields.
- Register purchase validation before/after hooks in JavaScript/Lua runtimes.
- Register "DemoteGroupUsers" before/after hooks in the JavaScript runtime.
- Add missing "environment" to JavaScript ValidatedPurchases type.
- Fix typos in error messages which mention empty input values.
- Fix resolution of exported time and latency metrics.
- Optimize tournament lookup operations.
- Fix "groupUpdate" function incorrect parsing of "open" argument in the Lua runtime.
- List JavaScript modules if loaded from the default entrypoint in the Console.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.17.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.5.0
Notable changes
Added
- Handle thrown JS runtime custom exceptions containing a message and a grpc code to be returned in the server response.
- Add function to retrieve a random set of users to server framework.
- Add ChannelMessageSend function to server framework.
- Add BuildChannelId function to server framework.
Changed
- Apple Sign-In is now supported across both Web and mobile tokens.
- Status messages can now be up to 2048 characters (increased from 128 characters).
- Improved SQL used in unfiltered group listings queries.
- Throw error instead of panic when attempting to create a group with the system user.
- Add userId field for permission check in JavaScript/Lua runtimes groupUpdate functions.
- Allow standard space characters in usernames for direct compatibility with Steam display names.
- Build with Go 1.16.7 release.
- Allow batch-only leaderboard and tournament score lookups from the server framework.
- Return a better error message when single input wallet updates are performed for a user which does not exist.
- Update to newer Apple guidelines on Game Center root certificate validation in authentication.
Fixed
- Fix creator id being read from the wrong argument in JavaScript runtime groupUpdate function.
- Fix max count being incorrectly validated in groupUpdate JavaScript runtime function.
- Fix error handling when attempting to write records to a tournament that does not exist.
- Fix JavaScript runtime missing fields from leaderboards/tournaments get, list, and write functions.
- Fix JavaScript runtime ownerId field bad parsing in leaderboard/tournament records list functions.
- Fix parameter usage in leaderboard score set operator.
- Fix JavaScript runtime storageList not returning a cursor.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.16.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.4.0
Notable changes
Added
- Add new groupsList runtime function.
- Add runtime leaderboardList and leaderboardsGetId functions.
- Add leaderboard/tournament prev_reset field.
- Add custom metrics runtime functions for counters, gauges, and timers.
- Add optional override for runtime Apple IAP validation function.
- Add socket lang parameter to Go runtime contexts.
Changed
- Include ticket in party matchmaker add operation responses.
- Build with Go 1.16.5 release.
- Replace Bleve gtreap in-memory store implementation with a more compact version.
- Users kicked from parties now receive a party close event.
- Log recovered panics in HTTP handler functions at error level rather than info.
- Add new langTag, members and open filters to the group listing API.
- Upgrade pgx to v4 for improved SQL performance.
- Update RegisterLeaderboardReset runtime function signature.
- Cancel runtime context when graceful shutdown completes.
- Add button to Nakama Console UI to allow device IDs to be copied.
Fixed
- Ensure all members are correctly listed in party info when there are multiple concurrent successful joins.
- Correctly set party ID in matchmaker matched callback input.
- Send Party close messages only where appropriate.
- Fix TypeScript/JavaScript match dispatcher presence list validation.
- Fix JavaScript/Lua friendsList incorrect returned values.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.15.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.3.0
Notable changes
Added
- Tournaments and leaderboards now allow operator scoring to be passed in on updates.
- Tournaments and leaderboards now support decrement score operator.
- Add "rpc_id" and "api_id" to the structured logger output in API calls.
Changed
- Store email, avatar URL, and display name provided by Apple, Facebook, and Google login providers if empty.
- Change runtime group add/kick/promote/demote APIs to include optional callerID parameter for permission checking. If the caller ID is an empty string it defaults to the system user.
- Default to use SSL mode "prefer" in database connections.
Fixed
- Fix reading Lua authoritative match states that contain functions.
- Fix reading JS/TS authoritative match states that contain functions.
- Use UNIX path representation for embedded migrations and console files on Windows systems.
- Update Lua VM implementation to resolve nil reference caused after a VM registry resize.
- Pointerize slice and map types when passed into the JS VM so that they're mutated by reference.
- Fix off by one error in leaderboard records returned by "around owner" queries.
- Return null from within JS VM GetMatch function if match does not exist.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.14.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.2.1
Notable changes
Changed
- A user's online indicator now observes the status mode rather than just socket connectivity.
- Update sql-migrate library to a32ed26.
- Rework some migrations for better compatibility with different database engines.
- Update to Protobuf v1.5.2, GRPC v1.37.0, and GRPC-Gateway v2.3.0 releases.
- Update to Bleve v2.0.3 release.
- Various other dependency updates.
Fixed
- Fix user scoping in Nakama Console purchase listing view.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.13.1 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"
v3.2.0
Added
- New API to logout and intercept logouts with session and refresh tokens.
- Add a leave reason to presence events to handle transient disconnects more easily.
- New API for IAP validation with Apple App Store, Google Play Store, and Huawei AppGallery.
Changed
- Improve struct field alignment on types in the social package.
- Improve memory re-use within the matchmaker and match registry structures.
- Support Facebook Limited Login tokens received into the standard Facebook login/link/unlink functions.
- Update JS VM to newer version. This resolves an issue with resizing some JS arrays.
- Build with Go 1.16.3 release.
Fixed
- Matchmaker entries which were only partially matched together could not combine with larger player counts.
- Fix bad inputs parsed in some before/after hook executions made from the API Explorer in the Console.
- Correctly return Unix timestamps in JS runtime functions returning users/accounts data.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.13.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/[email protected]"