mirror of
https://github.com/Infisical/infisical.git
synced 2025-03-31 22:09:57 +00:00
misc: name updates and more comments
This commit is contained in:
@ -1,35 +1,40 @@
|
||||
import fp from "fastify-plugin";
|
||||
|
||||
import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service";
|
||||
import { getConfig } from "@app/lib/config/env";
|
||||
|
||||
export const injectRateLimits = fp(async (server) => {
|
||||
server.decorateRequest("rateLimits", null);
|
||||
server.addHook("onRequest", async (req) => {
|
||||
const defaultRateLimiterConfig = getRateLimiterConfig();
|
||||
const appCfg = getConfig();
|
||||
|
||||
const instanceRateLimiterConfig = getRateLimiterConfig();
|
||||
if (!req.auth) {
|
||||
// for public endpoints
|
||||
req.rateLimits = defaultRateLimiterConfig;
|
||||
// for public endpoints, we always use the instance-wide default rate limits
|
||||
req.rateLimits = instanceRateLimiterConfig;
|
||||
return;
|
||||
}
|
||||
|
||||
const plan = await server.services.license.getPlan(req.auth.orgId);
|
||||
const { rateLimits } = plan;
|
||||
|
||||
if (plan.customRateLimits) {
|
||||
req.rateLimits = defaultRateLimiterConfig;
|
||||
if (plan.customRateLimits && !appCfg.isCloud) {
|
||||
// we do this because for self-hosted/dedicated instances, we want custom rate limits to be based on admin configuration
|
||||
// note that the syncing of custom rate limit happens on the instanceRateLimiterConfig object
|
||||
req.rateLimits = instanceRateLimiterConfig;
|
||||
return;
|
||||
}
|
||||
|
||||
// we're using the null coalescing operator in order to handle outdated licenses
|
||||
req.rateLimits = {
|
||||
readLimit: rateLimits?.readLimit ?? defaultRateLimiterConfig.readLimit,
|
||||
publicEndpointLimit: rateLimits?.publicEndpointLimit ?? defaultRateLimiterConfig.publicEndpointLimit,
|
||||
writeLimit: rateLimits?.writeLimit ?? defaultRateLimiterConfig.writeLimit,
|
||||
secretsLimit: rateLimits?.secretsLimit ?? defaultRateLimiterConfig.secretsLimit,
|
||||
authRateLimit: rateLimits?.authRateLimit ?? defaultRateLimiterConfig.authRateLimit,
|
||||
inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? defaultRateLimiterConfig.inviteUserRateLimit,
|
||||
mfaRateLimit: rateLimits?.mfaRateLimit ?? defaultRateLimiterConfig.mfaRateLimit,
|
||||
creationLimit: rateLimits?.creationLimit ?? defaultRateLimiterConfig.creationLimit
|
||||
readLimit: rateLimits?.readLimit ?? instanceRateLimiterConfig.readLimit,
|
||||
publicEndpointLimit: rateLimits?.publicEndpointLimit ?? instanceRateLimiterConfig.publicEndpointLimit,
|
||||
writeLimit: rateLimits?.writeLimit ?? instanceRateLimiterConfig.writeLimit,
|
||||
secretsLimit: rateLimits?.secretsLimit ?? instanceRateLimiterConfig.secretsLimit,
|
||||
authRateLimit: rateLimits?.authRateLimit ?? instanceRateLimiterConfig.authRateLimit,
|
||||
inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? instanceRateLimiterConfig.inviteUserRateLimit,
|
||||
mfaRateLimit: rateLimits?.mfaRateLimit ?? instanceRateLimiterConfig.mfaRateLimit,
|
||||
creationLimit: rateLimits?.creationLimit ?? instanceRateLimiterConfig.creationLimit
|
||||
};
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user