Add fixed-window rate limiter to public plugin endpoints using ASP.NET Core's built-in RateLimiter middleware, keyed by client IP. Rate limit settings (permit limit, window seconds) are stored in the database and cached via AdminSettingsCache, with sensible defaults of 30 req/60s.
15 lines
743 B
C#
15 lines
743 B
C#
namespace PluginBuilder.DataModels;
|
|
|
|
public static class SettingsKeys
|
|
{
|
|
public const string EmailSettings = nameof(EmailSettings);
|
|
public const string VerifiedEmailForPluginPublish = nameof(VerifiedEmailForPluginPublish);
|
|
public const string VerifiedEmailForLogin = nameof(VerifiedEmailForLogin);
|
|
public const string FirstPluginBuildReviewers = nameof(FirstPluginBuildReviewers);
|
|
public const string VerifiedGithub = nameof(VerifiedGithub);
|
|
public const string VerifiedNostr = nameof(VerifiedNostr);
|
|
public const string NostrRelays = nameof(NostrRelays);
|
|
public const string RateLimitPermitLimit = nameof(RateLimitPermitLimit);
|
|
public const string RateLimitWindowSeconds = nameof(RateLimitWindowSeconds);
|
|
}
|