fix rate limit set to default (#83)
This commit is contained in:
@@ -36,6 +36,7 @@ export const env = createEnv({
|
|||||||
UNSEND_API_KEY: z.string().optional(),
|
UNSEND_API_KEY: z.string().optional(),
|
||||||
GOOGLE_CLIENT_ID: z.string().optional(),
|
GOOGLE_CLIENT_ID: z.string().optional(),
|
||||||
GOOGLE_CLIENT_SECRET: z.string().optional(),
|
GOOGLE_CLIENT_SECRET: z.string().optional(),
|
||||||
|
AWS_SES_ENDPOINT: z.string().optional(),
|
||||||
AWS_DEFAULT_REGION: z.string().default("us-east-1"),
|
AWS_DEFAULT_REGION: z.string().default("us-east-1"),
|
||||||
API_RATE_LIMIT: z
|
API_RATE_LIMIT: z
|
||||||
.string()
|
.string()
|
||||||
@@ -85,6 +86,7 @@ export const env = createEnv({
|
|||||||
GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
|
GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
|
||||||
GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
|
GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
|
||||||
AWS_DEFAULT_REGION: process.env.AWS_DEFAULT_REGION,
|
AWS_DEFAULT_REGION: process.env.AWS_DEFAULT_REGION,
|
||||||
|
AWS_SES_ENDPOINT: process.env.AWS_SES_ENDPOINT,
|
||||||
API_RATE_LIMIT: process.env.API_RATE_LIMIT,
|
API_RATE_LIMIT: process.env.API_RATE_LIMIT,
|
||||||
NEXT_PUBLIC_IS_CLOUD: process.env.NEXT_PUBLIC_IS_CLOUD,
|
NEXT_PUBLIC_IS_CLOUD: process.env.NEXT_PUBLIC_IS_CLOUD,
|
||||||
ADMIN_EMAIL: process.env.ADMIN_EMAIL,
|
ADMIN_EMAIL: process.env.ADMIN_EMAIL,
|
||||||
|
@@ -18,6 +18,7 @@ import { EmailContent } from "~/types";
|
|||||||
function getSesClient(region: string) {
|
function getSesClient(region: string) {
|
||||||
return new SESv2Client({
|
return new SESv2Client({
|
||||||
region: region,
|
region: region,
|
||||||
|
endpoint: env.AWS_SES_ENDPOINT,
|
||||||
credentials: {
|
credentials: {
|
||||||
accessKeyId: env.AWS_ACCESS_KEY,
|
accessKeyId: env.AWS_ACCESS_KEY,
|
||||||
secretAccessKey: env.AWS_SECRET_KEY,
|
secretAccessKey: env.AWS_SECRET_KEY,
|
||||||
|
@@ -7,7 +7,7 @@ import { getTeamAndApiKey } from "../service/api-service";
|
|||||||
|
|
||||||
const rateLimitCache = new TTLCache({
|
const rateLimitCache = new TTLCache({
|
||||||
ttl: 1000, // 1 second
|
ttl: 1000, // 1 second
|
||||||
max: env.API_RATE_LIMIT,
|
max: 10000,
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,7 +72,7 @@ const checkRateLimit = (token: string) => {
|
|||||||
|
|
||||||
rateLimit = rateLimit ?? 0;
|
rateLimit = rateLimit ?? 0;
|
||||||
|
|
||||||
if (rateLimit >= 2) {
|
if (rateLimit >= env.API_RATE_LIMIT) {
|
||||||
throw new UnsendApiError({
|
throw new UnsendApiError({
|
||||||
code: "RATE_LIMITED",
|
code: "RATE_LIMITED",
|
||||||
message: `Rate limit exceeded, ${env.API_RATE_LIMIT} requests per second`,
|
message: `Rate limit exceeded, ${env.API_RATE_LIMIT} requests per second`,
|
||||||
|
@@ -7,6 +7,8 @@
|
|||||||
"build:web": "turbo build --filter=@unsend/email-editor --filter=web ",
|
"build:web": "turbo build --filter=@unsend/email-editor --filter=web ",
|
||||||
"build:marketing": "turbo build --filter=@unsend/email-editor --filter=marketing",
|
"build:marketing": "turbo build --filter=@unsend/email-editor --filter=marketing",
|
||||||
"build:smtp": "turbo build --filter=smtp-server",
|
"build:smtp": "turbo build --filter=smtp-server",
|
||||||
|
"build:web:local": "pnpm load-env -- turbo build --filter=@unsend/email-editor --filter=web ",
|
||||||
|
"start:web:local": "pnpm load-env -- cd apps/web && pnpm start",
|
||||||
"dev": "pnpm load-env -- turbo dev",
|
"dev": "pnpm load-env -- turbo dev",
|
||||||
"dev:docs": "cd apps/docs && mintlify dev",
|
"dev:docs": "cd apps/docs && mintlify dev",
|
||||||
"lint": "turbo lint",
|
"lint": "turbo lint",
|
||||||
|
Reference in New Issue
Block a user