Skip to content

Commit fa30e48

Browse files
authored
Rate limit params adjustments (#1060)
First round of adjusting some of the recently added endpoint-specific rate limit parameters. This loosens the limits for endpoints which seem to have been rate-limited too quickly on production. More such PRs will likely be needed in the future, since it's not easy to nail these values (not too loose and not too strict) outside of production.
2 parents c439cb1 + f5aa86d commit fa30e48

5 files changed

Lines changed: 8 additions & 8 deletions

File tree

Refresh.Core/RateLimits/Levels/SingleLevelEndpointLimits.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public static class SingleLevelEndpointLimits
44
{
55
public const int TimeoutDuration = 300;
66
public const int ApiRequestAmount = 50;
7-
public const int GameRequestAmount = 170; // Game likes to request them a lot
7+
public const int GameRequestAmount = 280; // Game likes to request them a lot
88
public const int BlockDuration = 240;
99
public const string ApiRequestBucket = "single-level-api";
1010
public const string GameRequestBucket = "single-level-game";

Refresh.Core/RateLimits/Presence/GamePresenceEndpointLimits.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ namespace Refresh.Core.RateLimits.Presence;
55
/// </summary>
66
public static class GamePresenceEndpointLimits
77
{
8-
public const int TimeoutDuration = 450;
9-
public const int RequestAmount = 30;
10-
public const int BlockDuration = 300;
8+
public const int TimeoutDuration = 300;
9+
public const int RequestAmount = 80;
10+
public const int BlockDuration = 240;
1111
public const string RequestBucket = "game-presence";
1212
}

Refresh.Core/RateLimits/Relations/PlayLevelEndpointLimits.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace Refresh.Core.RateLimits.Relations;
33
public static class PlayLevelEndpointLimits
44
{
55
public const int TimeoutDuration = 300;
6-
public const int RequestAmount = 20;
6+
public const int RequestAmount = 40;
77
public const int BlockDuration = 240;
88
public const string RequestBucket = "play-level";
99
}

Refresh.Core/RateLimits/Users/NotificationsEndpointLimits.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace Refresh.Core.RateLimits.Users;
33
public static class NotificationsEndpointLimits
44
{
55
public const int TimeoutDuration = 180;
6-
public const int GameRequestAmount = 4;
6+
public const int GameRequestAmount = 8;
77
public const int ApiRequestAmount = 20;
88
public const int BlockDuration = 150;
99
public const string GameRequestBucket = "notifications-game";

Refresh.Interfaces.Game/Endpoints/ResourceEndpoints.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class ResourceEndpoints : EndpointGroup
3030
[GameEndpoint("upload/{hash}", HttpMethods.Post)]
3131
[RequireEmailVerified]
3232
[SuppressMessage("ReSharper", "ConvertIfStatementToReturnStatement")]
33-
[RateLimitSettings(450, 180, 300, "game-asset-upload")]
33+
[RateLimitSettings(300, 200, 240, "game-asset-upload")]
3434
public Response UploadAsset(RequestContext context, string hash, string type, byte[] body, IDataStore dataStore,
3535
GameDatabaseContext database, GameUser user, AssetImporter importer, GameServerConfig config, IDateTimeProvider timeProvider, Token token,
3636
DataContext dataContext)
@@ -106,7 +106,7 @@ public Response UploadAsset(RequestContext context, string hash, string type, by
106106

107107
[GameEndpoint("r/{hash}")]
108108
[MinimumRole(GameUserRole.Restricted)]
109-
[RateLimitSettings(450, 250, 300, "game-asset-download")]
109+
[RateLimitSettings(300, 340, 240, "game-asset-download")]
110110
public Response GetResource(RequestContext context, GameUser user, Token token, string hash, DataContext dataContext, ChallengeGhostRateLimitService ghostService)
111111
{
112112
if (!CommonPatterns.Sha1Regex().IsMatch(hash)) return BadRequest;

0 commit comments

Comments
 (0)