mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-03 21:26:04 +00:00
feat: org id logger
This commit is contained in:
Vendored
+1
@@ -110,6 +110,7 @@ import { TWorkflowIntegrationServiceFactory } from "@app/services/workflow-integ
|
|||||||
declare module "@fastify/request-context" {
|
declare module "@fastify/request-context" {
|
||||||
interface RequestContextData {
|
interface RequestContextData {
|
||||||
reqId: string;
|
reqId: string;
|
||||||
|
orgId?: string;
|
||||||
identityAuthInfo?: {
|
identityAuthInfo?: {
|
||||||
identityId: string;
|
identityId: string;
|
||||||
oidc?: {
|
oidc?: {
|
||||||
|
|||||||
@@ -95,11 +95,20 @@ const extractReqId = () => {
|
|||||||
try {
|
try {
|
||||||
return requestContext.get("reqId") || UNKNOWN_REQUEST_ID;
|
return requestContext.get("reqId") || UNKNOWN_REQUEST_ID;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
console.log("failed to get request context", err);
|
console.log("failed to get request context", err);
|
||||||
return UNKNOWN_REQUEST_ID;
|
return UNKNOWN_REQUEST_ID;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const extractOrgId = () => {
|
||||||
|
try {
|
||||||
|
return requestContext.get("orgId");
|
||||||
|
} catch {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const initLogger = () => {
|
export const initLogger = () => {
|
||||||
const cfg = loggerConfig.parse(process.env);
|
const cfg = loggerConfig.parse(process.env);
|
||||||
const targets: pino.TransportMultiOptions["targets"][number][] = [
|
const targets: pino.TransportMultiOptions["targets"][number][] = [
|
||||||
@@ -135,22 +144,22 @@ export const initLogger = () => {
|
|||||||
const wrapLogger = (originalLogger: Logger): CustomLogger => {
|
const wrapLogger = (originalLogger: Logger): CustomLogger => {
|
||||||
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
||||||
originalLogger.info = (obj: unknown, msg?: string, ...args: any[]) => {
|
originalLogger.info = (obj: unknown, msg?: string, ...args: any[]) => {
|
||||||
return originalLogger.child({ reqId: extractReqId() }).info(obj, msg, ...args);
|
return originalLogger.child({ reqId: extractReqId(), orgId: extractOrgId() }).info(obj, msg, ...args);
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
||||||
originalLogger.error = (obj: unknown, msg?: string, ...args: any[]) => {
|
originalLogger.error = (obj: unknown, msg?: string, ...args: any[]) => {
|
||||||
return originalLogger.child({ reqId: extractReqId() }).error(obj, msg, ...args);
|
return originalLogger.child({ reqId: extractReqId(), orgId: extractOrgId() }).error(obj, msg, ...args);
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
||||||
originalLogger.warn = (obj: unknown, msg?: string, ...args: any[]) => {
|
originalLogger.warn = (obj: unknown, msg?: string, ...args: any[]) => {
|
||||||
return originalLogger.child({ reqId: extractReqId() }).warn(obj, msg, ...args);
|
return originalLogger.child({ reqId: extractReqId(), orgId: extractOrgId() }).warn(obj, msg, ...args);
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line no-param-reassign, @typescript-eslint/no-explicit-any
|
||||||
originalLogger.debug = (obj: unknown, msg?: string, ...args: any[]) => {
|
originalLogger.debug = (obj: unknown, msg?: string, ...args: any[]) => {
|
||||||
return originalLogger.child({ reqId: extractReqId() }).debug(obj, msg, ...args);
|
return originalLogger.child({ reqId: extractReqId(), orgId: extractOrgId() }).debug(obj, msg, ...args);
|
||||||
};
|
};
|
||||||
|
|
||||||
return originalLogger;
|
return originalLogger;
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ export const injectIdentity = fp(async (server: FastifyZodProvider) => {
|
|||||||
switch (authMode) {
|
switch (authMode) {
|
||||||
case AuthMode.JWT: {
|
case AuthMode.JWT: {
|
||||||
const { user, tokenVersionId, orgId } = await server.services.authToken.fnValidateJwtIdentity(token);
|
const { user, tokenVersionId, orgId } = await server.services.authToken.fnValidateJwtIdentity(token);
|
||||||
|
requestContext.set("orgId", orgId);
|
||||||
req.auth = {
|
req.auth = {
|
||||||
authMode: AuthMode.JWT,
|
authMode: AuthMode.JWT,
|
||||||
user,
|
user,
|
||||||
@@ -138,6 +139,7 @@ export const injectIdentity = fp(async (server: FastifyZodProvider) => {
|
|||||||
case AuthMode.IDENTITY_ACCESS_TOKEN: {
|
case AuthMode.IDENTITY_ACCESS_TOKEN: {
|
||||||
const identity = await server.services.identityAccessToken.fnValidateIdentityAccessToken(token, req.realIp);
|
const identity = await server.services.identityAccessToken.fnValidateIdentityAccessToken(token, req.realIp);
|
||||||
const serverCfg = await getServerCfg();
|
const serverCfg = await getServerCfg();
|
||||||
|
requestContext.set("orgId", identity.orgId);
|
||||||
req.auth = {
|
req.auth = {
|
||||||
authMode: AuthMode.IDENTITY_ACCESS_TOKEN,
|
authMode: AuthMode.IDENTITY_ACCESS_TOKEN,
|
||||||
actor,
|
actor,
|
||||||
|
|||||||
Reference in New Issue
Block a user