Loading CHANGELOG.md +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr ### Fixed - Fix response selection in purchase lookups by identifier. - Ensure corresponding leaderboard rank cache entries are removed when a user is deleted. - Consistently update scheduler when leaderboards and tournaments are deleted. ## [3.14.0] - 2022-10-14 ### Added Loading main.go +1 −1 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ func main() { statusHandler := server.NewLocalStatusHandler(logger, sessionRegistry, matchRegistry, tracker, metrics, config.GetName()) apiServer := server.StartApiServer(logger, startupLogger, db, jsonpbMarshaler, jsonpbUnmarshaler, config, version, socialClient, leaderboardCache, leaderboardRankCache, sessionRegistry, sessionCache, statusRegistry, matchRegistry, matchmaker, tracker, router, streamManager, metrics, pipeline, runtime) consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, router, streamManager, metrics, sessionCache, consoleSessionCache, loginAttemptCache, statusRegistry, statusHandler, runtimeInfo, matchRegistry, configWarnings, semver, leaderboardCache, leaderboardRankCache, apiServer, cookie) consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, router, streamManager, metrics, sessionCache, consoleSessionCache, loginAttemptCache, statusRegistry, statusHandler, runtimeInfo, matchRegistry, configWarnings, semver, leaderboardCache, leaderboardRankCache, leaderboardScheduler, apiServer, cookie) gaenabled := len(os.Getenv("NAKAMA_TELEMETRY")) < 1 console.UIFS.Nt = !gaenabled Loading server/console.go +3 −1 Original line number Diff line number Diff line Loading @@ -156,13 +156,14 @@ type ConsoleServer struct { grpcGatewayServer *http.Server leaderboardCache LeaderboardCache leaderboardRankCache LeaderboardRankCache leaderboardScheduler LeaderboardScheduler api *ApiServer rpcMethodCache *rpcReflectCache cookie string httpClient *http.Client } func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, config Config, tracker Tracker, router MessageRouter, streamManager StreamManager, metrics Metrics, sessionCache SessionCache, consoleSessionCache SessionCache, loginAttemptCache LoginAttemptCache, statusRegistry *StatusRegistry, statusHandler StatusHandler, runtimeInfo *RuntimeInfo, matchRegistry MatchRegistry, configWarnings map[string]string, serverVersion string, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, api *ApiServer, cookie string) *ConsoleServer { func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, config Config, tracker Tracker, router MessageRouter, streamManager StreamManager, metrics Metrics, sessionCache SessionCache, consoleSessionCache SessionCache, loginAttemptCache LoginAttemptCache, statusRegistry *StatusRegistry, statusHandler StatusHandler, runtimeInfo *RuntimeInfo, matchRegistry MatchRegistry, configWarnings map[string]string, serverVersion string, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, api *ApiServer, cookie string) *ConsoleServer { var gatewayContextTimeoutMs string if config.GetConsole().IdleTimeoutMs > 500 { // Ensure the GRPC Gateway timeout is just under the idle timeout (if possible) to ensure it has priority. Loading Loading @@ -201,6 +202,7 @@ func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.D runtimeInfo: runtimeInfo, leaderboardCache: leaderboardCache, leaderboardRankCache: leaderboardRankCache, leaderboardScheduler: leaderboardScheduler, api: api, cookie: cookie, httpClient: &http.Client{Timeout: 5 * time.Second}, Loading server/console_account.go +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ func (s *ConsoleServer) DeleteAccount(ctx context.Context, in *console.AccountDe return nil, status.Error(codes.InvalidArgument, "Cannot delete the system user.") } if err = DeleteAccount(ctx, s.logger, s.db, userID, in.RecordDeletion != nil && in.RecordDeletion.Value); err != nil { if err = DeleteAccount(ctx, s.logger, s.db, s.leaderboardRankCache, userID, in.RecordDeletion != nil && in.RecordDeletion.Value); err != nil { // Error already logged in function above. return nil, status.Error(codes.Internal, "An error occurred while trying to delete the user.") } Loading server/console_leaderboard.go +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ func (s *ConsoleServer) DeleteLeaderboard(ctx context.Context, in *console.Leade return nil, status.Error(codes.InvalidArgument, "Expects a leaderboard ID") } if err := s.leaderboardCache.Delete(ctx, in.Id); err != nil { if err := s.leaderboardCache.Delete(ctx, s.leaderboardRankCache, s.leaderboardScheduler, in.Id); err != nil { // Logged internally return nil, status.Error(codes.Internal, "Error deleting leaderboard.") } Loading Loading
CHANGELOG.md +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr ### Fixed - Fix response selection in purchase lookups by identifier. - Ensure corresponding leaderboard rank cache entries are removed when a user is deleted. - Consistently update scheduler when leaderboards and tournaments are deleted. ## [3.14.0] - 2022-10-14 ### Added Loading
main.go +1 −1 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ func main() { statusHandler := server.NewLocalStatusHandler(logger, sessionRegistry, matchRegistry, tracker, metrics, config.GetName()) apiServer := server.StartApiServer(logger, startupLogger, db, jsonpbMarshaler, jsonpbUnmarshaler, config, version, socialClient, leaderboardCache, leaderboardRankCache, sessionRegistry, sessionCache, statusRegistry, matchRegistry, matchmaker, tracker, router, streamManager, metrics, pipeline, runtime) consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, router, streamManager, metrics, sessionCache, consoleSessionCache, loginAttemptCache, statusRegistry, statusHandler, runtimeInfo, matchRegistry, configWarnings, semver, leaderboardCache, leaderboardRankCache, apiServer, cookie) consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, router, streamManager, metrics, sessionCache, consoleSessionCache, loginAttemptCache, statusRegistry, statusHandler, runtimeInfo, matchRegistry, configWarnings, semver, leaderboardCache, leaderboardRankCache, leaderboardScheduler, apiServer, cookie) gaenabled := len(os.Getenv("NAKAMA_TELEMETRY")) < 1 console.UIFS.Nt = !gaenabled Loading
server/console.go +3 −1 Original line number Diff line number Diff line Loading @@ -156,13 +156,14 @@ type ConsoleServer struct { grpcGatewayServer *http.Server leaderboardCache LeaderboardCache leaderboardRankCache LeaderboardRankCache leaderboardScheduler LeaderboardScheduler api *ApiServer rpcMethodCache *rpcReflectCache cookie string httpClient *http.Client } func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, config Config, tracker Tracker, router MessageRouter, streamManager StreamManager, metrics Metrics, sessionCache SessionCache, consoleSessionCache SessionCache, loginAttemptCache LoginAttemptCache, statusRegistry *StatusRegistry, statusHandler StatusHandler, runtimeInfo *RuntimeInfo, matchRegistry MatchRegistry, configWarnings map[string]string, serverVersion string, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, api *ApiServer, cookie string) *ConsoleServer { func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.DB, config Config, tracker Tracker, router MessageRouter, streamManager StreamManager, metrics Metrics, sessionCache SessionCache, consoleSessionCache SessionCache, loginAttemptCache LoginAttemptCache, statusRegistry *StatusRegistry, statusHandler StatusHandler, runtimeInfo *RuntimeInfo, matchRegistry MatchRegistry, configWarnings map[string]string, serverVersion string, leaderboardCache LeaderboardCache, leaderboardRankCache LeaderboardRankCache, leaderboardScheduler LeaderboardScheduler, api *ApiServer, cookie string) *ConsoleServer { var gatewayContextTimeoutMs string if config.GetConsole().IdleTimeoutMs > 500 { // Ensure the GRPC Gateway timeout is just under the idle timeout (if possible) to ensure it has priority. Loading Loading @@ -201,6 +202,7 @@ func StartConsoleServer(logger *zap.Logger, startupLogger *zap.Logger, db *sql.D runtimeInfo: runtimeInfo, leaderboardCache: leaderboardCache, leaderboardRankCache: leaderboardRankCache, leaderboardScheduler: leaderboardScheduler, api: api, cookie: cookie, httpClient: &http.Client{Timeout: 5 * time.Second}, Loading
server/console_account.go +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ func (s *ConsoleServer) DeleteAccount(ctx context.Context, in *console.AccountDe return nil, status.Error(codes.InvalidArgument, "Cannot delete the system user.") } if err = DeleteAccount(ctx, s.logger, s.db, userID, in.RecordDeletion != nil && in.RecordDeletion.Value); err != nil { if err = DeleteAccount(ctx, s.logger, s.db, s.leaderboardRankCache, userID, in.RecordDeletion != nil && in.RecordDeletion.Value); err != nil { // Error already logged in function above. return nil, status.Error(codes.Internal, "An error occurred while trying to delete the user.") } Loading
server/console_leaderboard.go +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ func (s *ConsoleServer) DeleteLeaderboard(ctx context.Context, in *console.Leade return nil, status.Error(codes.InvalidArgument, "Expects a leaderboard ID") } if err := s.leaderboardCache.Delete(ctx, in.Id); err != nil { if err := s.leaderboardCache.Delete(ctx, s.leaderboardRankCache, s.leaderboardScheduler, in.Id); err != nil { // Logged internally return nil, status.Error(codes.Internal, "Error deleting leaderboard.") } Loading