feature(dashboard): add ability to filter out events by profile id and ip (#101)

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-12-07 21:34:32 +01:00
committed by GitHub
parent 27ee623584
commit f4ad97d87d
39 changed files with 1148 additions and 542 deletions

View File

@@ -39,7 +39,7 @@ export const CLICKHOUSE_OPTIONS: NodeClickHouseClientConfigOptions = {
export const originalCh = createClient({
// TODO: remove this after migration
url: process.env.CLICKHOUSE_URL_CLUSTER ?? process.env.CLICKHOUSE_URL,
url: process.env.CLICKHOUSE_URL_DIRECT ?? process.env.CLICKHOUSE_URL,
...CLICKHOUSE_OPTIONS,
});

View File

@@ -1,3 +1,4 @@
import { cacheable } from '@openpanel/redis';
import type { Client, Prisma } from '../prisma-client';
import { db } from '../prisma-client';
@@ -21,3 +22,16 @@ export async function getClientsByOrganizationId(organizationId: string) {
},
});
}
export async function getClientById(
id: string,
): Promise<IServiceClientWithProject | null> {
return db.client.findUnique({
where: { id },
include: {
project: true,
},
});
}
export const getClientByIdCached = cacheable(getClientById, 60 * 60 * 24);

View File

@@ -1,6 +1,7 @@
import type {
IIntegrationConfig,
INotificationRuleConfig,
IProjectFilters,
} from '@openpanel/validation';
import type { INotificationPayload } from './services/notification.service';
@@ -9,5 +10,6 @@ declare global {
type IPrismaNotificationRuleConfig = INotificationRuleConfig;
type IPrismaIntegrationConfig = IIntegrationConfig;
type IPrismaNotificationPayload = INotificationPayload;
type IPrismaProjectFilters = IProjectFilters[];
}
}