All notable changes to this project are documented below.
The format is based on keep a changelog and this project uses semantic versioning.
- Add new runtime function to get a list of user's friend status.
- Add new Follow/Unfollow runtime APIs.
- Add new NotificationsUpdate runtime API.
- Add new initializers function to get config values.
- Update to Protobuf v1.35.2 dependency.
- New runtime function to list user notifications.
- New Go runtime initializer function to register raw HTTP handlers.
- Added pagination support to storage index listing.
- Ensure runtime Satori client is updated for latest API changes.
- Ensure optional TypeScript context fields are marked appropriately.
- New runtime functions to get and delete notifications by id.
- Add runtime function to disable ranks for an active leaderboard.
- Add new get matchmaker stats API.
- Add leaderboard and tournament create param to enable or disable ranks.
- Add ErrGracePeriodExpired.
- Add runtime support for registering a shutdown hook function.
- Add support for custom sorting in storage index search.
- New friends of friends listing API and runtime functions.
- Update to Protobuf v1.34.1 dependency.
- Fix JavaScript runtime
MatchInit
parameter type.
- Add Fleet Manager API to power session-based multiplayer integrations. See the documentation for more details.
- Add CRON next and previous functions to Go runtime.
- Add CRON previous function to Lua runtime.
- Add CRON previous function to TypeScript/JavaScript runtime.
- Add support for storage deletes in runtime multi-update functions.
- Add JavaScript runtime
channelMessageRemove
function definition.
- Add optional client IP address passthrough to runtime Satori client.
- Add Lua runtime function to clear all localcache data.
- Add JavaScript runtime function to clear all localcache data.
- Add support for per-key TTL in Lua runtime localcache.
- Add support for per-key TTL in JavaScript runtime localcache.
- Add IAP purchase validation support for Facebook Instant Games.
- Runtime functions to build a leaderboard record list cursor to start listing from a given rank.
- Runtime storage list operations now accept a caller user identifier.
- Fix linter-found test issue.
- Fix storage index listing results sometimes being returned with incorrect order.
- Add create_time and update_time to returned storage engine writes acks.
- Add storage index create flag to read only from the index.
- Add Satori
recompute
optional input parameter to relevant operations.
- Use generics in realtime before and after TS runtime hook definitions.
- Use correct Satori live event active start and end time field type.
- Add storage object indexing support and related runtime functions.
- Add missing TypeScript validated subscription fields.
- Add TypeScript error code mappings to HTTP status codes.
- Add rank count parameter to leaderboard score listings.
- Add rank count parameter to tournament score listings.
- Remove incorrect category start and category end parameters from runtime leaderboard list functions.
- Update to Protobuf v1.31.0 dependency.
- Add local cache functions to JavaScript server framework.
- Add "tournamentRecordDelete" function to server frameworks.
- New "insecure" flag to "httpRequest" TypeScript function.
- Satori API available to Nakama server in all server frameworks.
- New "MatchmakerOverride" hook to provide custom matching behaviour.
- User ID is now returned in ValidatedSubscription, and ValidatedPurchases types.
- ValidatedSubscription types are visible to the Go server framework.
- Add "refundTime" field to TypeScript ValidatedSubscription type.
- Loosened TypeScript definitions to allow for no identifier to be passed to Unlink operations.
- Various small TypeScript definitions fixes.
- Add party hook messages to JavaScript runtime.
- Add In-App Purchase notification callback functions to the server runtimes.
- Add "DeleteAccount" before and after hook functions to the server runtimes.
- Accept the leaderboard operator types in their expanded string name.
- Added userID param to Go runtime GroupUpdate function.
- Update Type definition for "authenticateTokenGenerate" to support the optional params allowed by the server.
- Make public the "ChannelMessageRemove" function to the server Go runtime.
- Allow DELETE method to be used in HTTP requests.
- New "GroupsGetRandom" function added to the runtimes.
- New "NotificationsDelete" function added to the runtimes.
- The server version is now visible to server framework code within the context object.
- JavaScript runtime Base64 encode accepts string or ArrayBuffer input.
- JavaScript runtime Base64 URL encode accepts string or ArrayBuffer input.
- JavaScript runtime Base16 encode accepts string or ArrayBuffer input.
- JavaScript runtime Base64 decode returns ArrayBuffer output.
- JavaScript runtime Base64 URL decode returns ArrayBuffer output.
- JavaScript runtime Base16 decode returns ArrayBuffer output.
- The groupUpdate function argument for a user ID is now optional in the type definition.
- Update to Protobuf v1.28.1 dependency.
- Add user ID to JS runtime wallet operations returned results.
- Type definition for field name used in MatchMessage type is correct in TypeScript.
- New subscription validation functions for Apple and Google in the runtimes.
- Add "NotificationsDelete" function to the runtimes.
- Add const field for easier access to system user ID in TypeScript definition.
- Return a cursor with "leaderboardRecordsHaystack" function.
- Use ArrayBuffer type instead of Uint8Array in JavaScript runtime. Thanks @formatCvt.
- Expose optional "recorded" param to "accountDeleteId" in TypeScript definition.
- Fix function signature of "leaderboardRecordsHaystack" in TypeScript definition.
- Fix signature of "authenticateGameCenter" in TypeScript definition.
- Update field name used in Friend type in TypeScript definition.
- Add custom metrics publishing functions to Lua and JavaScript runtimes.
- Add missing "sessionLogout" TypeScript definition.
- Add "FriendsBlock" function to the Lua and JavaScript runtimes.
- Add "ChannelMessagesList" function to the Lua and JavaScript runtimes.
- New "countMultiple" parameter in the "MatchmakerAdd" TypeScript definition.
- Update naming of delete notifications before/after hook registration functions.
- Allow storage writes to accept "undefined" as a user ID input in the TypeScript definitions.
- Rename field in "ValidatedPurchase" to "providerResponse" to match what the server returns.
- Add missing "label" field to "Match" TypeScript definition.
- Add "GroupUsersBan" function to the runtimes.
- Add "FriendsAdd" and "FriendsDelete" functions to the runtimes.
- Add "LeaderboardRecordsHaystack" function to the runtimes.
- Add "NotificationSendAll" function to the runtimes, for sending a notification to all users.
- Propagate outgoing envelopes in realtime message after hooks.
- Add inputs for matchmaker option to enforce a multiple of resulting matched count.
- Add senderID param to "channelIdBuild".
- Add ctx field to access http request headers in the Lua and JavaScript runtimes.
- New JavaScript runtime stringToBinary and binaryToString functions.
- JavaScript runtime match data changed to use Uint8Array type.
- Added IAP validation
persist
parameter to make persistence optional.
- Allow creation of relayed matches with a name. Names are still mapped to match identifiers.
- Expose Nakama errors to the server runtime.
- Match signal handler as part of the match handler definition.
- Add match signal function to server framework.
- Add a prev cursor to the PurchaseList message.
- Use named return parameters in leaderboard and tournament listings.
- Add authoritative parameter on tournament create. Same as in leaderboard create.
- Add ChannelMessageUpdate function to server framework.
- Improve ValidatedPurchase TS definitions.
- Show "rank" field in leaderboard record TS definition.
- Add TypeScript "nkruntime.Error" custom error type that supports a custom message and grpc status code which can be returned in server responses.
- Add function to retrieve a random set of users to server framework.
- Add ChannelMessageSend function to server framework.
- Add BuildChannelId function to server framework.
- Return already seen receipts with a 'seen_before' flag set to true instead of returning an error if one is detected.
- Fix TypeScript "nkruntime.Context" value types.
- Add missing groupId argument from groupUpdate TypeScript definition.
- New functions to create custom metrics gauges, counters, and timers with Go.
- Allow Apple IAP validation to provide an override shared secret in the runtime.
- Use a context key name for fetching the lang set on a socket in the runtime.
- Add groups list, get leaderboard, and list leaderboards functions.
- Various updates to the TypeScript definitions.
- Tournament and leaderboards functions can now submit scores with the score operator.
- Tournament and leaderboards functions can now use a decrement score operator.
- Remove the older Go Protobuf dependency.
- The user ID can now be passed into group management functions. If the user ID is empty it will default to the system user as before.
- Small updates to the TypeScript definitions.
- Update to Protobuf v1.5.2 release.
- 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.
- Update account wallet, storage, and session refresh in the TypeScript type definitions.
- Various updates to the TypeScript definitions.
- GetUsers in the server framework now matches more closely how the client API works.
- New APIs for Steam friends to be imported to the social graph.
- Improvements to the Type definitions for the runtime.
- Add an error type for negative wallet balances in wallet updates.
This version synchronizes with the major version of Nakama server. The code is fully backwards compatible.
- New realtime messages for Realtime Parties.
- New API messages for refreshing session tokens.
- Type Definitions for the new JavaScript runtime framework in the server.
- Matchmaker API messages now have support for parties.
- Add group management functions to the server runtime. Thanks @4726.
- Add a cacheable cursor to channel message listings.
- Runtime nakama module interfaces for TournamentRecordsList and FriendsList functions.
- Update protobuf to 1.4.3 release.
- Add missing cursor in return values for nakama module GroupUsersList and UserGroupsList interfaces.
- Use a "tool dependency" to specify the protoc-gen-go required version. See here.
- Update to Protobuf 1.4.2. This enables us to take advantage of the new Protobuf runtime. See here.
- Rename example runtime file.
- Replace shell script with Go generate commands to run protoc toolchain.
- Eliminate test dependency on GRPC runtime.
- Update protocol definitions to remove warnings from stricter Go package import paths. See here.