Repository navigation
Releases
v3.42.0
Notable changes
Added
- Add Hiro Streaks support to the console, with its own ACL resource and audit logging.
- Add Go runtime IAP providers, validated with the
ValidatePurchaseclient API andPurchaseValidatefunction. - Add subscription validation through IAP providers with the
ValidateSubscriptionclient API andSubscriptionValidatefunction, and theRegisterBeforeValidateSubscriptionandRegisterAfterValidateSubscriptionhooks. - Add a notification endpoint for each IAP provider at
/v2/console/<Name>/notifications/<NotificationEndpointId>, or/v2/console/<Name>/notificationswhen the provider returns noNotificationEndpointId. - Add the
RegisterIAPPurchaseNotificationandRegisterIAPSubscriptionNotificationhooks for purchase refunds and subscription changes reported by IAP providers. - Add a provider filter to the console purchase and subscription lists, taking an IAP provider name or a built-in store.
- Log a startup warning when a Lua runtime before or after request hook is registered for an unknown API name.
Changed
- Directory listings on the console port now return an HTTP 404 Not Found error.
- Change the Fleet Manager Init interface to receive the namespace of the instance being registered.
- Fleet Manager registration by name is now case-insensitive.
- Change AuthenticateApple to optionally opt-out from importing the email address from the provider.
- Change AuthenticateFacebook to optionally opt-out from importing the email address from the provider.
- Change AuthenticateGoogle to optionally opt-out from importing the email address from the provider.
- Change LinkApple to optionally opt-out from importing the email address from the provider.
- Change LinkFacebook to optionally opt-out from importing the email address from the provider.
- Change LinkGoogle to optionally opt-out from importing the email address from the provider.
- Build with Go 1.27.3.
Fixed
- Only apply Google Authentication token aud/azp validation if explicitly configured via
google_auth.client_ids. - Fix JavaScript runtime not finding
InitModuleor match handlers declared after another variable in the same declaration. - Fix leaderboard reset and tournament end and reset hooks sometimes being skipped by the scheduler.
- Fix tournament end and reset hooks sometimes not firing for the first active period when the start time is in the future.
- Fix Huawei purchase validation failing on a malformed verification URL.
- Return the user ID on unpersisted Samsung and Huawei purchase validations.
- Fix a data race when leaderboard and tournament reset schedules are evaluated concurrently, which could produce wrong reset times or a panic.
- Fix JavaScript runtime match registration failing when handler keys are quoted.
- Add missing Lua runtime functions to register Apple and Google In-App Purchase and Subscription notification hooks.
- Fix Lua runtime shutdown hooks never running.
- Fix some Go, Lua and JavaScript runtime request hooks never running, and Lua and JavaScript Google subscription validation after hooks running on Apple validations instead.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.49.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.49.0"v3.41.0
Notable changes
Added
- Add Console UI to list and query registered Storage Search indices.
- Add support for namespaced multi fleet manager registration.
- Expose websocket connection upgrade http headers to session context.
- Add
Authenticatemodule function to authenticate through a registered provider from Go, Lua and JavaScript runtime code. Provider identities are stored in the expandeduser_devicetable. - Add
RegisterBeforeAuthenticateandRegisterAfterAuthenticatehooks. - Add
RegisterBeforeLinkandRegisterAfterLinkhooks. - Add
RegisterBeforeUnlinkandRegisterAfterUnlinkhooks. - Add provider-agnostic authentication: register named authentication providers from the Go runtime, then authenticate, link and unlink those identities through the new
Authenticate,LinkandUnlinkAPIs, the matching Go, Lua and JavaScript module functions, and their before/after hooks. Identities are stored in the expandeduser_devicetable and listed on the account. - Add console support for provider identities: search accounts by one, and unlink one from an account.
- Build with Go 1.27.1.
Changed
- Storage write version rejections now return GRPC error code 9
FAILED_PRECONDITIONinstead of 3INVALID_ARGUMENT. HTTP response code mapping remains the same.
Fixed
- Ensure linking a Google ID to an account does not overwrite any existing email.
- Ensure correct token ID field is used for validating sessions on socket connection.
- Return well-formed
WWW-Authenticateheader on HTTP 401 Unauthorized responses.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.48.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.48.0"v3.40.0
Notable changes
Added
- Add Samsung Galaxy Store purchase validation request type and
SAMSUNG_GALAXY_STOREstore provider enum. - Add Samsung IAP runtime hooks and
PurchaseValidateSamsungmodule function. - Add
IAPSamsungConfigto runtimeGetConfig()IAP section. - Improve logic in Apple JWS receipts validation.
- Add
console.disable_display_name_searchconfig option to disable console account search by display name entirely.
Fixed
- Fix an issue where group admin account deletion could leave orphaned group edges.
- Fix In-App Purchase validation persist parameter handling for Apple JWS receipts.
- Fix race conditions in leaderboard/tournament scheduler which could prevent hooks from triggering under certain conditions.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.47.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.47.0"v3.39.0
Notable changes
Added
- Add new runtime function to update storage objects with retries.
Changed
- Update Satori client to match latest API spec.
- Add configurable retries to the Satori client.
Fixed
- Ignore negative custom runtime counter deltas to avoid panics during metrics collection.
- Set account empty fields to null appropriately on console account import.
- Correctly cancel context after matchmaker matched function completes.
- Fix X-Forwarded-For header handling regression.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.46.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.46.0"v3.38.0
Notable changes
Added
- Add runtime Satori client feature to delete identities.
- Add device identifiers as lookup options for runtime account get operations.
- Add Go runtime function to import an account export snapshot.
- Add TypeScript/JavaScript runtime function to import an account export snapshot.
- Add Lua runtime function to import an account export snapshot.
- Better searching by account display name in the Console UI.
Changed
- Better logic for determining client IP addresses from incoming requests.
- Limit the number of custom metric scopes to prevent adding user identifiers as tags.
Fixed
- Correct field usage in voided Google In-App Purchase subscription notifications.
- Fix an issue where the Storage Index would keep entries which should have been filtered.
- Fix an issue that could prevent leaderboard/tournament end/reset hooks from firing.
- Avoid logging unnecessary context cancellation errors on storage operations.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.45.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.45.0"v3.37.0
Notable changes
Added
- Support Apple JWS receipts in In-App Purchase validation APIs.
- Expose new Prometheus RPC metrics with label per gRPC status.
Fixed
- Fix permission check on Console Group AddMembers operation.
- Fix Lua runtime random generator seeding.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.44.2 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.44.2"v3.36.0
Notable changes
Changed
- Improvements to Console user setup and management.
- Option for faster cleanup of parties that are idle and empty.
- Build with Go 1.25.5.
Fixed
- Ensure party leader username is recorded on party creation.
- Ensure ended matches are removed from the Console UI list more quickly.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.44.1 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.44.1"v3.35.1
Notable changes
Fixed
- Correctly wire context propagation in Session Start/End runtime event hooks.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.44.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.44.0"v3.35.0
Notable changes
Added
- New runtime Satori client options for time-based caching.
- Additional information for transactions in console UI details side panel.
- Console API status endpoint now returns number of active Parties per node.
- Console UI status view now displays number of active Parties per node and total.
- Console API status endpoint now returns the startup time when each node was created.
- Console UI status view now displays time since each node was started.
Changed
- Adjust unit of measure for Satori client timeout.
- Nakama will not start if attempting to register custom HTTP handlers without a '/' prefix in the path pattern.
- Nakama will not start if attempting to register custom console HTTP handlers without a '/' prefix in the path pattern.
- Add runtime Satori client additional filters for live-events listing.
- Add runtime Satori client live-event join function.
- Configurable timeout for server initiated socket disconnects graceful close wait period.
- Fix an issue in the console ACL database schema migration that would prevent it from being applied in CockroachDB.
- Better display for long transaction identifiers in console UI.
Fixed
- Fix migration script to correctly revert console fine-grained access control changes.
- Avoid unnecessary cache check in runtime Satori client Properties lookup.
- Fix an issue that would prevent the console data reset operation from completing successfully.
- Fix an issue with Apple In-App Purchase notification handling that would prevent the notification from being processed.
- Fix an issue with Google In-App Purchase notification handling that would prevent refund/voided types from being processed.
- Fix incorrect error message in the console UI when storage import operations actually succeed.
- Fix incorrect display of ascending/descending leaderboard indicator in console UI.
- Fix incorrect display of pagination indicators for filtered storage lookups in console UI.
- Fix issue where disabling tournament ranks might not use the correct timezone for lookups.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.44.0 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.44.0"v3.34.1
Notable changes
Added
- Add trace identifier to RPC function contexts.
- Add runtime Satori client feature to send direct messages.
- Add runtime Satori client option to fetch messages by a set of identifiers.
- New TypeScript/JavaScript runtime function to generate secure random bytes.
- New Lua runtime function to generate secure random bytes.
NOTE: For developers who use the Go server runtime support. The nakama-common package at v1.43.1 must be used with this release.
env GO111MODULE=on go get "github.com/heroiclabs/nakama-common/runtime@v1.43.1"