Skip to content

Releases: heroiclabs/nakama

v3.16.0

18 Apr 18:23
Compare
Choose a tag to compare

Notable changes

Added

  • Add "tournamentRecordDelete" function to server frameworks.
  • Add "insecure" flag to runtime http functions to optionally skip TLS checks.
  • Satori API available to Nakama server in all server frameworks.
  • New "MatchmakerOverride" hook to provide custom matching behaviour.

Changed

  • Improve graceful shutdown of Google IAP receipt processor.
  • If In-App Purchase validation contain mismatching user IDs, do not return an error.
  • Better handling of matchmaker operations while the interval process is in execution.
  • Add user ID param to Go runtime GroupUpdate function.
  • Build with Go 1.20.3 and use Debian bullseye-slim for base docker images.

Fixed

  • Consistent validation of override operator in runtime leaderboard record writes.
  • Correctly filter open/closed groups in the listing API.
  • Ensure direct message channel message list is correctly scoped to participants only.
  • Make next and previous cursor of leaderboard and tournament records around owner operations consistent with record listings.
  • Make next and previous cursor of leaderboard and tournament records haystack operations consistent with record listings.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.27.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.27.0"

v3.15.0

05 Jan 01:57
Compare
Choose a tag to compare

Notable changes

Happy New Year to everyone! 🎉

For the full release notes have a look at our release notes documentation.

Added

  • Allow the socket acceptor to read session tokens from request headers.
  • Add support for custom response headers set in server configuration.
  • Add missing fields to tournament end and reset JavaScript server framework hooks.
  • Add support for removing channel messages to all server runtimes.
  • Allow Console group UI view to add new members.
  • Allow "DELETE" and "HEAD" methods in server framework HTTP request functions.
  • Add In-App Purchase notification callback functions to all server runtimes.
  • Add "DeleteAccount" client API function.
  • Add "DeleteAccount" before and after hook functions to all server runtimes.

Changed

  • Use stricter validation of limit param in server framework storage list operations.
  • Allow newer subdomain variant in Facebook Limited Login token issuer field.
  • Rename "groupsGetRandom" to "groups_get_random" in the Lua server framework for consistency.
  • Accept Google IAP receipts with or without Unity wrapper structures.
  • Update Nakama logos.
  • Use stricter validation of method param in Lua server framework HTTP request function.
  • Disable SQL statement cache mode describe by default. This reverts to the same behaviour as before 3.14.0 release.
  • Build with Go 1.19.4 release.

Fixed

  • Fix response structure in purchase lookups by identifier.
  • Ensure corresponding leaderboard rank cache entries are removed when a user is deleted.
  • Update scheduler when leaderboards and tournaments are deleted from the Console.
  • Fix matchmaker tracking of eligible matches when downsizing for count multiples.
  • Handle context cancellation in "httpRequest" calls in the JavaScript server framework.
  • Handle context cancellation in "httpRequest" calls in the Lua server framework.
  • Fix logic on users who attempt to leave groups they're banned from.
  • Fix logic in optional params in JavaScript server framework token generate function.
  • Validate group member count so it does not update when failing to add a member.
  • Handle Google IAP validation token caching when using credential overrides.
  • More graceful handling of no-op authoritative storage delete operations.
  • Ensure rank cache is correctly updated when joining tournaments.
  • Ensure default parameters for tournament listings are consistent between API and runtimes.
  • Fix Console groups view incorrect visual removal of last group member.
  • Fix In-App Purchase subscription notification handling.
  • Fix handling of party leader transition if previous leader and other members leave concurrently.
  • Fix exact enforcement of maximum party size.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.26.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.26.0"

v3.14.0

14 Oct 23:05
Compare
Choose a tag to compare

Notable changes

For the full release notes have a look at our release notes documentation.

Added

  • Add new GroupsGetRandom function to the runtimes.

Changed

  • More consistent signature and handling between JavaScript runtime Base64 encode functions.
  • Improve group list cursor handling for messages with close timestamps.
  • Improve handling of database connections going through proxies.
  • Improve extraction of purchases and subscriptions from Apple receipts.
  • Improve signature of JavaScript runtime Base64 decode functions.
  • Improve signature of JavaScript runtime Base16 encode and decode functions.
  • Token and credentials as inputs on unlink operations are now optional.
  • Improve runtime IAP operation errors to include provider payload in error message.
  • Build with Go 1.19.2 release.

Fixed

  • Observe the error if returned in storage list errors in JavaScript runtime.
  • More exact usage of limit parameter in leaderboard record listings.
  • Include subscriptions in all data deletion from the developer console.
  • Fix the return format of JavaScript runtime account export function.
  • Add user ID to JS runtime wallet operations returned results.
  • Fix a bug which would prevent subscriptions to be stored when validating with persist set to true.
  • If server shutdown is started before the rank cache is populated observe the context cancellation.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.25.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.25.0"

v3.13.1

18 Aug 03:51
Compare
Choose a tag to compare

Notable changes

For the full release notes have a look at our release notes documentation.

Fixed

  • Push new tag for fix to Docker image releases.

Added

  • Add subscription validation APIs and runtime functions for Google and Apple.
  • New Chat Messages view in the Nakama Console.
  • New Chat Messages listing and delete endpoints in the Nakama Console API.
  • Add extended filtering options to Nakama Console Matches view.
  • Add additional filter handling to Nakama Console Accounts view.
  • Add "NotificationsDelete" function to all runtimes.

Changed

  • Improve runtime handling of non-persisted purchases and subscriptions.
  • Improve validation of count multiple matchmaker parameter.
  • Use stricter validation of user email inputs in the Nakama Console.
  • Add next and previous cursor to results of leaderboard and tournament records around owner client operations.
  • Add next and previous cursor to results of leaderboard and tournament records haystack runtime operations.
  • Build with Go 1.19.0 release.
  • Improve signature of JavaScript runtime HMAC SHA256 hash function.
  • Improve signature of JavaScript runtime Base64 encode functions.
  • Improve handling of JavaScript runtime context cancellation.
  • Allow runtime group updates to increase max count beyond 100.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.24.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.24.0"

v3.12.0

22 May 14:54
Compare
Choose a tag to compare

Notable changes

For the full release notes have a look at our release notes documentation.

Added

  • Add "FriendsBlock" function to all runtimes.
  • Add "ChannelMessagesList" function to all runtimes.

Changed

  • Ensure storage write ops return acks in the same order as inputs.
  • Update console path for delete all data operation.
  • Check HTTP key before Authorization header in RPC function invocations.
  • Expose error message from Apple authentication JWT verification failures.
  • Improve user online status lookups.
  • Build with Go 1.18.2 release.
  • Update naming of delete notifications before/after hook registration functions.
  • Improve clarity of Nakama Console status view graph headers.
  • Improve log messages from failed social provider requests.
  • Improve concurrency with Lua runtime function registrations.
  • Ensure authoritative match loggers correctly include only their own match identifier.
  • Improve handling of large tournament max size values.
  • Improve handling of channel removal on group leave/kick/ban.
  • Small UI adjustments to the group membership view in the Nakama Console.

Fixed

  • Fix data returned by "StreamUserList" in JavaScript runtime.
  • Allow passing lists of presences as match init parameters to Go runtime matches.
  • Fix Nakama Console object counts when database statistics are not available.
  • Must generate username field in the token generator if not specified when called by the server runtimes.
  • Improve JavaScript runtime authoritative match filtered broadcasts to large sets of users.
  • Align optional parameters in JavaScript runtime bindings.
  • Fix JavaScript registered match handlers not being available within the "InitModule" function.
  • Use unique notification ID handling for persistent notifications sent to all users.
  • Ensure concurrent leaderboard creation requests are handled idempotently.
  • Fix regression with matchmaker optimization used when only two opponents are matched.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.23.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.23.0"

v3.11.0

21 Mar 18:30
Compare
Choose a tag to compare

Notable changes

Added

  • Add "GroupUsersBan" function to all runtimes.
  • Add "LeaderboardRecordsHaystack" to all runtimes.
  • Add Groups page and API endpoints to the developer console.
  • Add "NotificationSendAll" function to the runtimes, for sending a notification to all users.
  • Log a warning when client IP address cannot be resolved.
  • Add matchmaker option to enforce a multiple of resulting matched count.
  • Add tagged Prometheus stats containing RPC function identifiers.

Changed

  • Improve Stackdriver log format timestamp and message field formats.
  • Use crypto random to seed global random instance if possible.
  • Allow migrate subcommand to use database names that contain dashes.
  • Add senderID param to "channelIdBuild" function.
  • Improve leaderboard rank cache population at startup.
  • JavaScript global variables are made immutable by default after the "InitModule" function is invoked.
  • Return system user UUID string in "StorageWrite" acks for all runtimes.
  • Realtime after hooks now include both the outgoing and incoming payload.
  • Realtime after hooks do not run when the operation fails.
  • Build with Go 1.18.0 release.

Fixed

  • Fix the registered function name for "nk.channelIdBuild" in the JavaScript runtime.
  • Better input validation for Steam link operations.
  • Fix incorrect link device behaviour in JavaScript runtime.
  • Fix JavaScript runtime multi-update execution consistency when part of the operation fails.
  • Fix handling of wallet ledger lookups with no limit during account exports.
  • Ensure maximum count is accounted for in matchmaker mutual match checks.
  • Ensure the matchmaker always correctly prefers matches closer to the maximum count.

NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.22.0 must be used with this release.

env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.22.0"

v3.10.0

17 Dec 00:24
Compare
Choose a tag to compare

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/runtime@v1.21.0"

v3.9.0

29 Oct 22:21
Compare
Choose a tag to compare

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/runtime@v1.20.0"

v3.8.0

15 Oct 16:32
Compare
Choose a tag to compare

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/runtime@v1.19.0"

v3.7.0

28 Sep 12:52
Compare
Choose a tag to compare

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/runtime@v1.18.0"