From a8b4ddd054bb27b65c184f58c448c0590a659860 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Wed, 1 Oct 2025 10:12:07 -0700 Subject: [PATCH 1/5] Revert "fix "Last X unit" minDate cutoff" This reverts commit 55c8a6f7ccb80de67e34410954d82c02bbd2c11b. --- src/lib/date.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/date.ts b/src/lib/date.ts index 410a8acf6..029318340 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -122,9 +122,8 @@ export function parseDateValue(value: string) { if (!match) return null; const { num, unit } = match.groups; - const formattedNum = +num > 0 ? +num - 1 : +num; - return { num: formattedNum, unit }; + return { num: +num, unit }; } export function parseDateRange(value: string, locale = 'en-US'): DateRange { @@ -158,7 +157,12 @@ export function parseDateRange(value: string, locale = 'en-US'): DateRange { const now = new Date(); const dateLocale = getDateLocale(locale); - const { num = 1, unit } = parseDateValue(value); + const { unit } = parseDateValue(value); + let { num = 1 } = parseDateValue(value); + + if (value === '7day') { + num--; + } switch (unit) { case 'hour': From f86c21b25b172eb5752fb49c5fe6878e67407916 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Wed, 1 Oct 2025 10:21:20 -0700 Subject: [PATCH 2/5] kafka no longer needed --- scripts/check-env.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/scripts/check-env.js b/scripts/check-env.js index c73bed546..79c0984dd 100644 --- a/scripts/check-env.js +++ b/scripts/check-env.js @@ -23,12 +23,5 @@ if (!process.env.SKIP_DB_CHECK && !process.env.DATABASE_TYPE) { } if (process.env.CLOUD_URL) { - checkMissing([ - 'CLOUD_URL', - 'CLICKHOUSE_URL', - 'REDIS_URL', - 'KAFKA_BROKER', - 'KAFKA_URL', - 'KAFKA_SASL_MECHANISM', - ]); + checkMissing(['CLOUD_URL', 'CLICKHOUSE_URL', 'REDIS_URL']); } From 98bdc822397023130c8684d4f28c5ba2914be054 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Wed, 1 Oct 2025 10:32:38 -0700 Subject: [PATCH 3/5] Updated CSP generation. --- next.config.ts | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/next.config.ts b/next.config.ts index 17705dc20..f0324e412 100644 --- a/next.config.ts +++ b/next.config.ts @@ -14,14 +14,14 @@ const frameAncestors = process.env.ALLOWED_FRAME_URLS || ''; const trackerScriptName = process.env.TRACKER_SCRIPT_NAME || ''; const trackerScriptURL = process.env.TRACKER_SCRIPT_URL || ''; -const contentSecurityPolicy = [ - `default-src 'self'`, - `img-src * data:`, - `script-src 'self' 'unsafe-eval' 'unsafe-inline'`, - `style-src 'self' 'unsafe-inline'`, - `connect-src 'self' api.umami.is cloud.umami.is`, - `frame-ancestors 'self' ${frameAncestors}`, -]; +const contentSecurityPolicy = ` + default-src 'self'; + img-src 'self' https: data:; + script-src 'self' 'unsafe-eval' 'unsafe-inline'; + style-src 'self' 'unsafe-inline'; + connect-src 'self' api.umami.is cloud.umami.is; + frame-ancestors 'self' ${frameAncestors}; +`; const defaultHeaders = [ { @@ -30,10 +30,7 @@ const defaultHeaders = [ }, { key: 'Content-Security-Policy', - value: contentSecurityPolicy - .join(';') - .replace(/\s{2,}/g, ' ') - .trim(), + value: contentSecurityPolicy.replace(/\s{2,}/g, ' ').trim(), }, ]; From cd6ad0add26d118009ee28cc9f93c35df7ec5d3b Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Wed, 1 Oct 2025 11:16:33 -0700 Subject: [PATCH 4/5] Updated CSP. --- next.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/next.config.ts b/next.config.ts index f0324e412..6fac599e4 100644 --- a/next.config.ts +++ b/next.config.ts @@ -19,7 +19,7 @@ const contentSecurityPolicy = ` img-src 'self' https: data:; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; - connect-src 'self' api.umami.is cloud.umami.is; + connect-src *; frame-ancestors 'self' ${frameAncestors}; `; From 1809959b99959c1e0facbdc7f45959ea9764cafb Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Wed, 1 Oct 2025 12:29:31 -0700 Subject: [PATCH 5/5] fix event type queries for pixels/links. remove hardcoded event types --- src/app/(main)/pixels/[pixelId]/page.tsx | 4 ++-- .../websites/[websiteId]/metrics/expanded/route.ts | 11 +++-------- src/app/api/websites/[websiteId]/metrics/route.ts | 13 ++++--------- src/lib/date.ts | 7 +------ src/queries/sql/events/getEventExpandedMetrics.ts | 1 + src/queries/sql/getChannelExpandedMetrics.ts | 7 +++---- src/queries/sql/getChannelMetrics.ts | 7 +++---- src/queries/sql/getWebsiteStats.ts | 8 ++++---- .../sql/pageviews/getPageviewExpandedMetrics.ts | 6 ++++-- src/queries/sql/pageviews/getPageviewMetrics.ts | 7 +++++-- src/queries/sql/pageviews/getPageviewStats.ts | 7 ++++--- .../sql/sessions/getSessionExpandedMetrics.ts | 6 +++--- src/queries/sql/sessions/getSessionMetrics.ts | 2 +- src/queries/sql/sessions/getSessionStats.ts | 7 ++++--- 14 files changed, 42 insertions(+), 51 deletions(-) diff --git a/src/app/(main)/pixels/[pixelId]/page.tsx b/src/app/(main)/pixels/[pixelId]/page.tsx index 04800cae6..85456d29e 100644 --- a/src/app/(main)/pixels/[pixelId]/page.tsx +++ b/src/app/(main)/pixels/[pixelId]/page.tsx @@ -1,8 +1,8 @@ import { PixelPage } from './PixelPage'; import { Metadata } from 'next'; -export default function ({ params }: { params: { pixelId: string } }) { - const { pixelId } = params; +export default async function ({ params }: { params: { pixelId: string } }) { + const { pixelId } = await params; return ; } diff --git a/src/app/api/websites/[websiteId]/metrics/expanded/route.ts b/src/app/api/websites/[websiteId]/metrics/expanded/route.ts index c68acfe5b..703cf5ee7 100644 --- a/src/app/api/websites/[websiteId]/metrics/expanded/route.ts +++ b/src/app/api/websites/[websiteId]/metrics/expanded/route.ts @@ -1,8 +1,8 @@ -import { canViewWebsite } from '@/permissions'; -import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { EVENT_COLUMNS, EVENT_TYPE, SESSION_COLUMNS } from '@/lib/constants'; import { getQueryFilters, parseRequest } from '@/lib/request'; import { badRequest, json, unauthorized } from '@/lib/response'; import { dateRangeParams, filterParams, searchParams } from '@/lib/schema'; +import { canViewWebsite } from '@/permissions'; import { getChannelExpandedMetrics, getEventExpandedMetrics, @@ -50,13 +50,8 @@ export async function GET( } if (EVENT_COLUMNS.includes(type)) { - const column = FILTER_COLUMNS[type] || type; - - if (column === 'event_name') { - filters.eventType = EVENT_TYPE.customEvent; - } - if (type === 'event') { + filters.eventType = EVENT_TYPE.customEvent; return json(await getEventExpandedMetrics(websiteId, { type, limit, offset }, filters)); } else { return json(await getPageviewExpandedMetrics(websiteId, { type, limit, offset }, filters)); diff --git a/src/app/api/websites/[websiteId]/metrics/route.ts b/src/app/api/websites/[websiteId]/metrics/route.ts index 461b5359e..3bfeaa6a4 100644 --- a/src/app/api/websites/[websiteId]/metrics/route.ts +++ b/src/app/api/websites/[websiteId]/metrics/route.ts @@ -1,7 +1,8 @@ -import { canViewWebsite } from '@/permissions'; -import { EVENT_COLUMNS, EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { EVENT_COLUMNS, EVENT_TYPE, SESSION_COLUMNS } from '@/lib/constants'; import { getQueryFilters, parseRequest } from '@/lib/request'; import { badRequest, json, unauthorized } from '@/lib/response'; +import { dateRangeParams, filterParams, searchParams } from '@/lib/schema'; +import { canViewWebsite } from '@/permissions'; import { getChannelMetrics, getEventMetrics, @@ -9,7 +10,6 @@ import { getSessionMetrics, } from '@/queries/sql'; import { z } from 'zod'; -import { dateRangeParams, filterParams, searchParams } from '@/lib/schema'; export async function GET( request: Request, @@ -50,13 +50,8 @@ export async function GET( } if (EVENT_COLUMNS.includes(type)) { - const column = FILTER_COLUMNS[type] || type; - - if (column === 'event_name') { - filters.eventType = EVENT_TYPE.customEvent; - } - if (type === 'event') { + filters.eventType = EVENT_TYPE.customEvent; return json(await getEventMetrics(websiteId, { type, limit, offset }, filters)); } else { return json(await getPageviewMetrics(websiteId, { type, limit, offset }, filters)); diff --git a/src/lib/date.ts b/src/lib/date.ts index 029318340..6a967477e 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -157,12 +157,7 @@ export function parseDateRange(value: string, locale = 'en-US'): DateRange { const now = new Date(); const dateLocale = getDateLocale(locale); - const { unit } = parseDateValue(value); - let { num = 1 } = parseDateValue(value); - - if (value === '7day') { - num--; - } + const { num = 1, unit } = parseDateValue(value); switch (unit) { case 'hour': diff --git a/src/queries/sql/events/getEventExpandedMetrics.ts b/src/queries/sql/events/getEventExpandedMetrics.ts index 96a452fa9..6be99b409 100644 --- a/src/queries/sql/events/getEventExpandedMetrics.ts +++ b/src/queries/sql/events/getEventExpandedMetrics.ts @@ -75,6 +75,7 @@ async function clickhouseQuery( const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, + eventType: EVENT_TYPE.customEvent, }); return rawQuery( diff --git a/src/queries/sql/getChannelExpandedMetrics.ts b/src/queries/sql/getChannelExpandedMetrics.ts index af67c93c5..571c9d9d8 100644 --- a/src/queries/sql/getChannelExpandedMetrics.ts +++ b/src/queries/sql/getChannelExpandedMetrics.ts @@ -1,7 +1,6 @@ import clickhouse from '@/lib/clickhouse'; import { EMAIL_DOMAINS, - EVENT_TYPE, PAID_AD_PARAMS, SEARCH_DOMAINS, SHOPPING_DOMAINS, @@ -45,7 +44,6 @@ async function relationalQuery( const { queryParams, filterQuery, joinSessionQuery, cohortQuery, dateQuery } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -68,7 +66,8 @@ async function relationalQuery( from website_event ${cohortQuery} ${joinSessionQuery} - where website_id = {{websiteId::uuid}} + where website_event.website_id = {{websiteId::uuid}} + and website_event.event_type != 2 ${dateQuery} ${filterQuery} group by 1, 2 @@ -93,7 +92,6 @@ async function clickhouseQuery( const { queryParams, filterQuery, cohortQuery } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -140,6 +138,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 and name != '' ${filterQuery} group by prefix, name, session_id, visit_id diff --git a/src/queries/sql/getChannelMetrics.ts b/src/queries/sql/getChannelMetrics.ts index 05ddda3d2..5fc9187e6 100644 --- a/src/queries/sql/getChannelMetrics.ts +++ b/src/queries/sql/getChannelMetrics.ts @@ -1,7 +1,6 @@ import clickhouse from '@/lib/clickhouse'; import { EMAIL_DOMAINS, - EVENT_TYPE, PAID_AD_PARAMS, SEARCH_DOMAINS, SHOPPING_DOMAINS, @@ -26,7 +25,6 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { const { queryParams, filterQuery, joinSessionQuery, cohortQuery, dateQuery } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -49,7 +47,8 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { from website_event ${cohortQuery} ${joinSessionQuery} - where website_id = {{websiteId::uuid}} + where website_event.website_id = {{websiteId::uuid}} + and website_event.event_type != 2 ${dateQuery} ${filterQuery} group by 1, 2 @@ -74,7 +73,6 @@ async function clickhouseQuery( const { queryParams, filterQuery, cohortQuery, dateQuery } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); const sql = ` @@ -108,6 +106,7 @@ async function clickhouseQuery( from website_event ${cohortQuery} where website_id = {websiteId:UUID} + and event_type != 2 ${dateQuery} ${filterQuery} group by 1, 2 diff --git a/src/queries/sql/getWebsiteStats.ts b/src/queries/sql/getWebsiteStats.ts index 79fb8bbe9..9551cd8f7 100644 --- a/src/queries/sql/getWebsiteStats.ts +++ b/src/queries/sql/getWebsiteStats.ts @@ -1,9 +1,8 @@ import clickhouse from '@/lib/clickhouse'; -import { EVENT_TYPE } from '@/lib/constants'; +import { EVENT_COLUMNS } from '@/lib/constants'; import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; import prisma from '@/lib/prisma'; import { QueryFilters } from '@/lib/types'; -import { EVENT_COLUMNS } from '@/lib/constants'; export interface WebsiteStatsData { pageviews: number; @@ -30,7 +29,6 @@ async function relationalQuery( const { filterQuery, joinSessionQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -53,6 +51,7 @@ async function relationalQuery( ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${filterQuery} group by 1, 2 ) as t @@ -69,7 +68,6 @@ async function clickhouseQuery( const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); let sql = ''; @@ -93,6 +91,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by session_id, visit_id ) as t; @@ -115,6 +114,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by session_id, visit_id ) as t; diff --git a/src/queries/sql/pageviews/getPageviewExpandedMetrics.ts b/src/queries/sql/pageviews/getPageviewExpandedMetrics.ts index cef79096c..a718c4113 100644 --- a/src/queries/sql/pageviews/getPageviewExpandedMetrics.ts +++ b/src/queries/sql/pageviews/getPageviewExpandedMetrics.ts @@ -64,7 +64,7 @@ async function relationalQuery( from website_event where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} - and event_type = {{eventType}} + and website_event.event_type != 2 group by visit_id ) x on x.visit_id = website_event.visit_id @@ -82,6 +82,7 @@ async function relationalQuery( ${entryExitQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${excludeDomain} ${filterQuery} group by 1 @@ -127,7 +128,7 @@ async function clickhouseQuery( from website_event where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} - and event_type = {eventType:UInt32} + and event_type != 2 group by visit_id) x ON x.visit_id = website_event.visit_id`; } @@ -154,6 +155,7 @@ async function clickhouseQuery( ${entryExitQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 and name != '' ${excludeDomain} ${filterQuery} diff --git a/src/queries/sql/pageviews/getPageviewMetrics.ts b/src/queries/sql/pageviews/getPageviewMetrics.ts index 71ce13b37..0a92e6afd 100644 --- a/src/queries/sql/pageviews/getPageviewMetrics.ts +++ b/src/queries/sql/pageviews/getPageviewMetrics.ts @@ -62,7 +62,7 @@ async function relationalQuery( from website_event where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} - and event_type = {{eventType}} + and website_event.event_type != 2 order by visit_id, created_at ${order} ) x on x.visit_id = website_event.visit_id @@ -79,6 +79,7 @@ async function relationalQuery( ${entryExitQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${excludeDomain} ${filterQuery} group by 1 @@ -124,7 +125,7 @@ async function clickhouseQuery( from website_event where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} - and event_type = {eventType:UInt32} + and event_type != 2 group by visit_id) x ON x.visit_id = website_event.visit_id`; } @@ -137,6 +138,7 @@ async function clickhouseQuery( ${entryExitQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${excludeDomain} ${filterQuery} group by x @@ -174,6 +176,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${excludeDomain} ${filterQuery} ${groupByQuery}) as g diff --git a/src/queries/sql/pageviews/getPageviewStats.ts b/src/queries/sql/pageviews/getPageviewStats.ts index a8ee4734c..1e7f9d61b 100644 --- a/src/queries/sql/pageviews/getPageviewStats.ts +++ b/src/queries/sql/pageviews/getPageviewStats.ts @@ -1,7 +1,7 @@ import clickhouse from '@/lib/clickhouse'; +import { EVENT_COLUMNS } from '@/lib/constants'; import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; import prisma from '@/lib/prisma'; -import { EVENT_COLUMNS, EVENT_TYPE } from '@/lib/constants'; import { QueryFilters } from '@/lib/types'; export async function getPageviewStats(...args: [websiteId: string, filters: QueryFilters]) { @@ -17,7 +17,6 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { const { filterQuery, cohortQuery, joinSessionQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -30,6 +29,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${filterQuery} group by 1 order by 1 @@ -47,7 +47,6 @@ async function clickhouseQuery( const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); let sql = ''; @@ -65,6 +64,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by t ) as g @@ -83,6 +83,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by t ) as g diff --git a/src/queries/sql/sessions/getSessionExpandedMetrics.ts b/src/queries/sql/sessions/getSessionExpandedMetrics.ts index 56dba66e7..b4ba5b671 100644 --- a/src/queries/sql/sessions/getSessionExpandedMetrics.ts +++ b/src/queries/sql/sessions/getSessionExpandedMetrics.ts @@ -1,5 +1,5 @@ import clickhouse from '@/lib/clickhouse'; -import { EVENT_TYPE, FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; +import { FILTER_COLUMNS, SESSION_COLUMNS } from '@/lib/constants'; import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; import prisma from '@/lib/prisma'; import { QueryFilters } from '@/lib/types'; @@ -40,7 +40,6 @@ async function relationalQuery( { ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }, { joinSession: SESSION_COLUMNS.includes(type), @@ -63,6 +62,7 @@ async function relationalQuery( ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${filterQuery} group by 1 ${includeCountry ? ', 3' : ''} @@ -85,7 +85,6 @@ async function clickhouseQuery( const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); const includeCountry = column === 'city' || column === 'region'; @@ -116,6 +115,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 and name != '' ${filterQuery} group by name, session_id, visit_id diff --git a/src/queries/sql/sessions/getSessionMetrics.ts b/src/queries/sql/sessions/getSessionMetrics.ts index f4e6a22f6..7133332b5 100644 --- a/src/queries/sql/sessions/getSessionMetrics.ts +++ b/src/queries/sql/sessions/getSessionMetrics.ts @@ -55,7 +55,7 @@ async function relationalQuery( ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} - and event_type != 2 + and website_event.event_type != 2 ${filterQuery} group by 1 ${includeCountry ? ', 3' : ''} diff --git a/src/queries/sql/sessions/getSessionStats.ts b/src/queries/sql/sessions/getSessionStats.ts index 62ef44802..b1c9891eb 100644 --- a/src/queries/sql/sessions/getSessionStats.ts +++ b/src/queries/sql/sessions/getSessionStats.ts @@ -1,5 +1,5 @@ import clickhouse from '@/lib/clickhouse'; -import { EVENT_COLUMNS, EVENT_TYPE } from '@/lib/constants'; +import { EVENT_COLUMNS } from '@/lib/constants'; import { CLICKHOUSE, PRISMA, runQuery } from '@/lib/db'; import prisma from '@/lib/prisma'; import { QueryFilters } from '@/lib/types'; @@ -17,7 +17,6 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { const { filterQuery, joinSessionQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); return rawQuery( @@ -30,6 +29,7 @@ async function relationalQuery(websiteId: string, filters: QueryFilters) { ${joinSessionQuery} where website_event.website_id = {{websiteId::uuid}} and website_event.created_at between {{startDate}} and {{endDate}} + and website_event.event_type != 2 ${filterQuery} group by 1 order by 1 @@ -47,7 +47,6 @@ async function clickhouseQuery( const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId, - eventType: EVENT_TYPE.pageView, }); let sql = ''; @@ -65,6 +64,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by t ) as g @@ -83,6 +83,7 @@ async function clickhouseQuery( ${cohortQuery} where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type != 2 ${filterQuery} group by t ) as g