UNPKG

logstack-zee

Version:

Complete Node.js logging solution with 6 integration methods, S3 bidirectional operations, advanced analytics, and multi-cloud storage support for enterprise-scale applications.

365 lines (364 loc) 11.1 kB
/** * 🔒 Sensitive Data Masking Example * * This example demonstrates how to configure sensitive data masking for the logstack package. * Data masking helps protect PII and sensitive information in logs and stored files. */ import { Config } from '../types/config'; declare const basicMaskingConfig: Config; declare const productionMaskingConfig: Config; declare const developmentMaskingConfig: Config; declare const environmentConfigs: { development: { dataMasking: import("../lib/dataMasking").MaskingConfig; dbUri: string; uploadProvider: "local" | "s3" | "gcs" | "azure"; fileFormat?: "json" | "csv" | "txt"; retryAttempts?: number; dailyCron?: string; hourlyCron?: string; timezone?: string; retention?: { database?: { apiLogs?: number; jobs?: number; logs?: number; autoCleanup?: boolean; cleanupCron?: string; }; storage?: { files?: number; autoCleanup?: boolean; cleanupCron?: string; s3Lifecycle?: { transitionToIA?: number; transitionToGlacier?: number; transitionToDeepArchive?: number; expiration?: number; }; }; }; outputDirectory?: string; folderStructure?: { type?: "daily" | "monthly" | "yearly"; pattern?: string; subFolders?: { enabled?: boolean; byHour?: boolean; byStatus?: boolean; custom?: string[]; }; naming?: { dateFormat?: string; includeTime?: boolean; prefix?: string; suffix?: string; }; }; compression?: { enabled?: boolean; format?: "gzip" | "zip" | "brotli"; level?: number; fileSize?: number; }; collections?: { jobsCollectionName?: string; logsCollectionName?: string; apiLogsCollectionName?: string; }; apiLogs?: { existingCollection?: { name: string; timestampField: string; requiredFields?: { method?: string; path?: string; client_ip?: string; user_id?: string; requestBody?: string; responseStatus?: string; responseBody?: string; requestHeaders?: string; responseHeaders?: string; }; }; createNew?: { collectionName?: string; enableMiddleware?: boolean; autoFields?: boolean; }; }; s3?: { accessKeyId: string; secretAccessKey: string; region: string; bucket: string; endpoint?: string; }; gcs?: { projectId: string; keyFilename?: string; credentials?: any; bucket: string; }; azure?: { connectionString: string; containerName: string; }; logging?: { level: "debug" | "info" | "warn" | "error"; enableConsole?: boolean; enableFile?: boolean; logFilePath?: string; }; }; staging: { dataMasking: import("../lib/dataMasking").MaskingConfig; dbUri: string; uploadProvider: "local" | "s3" | "gcs" | "azure"; fileFormat?: "json" | "csv" | "txt"; retryAttempts?: number; dailyCron?: string; hourlyCron?: string; timezone?: string; retention?: { database?: { apiLogs?: number; jobs?: number; logs?: number; autoCleanup?: boolean; cleanupCron?: string; }; storage?: { files?: number; autoCleanup?: boolean; cleanupCron?: string; s3Lifecycle?: { transitionToIA?: number; transitionToGlacier?: number; transitionToDeepArchive?: number; expiration?: number; }; }; }; outputDirectory?: string; folderStructure?: { type?: "daily" | "monthly" | "yearly"; pattern?: string; subFolders?: { enabled?: boolean; byHour?: boolean; byStatus?: boolean; custom?: string[]; }; naming?: { dateFormat?: string; includeTime?: boolean; prefix?: string; suffix?: string; }; }; compression?: { enabled?: boolean; format?: "gzip" | "zip" | "brotli"; level?: number; fileSize?: number; }; collections?: { jobsCollectionName?: string; logsCollectionName?: string; apiLogsCollectionName?: string; }; apiLogs?: { existingCollection?: { name: string; timestampField: string; requiredFields?: { method?: string; path?: string; client_ip?: string; user_id?: string; requestBody?: string; responseStatus?: string; responseBody?: string; requestHeaders?: string; responseHeaders?: string; }; }; createNew?: { collectionName?: string; enableMiddleware?: boolean; autoFields?: boolean; }; }; s3?: { accessKeyId: string; secretAccessKey: string; region: string; bucket: string; endpoint?: string; }; gcs?: { projectId: string; keyFilename?: string; credentials?: any; bucket: string; }; azure?: { connectionString: string; containerName: string; }; logging?: { level: "debug" | "info" | "warn" | "error"; enableConsole?: boolean; enableFile?: boolean; logFilePath?: string; }; }; production: { dataMasking: import("../lib/dataMasking").MaskingConfig; dbUri: string; uploadProvider: "local" | "s3" | "gcs" | "azure"; fileFormat?: "json" | "csv" | "txt"; retryAttempts?: number; dailyCron?: string; hourlyCron?: string; timezone?: string; retention?: { database?: { apiLogs?: number; jobs?: number; logs?: number; autoCleanup?: boolean; cleanupCron?: string; }; storage?: { files?: number; autoCleanup?: boolean; cleanupCron?: string; s3Lifecycle?: { transitionToIA?: number; transitionToGlacier?: number; transitionToDeepArchive?: number; expiration?: number; }; }; }; outputDirectory?: string; folderStructure?: { type?: "daily" | "monthly" | "yearly"; pattern?: string; subFolders?: { enabled?: boolean; byHour?: boolean; byStatus?: boolean; custom?: string[]; }; naming?: { dateFormat?: string; includeTime?: boolean; prefix?: string; suffix?: string; }; }; compression?: { enabled?: boolean; format?: "gzip" | "zip" | "brotli"; level?: number; fileSize?: number; }; collections?: { jobsCollectionName?: string; logsCollectionName?: string; apiLogsCollectionName?: string; }; apiLogs?: { existingCollection?: { name: string; timestampField: string; requiredFields?: { method?: string; path?: string; client_ip?: string; user_id?: string; requestBody?: string; responseStatus?: string; responseBody?: string; requestHeaders?: string; responseHeaders?: string; }; }; createNew?: { collectionName?: string; enableMiddleware?: boolean; autoFields?: boolean; }; }; s3?: { accessKeyId: string; secretAccessKey: string; region: string; bucket: string; endpoint?: string; }; gcs?: { projectId: string; keyFilename?: string; credentials?: any; bucket: string; }; azure?: { connectionString: string; containerName: string; }; logging?: { level: "debug" | "info" | "warn" | "error"; enableConsole?: boolean; enableFile?: boolean; logFilePath?: string; }; }; }; declare const sensitiveTestData: { user_id: string; email: string; password: string; credit_card: string; phone: string; ssn: string; api_key: string; jwt_token: string; ip_address: string; request_body: string; connection_string: string; }; declare const sensitiveApiLogData: { request_time: Date; response_time: Date; method: string; path: string; requestBody: { email: string; password: string; remember_me: boolean; }; requestHeaders: { authorization: string; 'user-agent': string; 'x-api-key': string; }; responseStatus: number; responseBody: { success: boolean; token: string; user: { id: number; email: string; phone: string; credit_card_last4: string; }; }; client_ip: string; client_agent: string; }; export { basicMaskingConfig, productionMaskingConfig, developmentMaskingConfig, environmentConfigs, sensitiveTestData, sensitiveApiLogData };