Event Data maximum size.

This commit is contained in:
Brian Cao 2022-12-29 14:51:51 -08:00
parent db6a6d6055
commit eb2f07c105
2 changed files with 9 additions and 4 deletions

View File

@ -39,6 +39,11 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => {
return badRequest(res, 'Event Data must be in the form of a JSON Object.');
}
// Validate eventData is less than 100kB
if (eventData && new TextEncoder().encode(eventData).length / 1024 > 100) {
return badRequest(res, 'Event Data exceeds maximum size of 100 kB.');
}
const ignoreIps = process.env.IGNORE_IP;
const ignoreHostnames = process.env.IGNORE_HOSTNAME;

View File

@ -13,7 +13,7 @@ export interface WebsiteEventsRequestQuery {
startAt: string;
endAt: string;
unit: string;
tz: string;
timezone: string;
url: string;
eventName: string;
}
@ -25,14 +25,14 @@ export default async (
await useCors(req, res);
await useAuth(req, res);
const { id: websiteId, startAt, endAt, unit, tz, url, eventName } = req.query;
const { id: websiteId, startAt, endAt, unit, timezone, url, eventName } = req.query;
if (req.method === 'GET') {
if (!(await canViewWebsite(req.auth, websiteId))) {
return unauthorized(res);
}
if (!moment.tz.zone(tz) || !unitTypes.includes(unit)) {
if (!moment.tz.zone(timezone) || !unitTypes.includes(unit)) {
return badRequest(res);
}
const startDate = new Date(+startAt);
@ -41,7 +41,7 @@ export default async (
const events = await getEventMetrics(websiteId, {
startDate,
endDate,
timezone: tz,
timezone,
unit,
filters: {
url,