feat: add more api logs (#1870)

Adds more detailed API logging using Pino
This commit is contained in:
David Nguyen
2025-06-30 19:46:32 +10:00
committed by GitHub
parent 0cc729e9bd
commit 7487399123
74 changed files with 1395 additions and 544 deletions

View File

@ -5,8 +5,10 @@ import { z } from 'zod';
import type { SessionUser } from '@documenso/auth/server/lib/session/session';
import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session';
import type { RootApiLog } from '@documenso/lib/types/api-logs';
import type { ApiRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
import { extractRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
import { alphaid } from '@documenso/lib/universal/id';
import { logger } from '@documenso/lib/utils/logger';
// This is a bit nasty. Todo: Extract
import type { HonoEnv } from '@documenso/remix/server/router';
@ -22,16 +24,23 @@ export const createTrpcContext = async ({
const { session, user } = await getOptionalSession(c);
const req = c.req.raw;
const logger = c.get('logger');
const requestMetadata = c.get('context').requestMetadata;
const metadata: ApiRequestMetadata = {
requestMetadata: extractRequestMetadata(req),
requestMetadata,
source: requestSource,
auth: null,
};
const rawTeamId = req.headers.get('x-team-id') || undefined;
const trpcLogger = logger.child({
ipAddress: requestMetadata.ipAddress,
userAgent: requestMetadata.userAgent,
requestId: alphaid(),
} satisfies RootApiLog);
const teamId = z.coerce
.number()
.optional()
@ -40,7 +49,7 @@ export const createTrpcContext = async ({
if (!session || !user) {
return {
logger,
logger: trpcLogger,
session: null,
user: null,
teamId,
@ -50,7 +59,7 @@ export const createTrpcContext = async ({
}
return {
logger,
logger: trpcLogger,
session,
user,
teamId,