UNPKG

decodo-back-office-mcp

Version:

Model Context Protocol (MCP) server for Decodo proxy management API integration. Provides 14 tools for managing sub-users, proxy endpoints, IP whitelists, and traffic analytics.

39 lines 1.77 kB
import winston from 'winston'; import { appConfig } from './config.js'; export const logger = winston.createLogger({ level: appConfig.LOG_LEVEL, format: winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json()), defaultMeta: { service: appConfig.MCP_SERVER_NAME }, transports: [ new winston.transports.Console({ format: winston.format.combine(winston.format.colorize(), winston.format.simple()) }) ] }); // Create wrapper functions to ensure no sensitive data is logged const sanitizeMessage = (message) => { if (typeof message === 'string') { return message .replace(/api_key=[^&\s]+/gi, 'api_key=***') .replace(/Authorization:\s*[^\s]+/gi, 'Authorization: ***'); } return message; }; const sanitizeMeta = (meta) => { if (meta && typeof meta === 'object') { const stringified = JSON.stringify(meta); const sanitized = stringified.replace(/"api_key"\s*:\s*"[^"]+"/gi, '"api_key":"***"'); return JSON.parse(sanitized); } return meta; }; // Override winston methods with sanitization const originalInfo = logger.info.bind(logger); const originalError = logger.error.bind(logger); const originalWarn = logger.warn.bind(logger); const originalDebug = logger.debug.bind(logger); logger.info = (message, meta) => originalInfo(sanitizeMessage(message), sanitizeMeta(meta)); logger.error = (message, meta) => originalError(sanitizeMessage(message), sanitizeMeta(meta)); logger.warn = (message, meta) => originalWarn(sanitizeMessage(message), sanitizeMeta(meta)); logger.debug = (message, meta) => originalDebug(sanitizeMessage(message), sanitizeMeta(meta)); //# sourceMappingURL=logger.js.map