env
This commit is contained in:
1 parent
92f7a929fa
commit
16c7a007d5
4 files changed
+48
-1
No files matched your search
@@ -162,6 +162,7 @@ export const InfraMonitorsTable = ({
|
||||
id: "name",
|
||||
content: (
|
||||
<Typography
|
||||
component="div"
|
||||
display="inline-flex"
|
||||
alignItems="center"
|
||||
gap={theme.spacing(4)}
|
||||
@@ -180,6 +181,7 @@ export const InfraMonitorsTable = ({
|
||||
id: "status",
|
||||
content: (
|
||||
<Typography
|
||||
component="div"
|
||||
display="inline-flex"
|
||||
alignItems="center"
|
||||
gap={theme.spacing(4)}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Request, Response, NextFunction } from "express";
|
||||
import type { IDiagnosticService } from "@/services/business/DiagnosticService.js";
|
||||
import type { IJobData } from "@/services/infrastructure/JobQueue.js";
|
||||
|
||||
export interface IDiagnosticController {
|
||||
getLogs: (req: Request, res: Response, next: NextFunction) => void;
|
||||
getJobs(req: Request, res: Response, next: NextFunction): Promise<void>;
|
||||
getEnv(req: Request, res: Response, next: NextFunction): void;
|
||||
}
|
||||
|
||||
class DiagnosticController implements IDiagnosticController {
|
||||
@@ -30,6 +30,15 @@ class DiagnosticController implements IDiagnosticController {
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
getEnv = (req: Request, res: Response, next: NextFunction) => {
|
||||
try {
|
||||
const data = this.diagnosticService.getEnv();
|
||||
res.status(200).json({ message: "OK", data });
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export default DiagnosticController;
|
||||
@@ -29,6 +29,14 @@ class DiagnosticRoutes {
|
||||
verifyOrgPermission([PERMISSIONS.master]),
|
||||
this.controller.getJobs
|
||||
);
|
||||
|
||||
this.router.get(
|
||||
"/env",
|
||||
verifyToken,
|
||||
addUserContext,
|
||||
verifyOrgPermission([PERMISSIONS.master]),
|
||||
this.controller.getEnv
|
||||
);
|
||||
};
|
||||
|
||||
getRouter() {
|
||||
|
||||
@@ -4,6 +4,7 @@ import type {
|
||||
IJobMetrics,
|
||||
} from "@/services/infrastructure/JobQueue.js";
|
||||
import { memoryTransport } from "@/logger/Logger.js";
|
||||
import { config, type IEnvConfig } from "@/config/index.js";
|
||||
|
||||
export interface IDiagnosticService {
|
||||
getLogs: () => any[];
|
||||
@@ -11,6 +12,7 @@ export interface IDiagnosticService {
|
||||
jobs: IJobData[] | null;
|
||||
metrics: IJobMetrics | null;
|
||||
}>;
|
||||
getEnv: () => IEnvConfig;
|
||||
}
|
||||
|
||||
const SERVICE_NAME = "DiagnosticService";
|
||||
@@ -32,6 +34,32 @@ class DiagnosticService implements IDiagnosticService {
|
||||
const metrics = await this.jobQueue.getMetrics();
|
||||
return { jobs, metrics };
|
||||
};
|
||||
|
||||
getEnv = (): IEnvConfig => {
|
||||
const mask = (val: string | undefined | null): string => {
|
||||
const isDev = (config.NODE_ENV || "").toLowerCase() === "development";
|
||||
if (isDev) return val ?? "";
|
||||
if (val === undefined || val === null) return "";
|
||||
if (val.length <= 4) return "***";
|
||||
return `${val.slice(0, 2)}***${val.slice(-2)}`;
|
||||
};
|
||||
|
||||
return {
|
||||
NODE_ENV: config.NODE_ENV,
|
||||
DEPLOYMENT_MODE: config.DEPLOYMENT_MODE,
|
||||
LOG_LEVEL: config.LOG_LEVEL,
|
||||
ORIGIN: config.ORIGIN,
|
||||
JWT_SECRET: mask(config.JWT_SECRET),
|
||||
PORT: config.PORT,
|
||||
PAGESPEED_API_KEY: mask(config.PAGESPEED_API_KEY),
|
||||
SMTP_HOST: config.SMTP_HOST,
|
||||
SMTP_PORT: config.SMTP_PORT,
|
||||
SMTP_USER: mask(config.SMTP_USER),
|
||||
SMTP_PASS: mask(config.SMTP_PASS),
|
||||
STRIPE_SECRET: mask(config.STRIPE_SECRET),
|
||||
STRIPE_WEBHOOK_SECRET: mask(config.STRIPE_WEBHOOK_SECRET),
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export default DiagnosticService;
|
||||
Reference in new issue
Block a user