diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f217a..ddeba10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.47.0] - 2026-04-04 + +### Added + +- **`n8n_audit_instance` tool** — Security audit combining n8n's built-in `POST /audit` API (5 risk categories: credentials, database, nodes, instance, filesystem) with deep workflow scanning. Custom checks include 50+ regex patterns for hardcoded secrets (OpenAI, AWS, Stripe, GitHub, Slack, SendGrid, and more), unauthenticated webhook detection, error handling gap analysis, data retention risk assessment, and PII detection. Returns a compact markdown report grouped by workflow with a Remediation Playbook showing auto-fixable items, items requiring review, and items requiring user action. Inspired by [Audit n8n Workflows Security](https://wotai.co/blog/audit-n8n-workflows-security) +- **`n8n_manage_credentials` tool** — Full credential CRUD with schema discovery. Actions: list, get, create, update, delete, getSchema. Enables AI agents to create credentials and assign them to workflow nodes as part of security remediation. Credential secret values are never logged or returned in responses (defense-in-depth) +- **Credential scanner service** (`src/services/credential-scanner.ts`) — 50+ regex patterns ported from the production cache ingestion pipeline, covering AI/ML keys, cloud/DevOps tokens, GitHub PATs, payment keys, email/marketing APIs, and more. Per-node scanning with masked output +- **Workflow security scanner** (`src/services/workflow-security-scanner.ts`) — 4 configurable checks: hardcoded secrets, unauthenticated webhooks (excludes respondToWebhook), error handling gaps (3+ node threshold), data retention settings +- **Audit report builder** (`src/services/audit-report-builder.ts`) — Generates compact grouped-by-workflow markdown with tables, built-in audit rendering, and a Remediation Playbook with tool chains for auto-fixing + +### Changed + +- **CLAUDE.md** — Removed Session Persistence section (no longer needed), added OSS sensitivity notice to prevent secrets from landing in committed files +- **API client request interceptor** — Now redacts request body for `/credentials` endpoints to prevent secret leakage in debug logs +- **Credential handler responses** — All credential handlers (get, create, update) strip the `data` field from responses as defense-in-depth against future n8n versions returning decrypted values + +### Security + +- **Secret masking at scan time** — `maskSecret()` is called immediately during scanning; raw values are never stored in detection results +- **Credential body redaction** — API client interceptor suppresses body logging for credential endpoints +- **Cursor dedup guard** — `listAllWorkflows()` tracks seen cursors to prevent infinite pagination loops +- **PII findings classified as review** — PII detections (email, phone, credit card) are marked as `review_recommended` instead of `auto_fixable`, preventing nonsensical auto-remediation + +Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en + ## [2.46.1] - 2026-04-03 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index e3a58a4..3ea015a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,6 +2,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +> **Note:** This file is committed to a public OSS repository. Never add sensitive information (API keys, internal URLs, credentials, private infrastructure details) here. + ## Project Overview n8n-mcp is a comprehensive documentation and knowledge server that provides AI assistants with complete access to n8n node information through the Model Context Protocol (MCP). It serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. @@ -195,35 +197,6 @@ The MCP server exposes tools in several categories: ### Development Best Practices - Run typecheck and lint after every code change -### Session Persistence Feature (v2.24.1) - -**Location:** -- Types: `src/types/session-state.ts` -- Implementation: `src/http-server-single-session.ts` (lines 698-702, 1444-1584) -- Wrapper: `src/mcp-engine.ts` (lines 123-169) -- Tests: `tests/unit/http-server/session-persistence.test.ts`, `tests/unit/mcp-engine/session-persistence.test.ts` - -**Key Features:** -- **Export/Restore API**: `exportSessionState()` and `restoreSessionState()` methods -- **Multi-tenant support**: Enables zero-downtime deployments for SaaS platforms -- **Security-first**: API keys exported as plaintext - downstream MUST encrypt -- **Dormant sessions**: Restored sessions recreate transports on first request -- **Automatic expiration**: Respects `sessionTimeout` setting (default 30 min) -- **MAX_SESSIONS limit**: Caps at 100 concurrent sessions (configurable via N8N_MCP_MAX_SESSIONS env var) - -**Important Implementation Notes:** -- Only exports sessions with valid n8nApiUrl and n8nApiKey in context -- Skips expired sessions during both export and restore -- Uses `validateInstanceContext()` for data integrity checks -- Handles null/invalid session gracefully with warnings -- Session metadata (timestamps) and context (credentials) are persisted -- Transport and server objects are NOT persisted (recreated on-demand) - -**Testing:** -- 22 unit tests covering export, restore, edge cases, and round-trip cycles -- Tests use current timestamps to avoid expiration issues -- Integration with multi-tenant backends documented in README.md - # important-instruction-reminders Do what has been asked; nothing more, nothing less. NEVER create files unless they're absolutely necessary for achieving your goal. diff --git a/README.md b/README.md index ccfc4b7..1e1ef78 100644 --- a/README.md +++ b/README.md @@ -987,6 +987,12 @@ These tools require `N8N_API_URL` and `N8N_API_KEY` in your configuration. - `action: 'get'` - Get execution details by ID - `action: 'delete'` - Delete execution records +#### Credential Management +- **`n8n_manage_credentials`** - Manage n8n credentials (list, get, create, update, delete, getSchema) + +#### Security & Audit +- **`n8n_audit_instance`** - Security audit combining n8n's built-in audit API with deep workflow scanning (50+ secret patterns, webhook auth, error handling, data retention). Returns actionable remediation playbook. + #### System Tools - **`n8n_health_check`** - Check n8n API connectivity and features diff --git a/dist/mcp/handlers-n8n-manager.d.ts b/dist/mcp/handlers-n8n-manager.d.ts index e0e3483..61c04ed 100644 --- a/dist/mcp/handlers-n8n-manager.d.ts +++ b/dist/mcp/handlers-n8n-manager.d.ts @@ -37,4 +37,11 @@ export declare function handleInsertRows(args: unknown, context?: InstanceContex export declare function handleUpdateRows(args: unknown, context?: InstanceContext): Promise; export declare function handleUpsertRows(args: unknown, context?: InstanceContext): Promise; export declare function handleDeleteRows(args: unknown, context?: InstanceContext): Promise; +export declare function handleListCredentials(args: unknown, context?: InstanceContext): Promise; +export declare function handleGetCredential(args: unknown, context?: InstanceContext): Promise; +export declare function handleCreateCredential(args: unknown, context?: InstanceContext): Promise; +export declare function handleUpdateCredential(args: unknown, context?: InstanceContext): Promise; +export declare function handleDeleteCredential(args: unknown, context?: InstanceContext): Promise; +export declare function handleGetCredentialSchema(args: unknown, context?: InstanceContext): Promise; +export declare function handleAuditInstance(args: unknown, context?: InstanceContext): Promise; //# sourceMappingURL=handlers-n8n-manager.d.ts.map \ No newline at end of file diff --git a/dist/mcp/handlers-n8n-manager.d.ts.map b/dist/mcp/handlers-n8n-manager.d.ts.map index daf07cd..ebc782a 100644 --- a/dist/mcp/handlers-n8n-manager.d.ts.map +++ b/dist/mcp/handlers-n8n-manager.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/mcp/handlers-n8n-manager.js b/dist/mcp/handlers-n8n-manager.js index abc762e..b4dd5cf 100644 --- a/dist/mcp/handlers-n8n-manager.js +++ b/dist/mcp/handlers-n8n-manager.js @@ -67,7 +67,16 @@ exports.handleInsertRows = handleInsertRows; exports.handleUpdateRows = handleUpdateRows; exports.handleUpsertRows = handleUpsertRows; exports.handleDeleteRows = handleDeleteRows; +exports.handleListCredentials = handleListCredentials; +exports.handleGetCredential = handleGetCredential; +exports.handleCreateCredential = handleCreateCredential; +exports.handleUpdateCredential = handleUpdateCredential; +exports.handleDeleteCredential = handleDeleteCredential; +exports.handleGetCredentialSchema = handleGetCredentialSchema; +exports.handleAuditInstance = handleAuditInstance; const n8n_api_client_1 = require("../services/n8n-api-client"); +const workflow_security_scanner_1 = require("../services/workflow-security-scanner"); +const audit_report_builder_1 = require("../services/audit-report-builder"); const n8n_api_1 = require("../config/n8n-api"); const n8n_api_2 = require("../types/n8n-api"); const n8n_validation_1 = require("../services/n8n-validation"); @@ -2129,7 +2138,7 @@ const deleteRowsSchema = tableIdSchema.extend({ returnData: zod_1.z.boolean().optional(), dryRun: zod_1.z.boolean().optional(), }); -function handleDataTableError(error) { +function handleCrudError(error) { if (error instanceof zod_1.z.ZodError) { return { success: false, error: 'Invalid input', details: { errors: error.errors } }; } @@ -2158,7 +2167,7 @@ async function handleCreateTable(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleListTables(args, context) { @@ -2176,7 +2185,7 @@ async function handleListTables(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleGetTable(args, context) { @@ -2187,7 +2196,7 @@ async function handleGetTable(args, context) { return { success: true, data: dataTable }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleUpdateTable(args, context) { @@ -2205,7 +2214,7 @@ async function handleUpdateTable(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleDeleteTable(args, context) { @@ -2216,7 +2225,7 @@ async function handleDeleteTable(args, context) { return { success: true, message: `Data table ${tableId} deleted successfully` }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleGetRows(args, context) { @@ -2241,7 +2250,7 @@ async function handleGetRows(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleInsertRows(args, context) { @@ -2256,7 +2265,7 @@ async function handleInsertRows(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleUpdateRows(args, context) { @@ -2271,7 +2280,7 @@ async function handleUpdateRows(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleUpsertRows(args, context) { @@ -2286,7 +2295,7 @@ async function handleUpsertRows(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } async function handleDeleteRows(args, context) { @@ -2305,7 +2314,220 @@ async function handleDeleteRows(args, context) { }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); + } +} +const listCredentialsSchema = zod_1.z.object({}).passthrough(); +const getCredentialSchema = zod_1.z.object({ + id: zod_1.z.string({ required_error: 'Credential ID is required' }), +}); +const createCredentialSchema = zod_1.z.object({ + name: zod_1.z.string({ required_error: 'Credential name is required' }), + type: zod_1.z.string({ required_error: 'Credential type is required' }), + data: zod_1.z.record(zod_1.z.any(), { required_error: 'Credential data is required' }), +}); +const updateCredentialSchema = zod_1.z.object({ + id: zod_1.z.string({ required_error: 'Credential ID is required' }), + name: zod_1.z.string().optional(), + data: zod_1.z.record(zod_1.z.any()).optional(), +}); +const deleteCredentialSchema = zod_1.z.object({ + id: zod_1.z.string({ required_error: 'Credential ID is required' }), +}); +const getCredentialSchemaTypeSchema = zod_1.z.object({ + type: zod_1.z.string({ required_error: 'Credential type is required' }), +}); +async function handleListCredentials(args, context) { + try { + const client = ensureApiConfigured(context); + listCredentialsSchema.parse(args); + const result = await client.listCredentials(); + return { + success: true, + data: { + credentials: result.data, + count: result.data.length, + nextCursor: result.nextCursor || undefined, + }, + }; + } + catch (error) { + return handleCrudError(error); + } +} +async function handleGetCredential(args, context) { + try { + const client = ensureApiConfigured(context); + const { id } = getCredentialSchema.parse(args); + const credential = await client.getCredential(id); + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + }; + } + catch (error) { + return handleCrudError(error); + } +} +async function handleCreateCredential(args, context) { + try { + const client = ensureApiConfigured(context); + const { name, type, data } = createCredentialSchema.parse(args); + logger_1.logger.info(`Creating credential: name="${name}", type="${type}"`); + const credential = await client.createCredential({ name, type, data }); + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + message: `Credential "${name}" (type: ${type}) created with ID ${credential.id}`, + }; + } + catch (error) { + return handleCrudError(error); + } +} +async function handleUpdateCredential(args, context) { + try { + const client = ensureApiConfigured(context); + const { id, name, data } = updateCredentialSchema.parse(args); + logger_1.logger.info(`Updating credential: id="${id}"${name ? `, name="${name}"` : ''}`); + const updatePayload = {}; + if (name !== undefined) + updatePayload.name = name; + if (data !== undefined) + updatePayload.data = data; + const credential = await client.updateCredential(id, updatePayload); + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + message: `Credential ${id} updated successfully`, + }; + } + catch (error) { + return handleCrudError(error); + } +} +async function handleDeleteCredential(args, context) { + try { + const client = ensureApiConfigured(context); + const { id } = deleteCredentialSchema.parse(args); + logger_1.logger.info(`Deleting credential: id="${id}"`); + await client.deleteCredential(id); + return { + success: true, + message: `Credential ${id} deleted successfully`, + }; + } + catch (error) { + return handleCrudError(error); + } +} +async function handleGetCredentialSchema(args, context) { + try { + const client = ensureApiConfigured(context); + const { type } = getCredentialSchemaTypeSchema.parse(args); + const schema = await client.getCredentialSchema(type); + return { + success: true, + data: schema, + message: `Schema for credential type "${type}"`, + }; + } + catch (error) { + return handleCrudError(error); + } +} +const auditInstanceSchema = zod_1.z.object({ + categories: zod_1.z.array(zod_1.z.enum([ + 'credentials', 'database', 'nodes', 'instance', 'filesystem', + ])).optional(), + includeCustomScan: zod_1.z.boolean().optional().default(true), + daysAbandonedWorkflow: zod_1.z.number().optional(), + customChecks: zod_1.z.array(zod_1.z.enum([ + 'hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention', + ])).optional(), +}); +async function handleAuditInstance(args, context) { + try { + const client = ensureApiConfigured(context); + const input = auditInstanceSchema.parse(args); + const totalStart = Date.now(); + const warnings = []; + let builtinAudit = null; + let builtinAuditMs = 0; + try { + const auditStart = Date.now(); + builtinAudit = await client.generateAudit({ + categories: input.categories, + daysAbandonedWorkflow: input.daysAbandonedWorkflow, + }); + builtinAuditMs = Date.now() - auditStart; + } + catch (auditError) { + builtinAuditMs = Date.now() - totalStart; + const msg = auditError?.statusCode === 404 + ? 'Built-in audit endpoint not available on this n8n version.' + : `Built-in audit failed: ${auditError?.message || 'unknown error'}`; + warnings.push(msg); + logger_1.logger.warn(`Audit: ${msg}`); + } + let customReport = null; + let workflowFetchMs = 0; + let customScanMs = 0; + if (input.includeCustomScan) { + try { + const fetchStart = Date.now(); + const allWorkflows = await client.listAllWorkflows(); + workflowFetchMs = Date.now() - fetchStart; + logger_1.logger.info(`Audit: fetched ${allWorkflows.length} workflows for scanning`); + const scanStart = Date.now(); + customReport = (0, workflow_security_scanner_1.scanWorkflows)(allWorkflows, input.customChecks); + customScanMs = Date.now() - scanStart; + logger_1.logger.info(`Audit: custom scan found ${customReport.summary.total} findings across ${customReport.workflowsScanned} workflows`); + } + catch (scanError) { + warnings.push(`Custom scan failed: ${scanError?.message || 'unknown error'}`); + logger_1.logger.warn(`Audit: custom scan failed: ${scanError?.message}`); + } + } + const totalMs = Date.now() - totalStart; + const apiConfig = context?.n8nApiUrl + ? { baseUrl: context.n8nApiUrl } + : (0, n8n_api_1.getN8nApiConfig)(); + const instanceUrl = apiConfig?.baseUrl || 'unknown'; + const report = (0, audit_report_builder_1.buildAuditReport)({ + builtinAudit, + customReport, + performance: { builtinAuditMs, workflowFetchMs, customScanMs, totalMs }, + instanceUrl, + warnings: warnings.length > 0 ? warnings : undefined, + }); + return { + success: true, + data: { + report: report.markdown, + summary: report.summary, + }, + }; + } + catch (error) { + if (error instanceof zod_1.z.ZodError) { + return { + success: false, + error: 'Invalid audit parameters', + details: { issues: error.errors }, + }; + } + if (error instanceof n8n_errors_1.N8nApiError) { + return { + success: false, + error: (0, n8n_errors_1.getUserFriendlyErrorMessage)(error), + }; + } + const message = error instanceof Error ? error.message : String(error); + return { success: false, error: message }; } } //# sourceMappingURL=handlers-n8n-manager.js.map \ No newline at end of file diff --git a/dist/mcp/handlers-n8n-manager.js.map b/dist/mcp/handlers-n8n-manager.js.map index de06672..5a49129 100644 --- a/dist/mcp/handlers-n8n-manager.js.map +++ b/dist/mcp/handlers-n8n-manager.js.map @@ -1 +1 @@ -{"version":3,"file":"handlers-n8n-manager.js","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"handlers-n8n-manager.js","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/mcp/server.d.ts.map b/dist/mcp/server.d.ts.map index eff6902..2893081 100644 --- a/dist/mcp/server.d.ts.map +++ b/dist/mcp/server.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAA2B,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAmGnE,UAAU,gBAAgB;IACxB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAAgC;IAC1C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAA0B;gBAE9C,eAAe,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IA+GnG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA+Cd,kBAAkB;YAiDlB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;YA6CZ,iBAAiB;IAa/B,OAAO,CAAC,eAAe,CAAkB;YAE3B,sBAAsB;IAgDpC,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAiYrB,OAAO,CAAC,wBAAwB;IAoFhC,OAAO,CAAC,kBAAkB;IA0E1B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,qBAAqB;IAiF7B,OAAO,CAAC,2BAA2B;YAgZrB,SAAS;YA2DT,WAAW;YAkFX,WAAW;YA2CX,cAAc;YAuNd,gBAAgB;IAuE9B,OAAO,CAAC,mBAAmB;IAwE3B,OAAO,CAAC,eAAe;YAsBT,eAAe;IA4M7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,uBAAuB;IA0D/B,OAAO,CAAC,iBAAiB;YAqFX,WAAW;YAgCX,oBAAoB;IAuFlC,OAAO,CAAC,aAAa;YAQP,qBAAqB;IA4DnC,OAAO,CAAC,mBAAmB;YAyCb,iBAAiB;YAiKjB,OAAO;YAgDP,cAAc;YAwFd,iBAAiB;IAqC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,4BAA4B;YAKtB,oBAAoB;IAsDlC,OAAO,CAAC,gBAAgB;YAiBV,SAAS;YA6CT,kBAAkB;YAqElB,uBAAuB;YAsDvB,iBAAiB;IAqE/B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,iBAAiB;YAoDX,mBAAmB;YAoEnB,qBAAqB;IAS7B,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAS9B,aAAa;YAcb,iBAAiB;YAoBjB,WAAW;YAwBX,eAAe;IAqB7B,OAAO,CAAC,qBAAqB,CASb;IAEhB,OAAO,CAAC,mBAAmB;YAsDb,mBAAmB;YAwBnB,yBAAyB;IA4CvC,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;YA6HhB,2BAA2B;YAiE3B,2BAA2B;IAyEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgEhC"} \ No newline at end of file +{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAA2B,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAmGnE,UAAU,gBAAgB;IACxB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAAgC;IAC1C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAA0B;gBAE9C,eAAe,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB;IA+GnG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA+Cd,kBAAkB;YAiDlB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;YA6CZ,iBAAiB;IAa/B,OAAO,CAAC,eAAe,CAAkB;YAE3B,sBAAsB;IAgDpC,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAiYrB,OAAO,CAAC,wBAAwB;IAoFhC,OAAO,CAAC,kBAAkB;IAmF1B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,qBAAqB;IAiF7B,OAAO,CAAC,2BAA2B;YAmarB,SAAS;YA2DT,WAAW;YAkFX,WAAW;YA2CX,cAAc;YAuNd,gBAAgB;IAuE9B,OAAO,CAAC,mBAAmB;IAwE3B,OAAO,CAAC,eAAe;YAsBT,eAAe;IA4M7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,uBAAuB;IA0D/B,OAAO,CAAC,iBAAiB;YAqFX,WAAW;YAgCX,oBAAoB;IAuFlC,OAAO,CAAC,aAAa;YAQP,qBAAqB;IA4DnC,OAAO,CAAC,mBAAmB;YAyCb,iBAAiB;YAiKjB,OAAO;YAgDP,cAAc;YAwFd,iBAAiB;IAqC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,4BAA4B;YAKtB,oBAAoB;IAsDlC,OAAO,CAAC,gBAAgB;YAiBV,SAAS;YA6CT,kBAAkB;YAqElB,uBAAuB;YAsDvB,iBAAiB;IAqE/B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,iBAAiB;YAoDX,mBAAmB;YAoEnB,qBAAqB;IAS7B,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAS9B,aAAa;YAcb,iBAAiB;YAoBjB,WAAW;YAwBX,eAAe;IAqB7B,OAAO,CAAC,qBAAqB,CASb;IAEhB,OAAO,CAAC,mBAAmB;YAsDb,mBAAmB;YAwBnB,yBAAyB;IA4CvC,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;YA6HhB,2BAA2B;YAiE3B,2BAA2B;IAyEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgEhC"} \ No newline at end of file diff --git a/dist/mcp/server.js b/dist/mcp/server.js index ed71a4c..aaa1165 100644 --- a/dist/mcp/server.js +++ b/dist/mcp/server.js @@ -730,6 +730,14 @@ class N8NDocumentationMCPServer { ? { valid: true, errors: [] } : { valid: false, errors: [{ field: 'action', message: 'action is required' }] }; break; + case 'n8n_manage_credentials': + validationResult = args.action + ? { valid: true, errors: [] } + : { valid: false, errors: [{ field: 'action', message: 'action is required' }] }; + break; + case 'n8n_audit_instance': + validationResult = { valid: true, errors: [] }; + break; case 'n8n_deploy_template': validationResult = args.templateId !== undefined ? { valid: true, errors: [] } @@ -1140,6 +1148,22 @@ class N8NDocumentationMCPServer { throw new Error(`Unknown action: ${dtAction}. Valid actions: createTable, listTables, getTable, updateTable, deleteTable, getRows, insertRows, updateRows, upsertRows, deleteRows`); } } + case 'n8n_manage_credentials': { + this.validateToolParams(name, args, ['action']); + const credAction = args.action; + switch (credAction) { + case 'list': return n8nHandlers.handleListCredentials(args, this.instanceContext); + case 'get': return n8nHandlers.handleGetCredential(args, this.instanceContext); + case 'create': return n8nHandlers.handleCreateCredential(args, this.instanceContext); + case 'update': return n8nHandlers.handleUpdateCredential(args, this.instanceContext); + case 'delete': return n8nHandlers.handleDeleteCredential(args, this.instanceContext); + case 'getSchema': return n8nHandlers.handleGetCredentialSchema(args, this.instanceContext); + default: + throw new Error(`Unknown action: ${credAction}. Valid actions: list, get, create, update, delete, getSchema`); + } + } + case 'n8n_audit_instance': + return n8nHandlers.handleAuditInstance(args, this.instanceContext); case 'n8n_generate_workflow': { this.validateToolParams(name, args, ['description']); if (this.generateWorkflowHandler && this.instanceContext) { diff --git a/dist/mcp/server.js.map b/dist/mcp/server.js.map index bef7251..77bb8bf 100644 --- a/dist/mcp/server.js.map +++ b/dist/mcp/server.js.map @@ -1 +1 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/index.d.ts.map b/dist/mcp/tool-docs/index.d.ts.map index 03e8885..25d3cd8 100644 --- a/dist/mcp/tool-docs/index.d.ts.map +++ b/dist/mcp/tool-docs/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tool-docs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA8B5C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAqChE,CAAC;AAGF,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tool-docs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgC5C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAuChE,CAAC;AAGF,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/index.js b/dist/mcp/tool-docs/index.js index 614faa6..dcf4535 100644 --- a/dist/mcp/tool-docs/index.js +++ b/dist/mcp/tool-docs/index.js @@ -11,6 +11,7 @@ const workflow_management_1 = require("./workflow_management"); exports.toolsDocumentation = { tools_documentation: system_1.toolsDocumentationDoc, n8n_health_check: system_1.n8nHealthCheckDoc, + n8n_audit_instance: system_1.n8nAuditInstanceDoc, ai_agents_guide: guides_1.aiAgentsGuide, search_nodes: discovery_1.searchNodesDoc, get_node: configuration_1.getNodeDoc, @@ -31,6 +32,7 @@ exports.toolsDocumentation = { n8n_workflow_versions: workflow_management_1.n8nWorkflowVersionsDoc, n8n_deploy_template: workflow_management_1.n8nDeployTemplateDoc, n8n_manage_datatable: workflow_management_1.n8nManageDatatableDoc, - n8n_generate_workflow: workflow_management_1.n8nGenerateWorkflowDoc + n8n_generate_workflow: workflow_management_1.n8nGenerateWorkflowDoc, + n8n_manage_credentials: workflow_management_1.n8nManageCredentialsDoc }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/mcp/tool-docs/index.js.map b/dist/mcp/tool-docs/index.js.map index 10a1d98..86cc957 100644 --- a/dist/mcp/tool-docs/index.js.map +++ b/dist/mcp/tool-docs/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tool-docs/index.ts"],"names":[],"mappings":";;;AAGA,2CAA6C;AAC7C,mDAA6C;AAC7C,6CAAoE;AACpE,2CAAiE;AACjE,qCAGkB;AAClB,qCAAyC;AACzC,+DAe+B;AAGlB,QAAA,kBAAkB,GAAsC;IAEnE,mBAAmB,EAAE,8BAAqB;IAC1C,gBAAgB,EAAE,0BAAiB;IAGnC,eAAe,EAAE,sBAAa;IAG9B,YAAY,EAAE,0BAAc;IAG5B,QAAQ,EAAE,0BAAU;IAGpB,aAAa,EAAE,4BAAe;IAC9B,iBAAiB,EAAE,gCAAmB;IAGtC,YAAY,EAAE,0BAAc;IAC5B,gBAAgB,EAAE,8BAAkB;IAGpC,mBAAmB,EAAE,0CAAoB;IACzC,gBAAgB,EAAE,uCAAiB;IACnC,wBAAwB,EAAE,8CAAwB;IAClD,2BAA2B,EAAE,iDAA2B;IACxD,mBAAmB,EAAE,0CAAoB;IACzC,kBAAkB,EAAE,yCAAmB;IACvC,qBAAqB,EAAE,4CAAsB;IAC7C,oBAAoB,EAAE,2CAAqB;IAC3C,iBAAiB,EAAE,wCAAkB;IACrC,cAAc,EAAE,sCAAgB;IAChC,qBAAqB,EAAE,4CAAsB;IAC7C,mBAAmB,EAAE,0CAAoB;IACzC,oBAAoB,EAAE,2CAAqB;IAC3C,qBAAqB,EAAE,4CAAsB;CAC9C,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tool-docs/index.ts"],"names":[],"mappings":";;;AAGA,2CAA6C;AAC7C,mDAA6C;AAC7C,6CAAoE;AACpE,2CAAiE;AACjE,qCAIkB;AAClB,qCAAyC;AACzC,+DAgB+B;AAGlB,QAAA,kBAAkB,GAAsC;IAEnE,mBAAmB,EAAE,8BAAqB;IAC1C,gBAAgB,EAAE,0BAAiB;IACnC,kBAAkB,EAAE,4BAAmB;IAGvC,eAAe,EAAE,sBAAa;IAG9B,YAAY,EAAE,0BAAc;IAG5B,QAAQ,EAAE,0BAAU;IAGpB,aAAa,EAAE,4BAAe;IAC9B,iBAAiB,EAAE,gCAAmB;IAGtC,YAAY,EAAE,0BAAc;IAC5B,gBAAgB,EAAE,8BAAkB;IAGpC,mBAAmB,EAAE,0CAAoB;IACzC,gBAAgB,EAAE,uCAAiB;IACnC,wBAAwB,EAAE,8CAAwB;IAClD,2BAA2B,EAAE,iDAA2B;IACxD,mBAAmB,EAAE,0CAAoB;IACzC,kBAAkB,EAAE,yCAAmB;IACvC,qBAAqB,EAAE,4CAAsB;IAC7C,oBAAoB,EAAE,2CAAqB;IAC3C,iBAAiB,EAAE,wCAAkB;IACrC,cAAc,EAAE,sCAAgB;IAChC,qBAAqB,EAAE,4CAAsB;IAC7C,mBAAmB,EAAE,0CAAoB;IACzC,oBAAoB,EAAE,2CAAqB;IAC3C,qBAAqB,EAAE,4CAAsB;IAC7C,sBAAsB,EAAE,6CAAuB;CAChD,CAAC"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/system/index.d.ts b/dist/mcp/tool-docs/system/index.d.ts index 8458a16..a2487cf 100644 --- a/dist/mcp/tool-docs/system/index.d.ts +++ b/dist/mcp/tool-docs/system/index.d.ts @@ -1,3 +1,4 @@ export { toolsDocumentationDoc } from './tools-documentation'; export { n8nHealthCheckDoc } from './n8n-health-check'; +export { n8nAuditInstanceDoc } from './n8n-audit-instance'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/mcp/tool-docs/system/index.d.ts.map b/dist/mcp/tool-docs/system/index.d.ts.map index 1d13442..eac1fde 100644 --- a/dist/mcp/tool-docs/system/index.d.ts.map +++ b/dist/mcp/tool-docs/system/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/system/index.js b/dist/mcp/tool-docs/system/index.js index 0893d7c..97dd44e 100644 --- a/dist/mcp/tool-docs/system/index.js +++ b/dist/mcp/tool-docs/system/index.js @@ -1,8 +1,10 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.n8nHealthCheckDoc = exports.toolsDocumentationDoc = void 0; +exports.n8nAuditInstanceDoc = exports.n8nHealthCheckDoc = exports.toolsDocumentationDoc = void 0; var tools_documentation_1 = require("./tools-documentation"); Object.defineProperty(exports, "toolsDocumentationDoc", { enumerable: true, get: function () { return tools_documentation_1.toolsDocumentationDoc; } }); var n8n_health_check_1 = require("./n8n-health-check"); Object.defineProperty(exports, "n8nHealthCheckDoc", { enumerable: true, get: function () { return n8n_health_check_1.n8nHealthCheckDoc; } }); +var n8n_audit_instance_1 = require("./n8n-audit-instance"); +Object.defineProperty(exports, "n8nAuditInstanceDoc", { enumerable: true, get: function () { return n8n_audit_instance_1.n8nAuditInstanceDoc; } }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/mcp/tool-docs/system/index.js.map b/dist/mcp/tool-docs/system/index.js.map index a99e871..873a3d6 100644 --- a/dist/mcp/tool-docs/system/index.js.map +++ b/dist/mcp/tool-docs/system/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/system/index.ts"],"names":[],"mappings":";;;AAAA,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAC9B,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/system/index.ts"],"names":[],"mappings":";;;AAAA,6DAA8D;AAArD,4HAAA,qBAAqB,OAAA;AAC9B,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAC1B,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/workflow_management/index.d.ts b/dist/mcp/tool-docs/workflow_management/index.d.ts index 81ca706..f14be5c 100644 --- a/dist/mcp/tool-docs/workflow_management/index.d.ts +++ b/dist/mcp/tool-docs/workflow_management/index.d.ts @@ -12,4 +12,5 @@ export { n8nWorkflowVersionsDoc } from './n8n-workflow-versions'; export { n8nDeployTemplateDoc } from './n8n-deploy-template'; export { n8nManageDatatableDoc } from './n8n-manage-datatable'; export { n8nGenerateWorkflowDoc } from './n8n-generate-workflow'; +export { n8nManageCredentialsDoc } from './n8n-manage-credentials'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/mcp/tool-docs/workflow_management/index.d.ts.map b/dist/mcp/tool-docs/workflow_management/index.d.ts.map index a6b077d..89e2597 100644 --- a/dist/mcp/tool-docs/workflow_management/index.d.ts.map +++ b/dist/mcp/tool-docs/workflow_management/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/workflow_management/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/workflow_management/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC"} \ No newline at end of file diff --git a/dist/mcp/tool-docs/workflow_management/index.js b/dist/mcp/tool-docs/workflow_management/index.js index 823e296..733b093 100644 --- a/dist/mcp/tool-docs/workflow_management/index.js +++ b/dist/mcp/tool-docs/workflow_management/index.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.n8nGenerateWorkflowDoc = exports.n8nManageDatatableDoc = exports.n8nDeployTemplateDoc = exports.n8nWorkflowVersionsDoc = exports.n8nExecutionsDoc = exports.n8nTestWorkflowDoc = exports.n8nAutofixWorkflowDoc = exports.n8nValidateWorkflowDoc = exports.n8nListWorkflowsDoc = exports.n8nDeleteWorkflowDoc = exports.n8nUpdatePartialWorkflowDoc = exports.n8nUpdateFullWorkflowDoc = exports.n8nGetWorkflowDoc = exports.n8nCreateWorkflowDoc = void 0; +exports.n8nManageCredentialsDoc = exports.n8nGenerateWorkflowDoc = exports.n8nManageDatatableDoc = exports.n8nDeployTemplateDoc = exports.n8nWorkflowVersionsDoc = exports.n8nExecutionsDoc = exports.n8nTestWorkflowDoc = exports.n8nAutofixWorkflowDoc = exports.n8nValidateWorkflowDoc = exports.n8nListWorkflowsDoc = exports.n8nDeleteWorkflowDoc = exports.n8nUpdatePartialWorkflowDoc = exports.n8nUpdateFullWorkflowDoc = exports.n8nGetWorkflowDoc = exports.n8nCreateWorkflowDoc = void 0; var n8n_create_workflow_1 = require("./n8n-create-workflow"); Object.defineProperty(exports, "n8nCreateWorkflowDoc", { enumerable: true, get: function () { return n8n_create_workflow_1.n8nCreateWorkflowDoc; } }); var n8n_get_workflow_1 = require("./n8n-get-workflow"); @@ -29,4 +29,6 @@ var n8n_manage_datatable_1 = require("./n8n-manage-datatable"); Object.defineProperty(exports, "n8nManageDatatableDoc", { enumerable: true, get: function () { return n8n_manage_datatable_1.n8nManageDatatableDoc; } }); var n8n_generate_workflow_1 = require("./n8n-generate-workflow"); Object.defineProperty(exports, "n8nGenerateWorkflowDoc", { enumerable: true, get: function () { return n8n_generate_workflow_1.n8nGenerateWorkflowDoc; } }); +var n8n_manage_credentials_1 = require("./n8n-manage-credentials"); +Object.defineProperty(exports, "n8nManageCredentialsDoc", { enumerable: true, get: function () { return n8n_manage_credentials_1.n8nManageCredentialsDoc; } }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/mcp/tool-docs/workflow_management/index.js.map b/dist/mcp/tool-docs/workflow_management/index.js.map index d3f4f86..dceb92e 100644 --- a/dist/mcp/tool-docs/workflow_management/index.js.map +++ b/dist/mcp/tool-docs/workflow_management/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/workflow_management/index.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAC1B,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA;AACzB,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/tool-docs/workflow_management/index.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAC1B,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA;AACzB,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,+DAA+D;AAAtD,6HAAA,qBAAqB,OAAA;AAC9B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,mEAAmE;AAA1D,iIAAA,uBAAuB,OAAA"} \ No newline at end of file diff --git a/dist/mcp/tools-n8n-manager.d.ts.map b/dist/mcp/tools-n8n-manager.d.ts.map index 1754ca0..fb02f76 100644 --- a/dist/mcp/tools-n8n-manager.d.ts.map +++ b/dist/mcp/tools-n8n-manager.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tools-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/tools-n8n-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ1C,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAgrB9C,CAAC"} \ No newline at end of file +{"version":3,"file":"tools-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/tools-n8n-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ1C,eAAO,MAAM,kBAAkB,EAAE,cAAc,EA6uB9C,CAAC"} \ No newline at end of file diff --git a/dist/mcp/tools-n8n-manager.js b/dist/mcp/tools-n8n-manager.js index 3021496..5055c2e 100644 --- a/dist/mcp/tools-n8n-manager.js +++ b/dist/mcp/tools-n8n-manager.js @@ -635,6 +635,27 @@ exports.n8nManagementTools = [ openWorldHint: true, }, }, + { + name: 'n8n_manage_credentials', + description: 'Manage n8n credentials. Actions: list, get, create, update, delete, getSchema. Use getSchema to discover required fields before creating. SECURITY: credential data values are never logged.', + inputSchema: { + type: 'object', + properties: { + action: { type: 'string', enum: ['list', 'get', 'create', 'update', 'delete', 'getSchema'], description: 'Action to perform' }, + id: { type: 'string', description: 'Credential ID (required for get, update, delete)' }, + name: { type: 'string', description: 'Credential name (required for create)' }, + type: { type: 'string', description: 'Credential type e.g. httpHeaderAuth, httpBasicAuth, oAuth2Api (required for create, getSchema)' }, + data: { type: 'object', description: 'Credential data fields - use getSchema to discover required fields (required for create, optional for update)' }, + }, + required: ['action'], + }, + annotations: { + title: 'Manage Credentials', + readOnlyHint: false, + destructiveHint: false, + openWorldHint: true, + }, + }, { name: 'n8n_generate_workflow', description: 'Generate an n8n workflow from a natural language description using AI. ' + @@ -675,5 +696,45 @@ exports.n8nManagementTools = [ openWorldHint: true, }, }, + { + name: 'n8n_audit_instance', + description: `Security audit of n8n instance. Combines n8n's built-in audit API (credentials, database, nodes, instance, filesystem risks) with deep workflow scanning (hardcoded secrets via 50+ regex patterns, unauthenticated webhooks, error handling gaps, data retention risks). Returns actionable markdown report with remediation steps using n8n_manage_credentials and n8n_update_partial_workflow.`, + inputSchema: { + type: 'object', + properties: { + categories: { + type: 'array', + items: { + type: 'string', + enum: ['credentials', 'database', 'nodes', 'instance', 'filesystem'], + }, + description: 'Built-in audit categories to check (default: all 5)', + }, + includeCustomScan: { + type: 'boolean', + description: 'Run deep workflow scanning for secrets, webhooks, error handling (default: true)', + }, + daysAbandonedWorkflow: { + type: 'number', + description: 'Days threshold for abandoned workflow detection (default: 90)', + }, + customChecks: { + type: 'array', + items: { + type: 'string', + enum: ['hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention'], + }, + description: 'Specific custom checks to run (default: all 4)', + }, + }, + }, + annotations: { + title: 'Audit Instance Security', + readOnlyHint: true, + destructiveHint: false, + idempotentHint: true, + openWorldHint: true, + }, + }, ]; //# sourceMappingURL=tools-n8n-manager.js.map \ No newline at end of file diff --git a/dist/mcp/tools-n8n-manager.js.map b/dist/mcp/tools-n8n-manager.js.map index cb1d2e1..010aaee 100644 --- a/dist/mcp/tools-n8n-manager.js.map +++ b/dist/mcp/tools-n8n-manager.js.map @@ -1 +1 @@ -{"version":3,"file":"tools-n8n-manager.js","sourceRoot":"","sources":["../../src/mcp/tools-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tools-n8n-manager.js","sourceRoot":"","sources":["../../src/mcp/tools-n8n-manager.ts"],"names":[],"mappings":";;;AAQa,QAAA,kBAAkB,GAAqB;IAElD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,sGAAsG;QACnH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,qGAAqG;oBAClH,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC;wBACzE,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/B,QAAQ,EAAE;gCACR,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACzB,QAAQ,EAAE,CAAC;gCACX,QAAQ,EAAE,CAAC;6BACZ;4BACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACrC;qBACF;iBACF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oHAAoH;iBAClI;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;oBACrF,UAAU,EAAE;wBACV,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;wBACtD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;wBACjE,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;wBACnE,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBACzC,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC1C,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACpC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAClC;iBACF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;SAC3C;QACD,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB;YACxB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,kMAAkM;QAC/M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,aAAa;iBAC3B;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;oBACjD,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,iIAAiI;iBAC/I;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,qHAAqH;QAClI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mBAAmB;iBACjC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,6EAA6E;oBAC1F,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,sBAAsB;YAC7B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,kVAAkV;QAC/V,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,6HAA6H;oBAC1I,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAyD;iBACvE;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6IAA6I;iBAC3J;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;SAC/B;QACD,WAAW,EAAE;YACX,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB;YACxB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,qHAAqH;QAClI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yBAAyB;iBACvC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;iBACzD;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;aACF;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,gBAAgB;YACvB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;oBACjC,UAAU,EAAE;wBACV,aAAa,EAAE;4BACb,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,8CAA8C;yBAC5D;wBACD,mBAAmB,EAAE;4BACnB,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,+CAA+C;yBAC7D;wBACD,mBAAmB,EAAE;4BACnB,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,0CAA0C;yBACxD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC;4BACrD,WAAW,EAAE,8CAA8C;yBAC5D;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,uQAAuQ;QACpR,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAyD;iBACvE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,wCAAwC;oBACrD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,wBAAwB,CAAC;qBAC7U;iBACF;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;oBAC/B,WAAW,EAAE,sDAAsD;iBACpE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IAGD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,oNAAoN;QACjO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;iBACjD;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;oBACjC,WAAW,EAAE,2FAA2F;iBACzG;gBAED,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;oBACtC,WAAW,EAAE,kEAAkE;iBAChF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBAED,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBAED,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gEAAgE;iBAC9E;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,8CAA8C;iBAC5D;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,6LAA6L;QAC1M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;oBAC/B,WAAW,EAAE,qFAAqF;iBACnG;gBAED,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yDAAyD;iBACvE;gBAED,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;oBACzD,WAAW,EAAE,oIAAoI;iBAClJ;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,qEAAqE;iBACnF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0FAA0F;iBACxG;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2EAA2E;iBACzF;gBAED,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wFAAwF;iBACtG;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,4FAA4F;iBAC1G;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yFAAyF;iBACvG;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,gGAAgG;iBAC9G;gBAED,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uEAAuE;iBACrF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;iBAC1E;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;oBACrC,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,0DAA0D;iBACxE;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;SACpB;KACF;IAGD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,mIAAmI;QAChJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBAC9B,WAAW,EAAE,0HAA0H;oBACvI,OAAO,EAAE,QAAQ;iBAClB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2DAA2D;iBACzE;aACF;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE;;;;;;0EAMyD;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;oBAChE,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;iBACxE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qFAAqF;iBACnG;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,qCAAqC;iBACnD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,sEAAsE;iBACpF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;SACpB;KACF;IAGD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,qNAAqN;QAClO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,6EAA6E;iBAC3F;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,wGAAwG;iBACtH;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,qFAAqF;iBACnG;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB;YACxB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,iKAAiK;QAC9K,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;oBAChJ,WAAW,EAAE,sBAAsB;iBACpC;gBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4EAA4E,EAAE;gBACtH,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2GAA2G,EAAE;gBAClJ,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,8FAA8F;oBAC3G,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;yBACxE;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD,IAAI,EAAE,EAAE,WAAW,EAAE,6FAA6F,EAAE;gBACpH,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8GAA8G;iBAC5H;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;gBACrF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACpF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;gBAC7F,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;gBACzF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE;gBAC5H,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE;gBAC3H,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iFAAiF,EAAE;aAC5H;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,8LAA8L;QAC3M,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBAC9H,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;gBACvF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAC9E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gGAAgG,EAAE;gBACvI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+GAA+G,EAAE;aACvJ;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,yEAAyE;YACpF,0DAA0D;YAC1D,8DAA8D;YAC9D,uDAAuD;YACvD,oEAAoE;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;wBACrF,8FAA8F;iBACjG;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,4EAA4E;wBACvF,uEAAuE;iBAC1E;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;wBAC/E,mCAAmC;iBACtC;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,sEAAsE;iBACpF;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD,WAAW,EAAE;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,mYAAmY;QAChZ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;qBACrE;oBACD,WAAW,EAAE,qDAAqD;iBACnE;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kFAAkF;iBAChG;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;qBAC5F;oBACD,WAAW,EAAE,gDAAgD;iBAC9D;aACF;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF;CACF,CAAC"} \ No newline at end of file diff --git a/dist/services/n8n-api-client.d.ts b/dist/services/n8n-api-client.d.ts index 6e67b18..d901fed 100644 --- a/dist/services/n8n-api-client.d.ts +++ b/dist/services/n8n-api-client.d.ts @@ -24,6 +24,11 @@ export declare class N8nApiClient { activateWorkflow(id: string): Promise; deactivateWorkflow(id: string): Promise; listWorkflows(params?: WorkflowListParams): Promise; + generateAudit(options?: { + categories?: string[]; + daysAbandonedWorkflow?: number; + }): Promise; + listAllWorkflows(): Promise; getExecution(id: string, includeData?: boolean): Promise; listExecutions(params?: ExecutionListParams): Promise; deleteExecution(id: string): Promise; @@ -33,6 +38,7 @@ export declare class N8nApiClient { createCredential(credential: Partial): Promise; updateCredential(id: string, credential: Partial): Promise; deleteCredential(id: string): Promise; + getCredentialSchema(typeName: string): Promise; listTags(params?: TagListParams): Promise; createTag(tag: Partial): Promise; updateTag(id: string, tag: Partial): Promise; diff --git a/dist/services/n8n-api-client.d.ts.map b/dist/services/n8n-api-client.d.ts.map index 80abb46..8577d34 100644 --- a/dist/services/n8n-api-client.d.ts.map +++ b/dist/services/n8n-api-client.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"n8n-api-client.d.ts","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,GAAG,EACH,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,cAAc,EAGd,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAS1B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA+C;gBAEzD,MAAM,EAAE,kBAAkB;IAqDhC,UAAU,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAyBpC,gBAAgB;IAa9B,oBAAoB,IAAI,cAAc,GAAG,IAAI;IAKvC,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6C3C,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU9D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS1C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsC1E,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS7C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS/C,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBjD,aAAa,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU7E,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBjE,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAShF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAiErD,eAAe,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IASnF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAS9C,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAStE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IASlF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB3C,QAAQ,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9D,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAS1C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAStD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAUxE,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAStD,iBAAiB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;IASlE,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,uBAAuB,CAAC;IAa7B,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAWnC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS9D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS1E,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,eAAe,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1F,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAS5G,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAS5C,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IASzE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAYhI,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAShF,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAShF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,oBAAoB;CAmC7B"} \ No newline at end of file +{"version":3,"file":"n8n-api-client.d.ts","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,GAAG,EACH,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,cAAc,EAGd,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAS1B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,cAAc,CAA+C;gBAEzD,MAAM,EAAE,kBAAkB;IAuDhC,UAAU,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAyBpC,gBAAgB;IAa9B,oBAAoB,IAAI,cAAc,GAAG,IAAI;IAKvC,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6C3C,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU9D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS1C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsC1E,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS7C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS/C,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBjD,aAAa,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAU7E,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAehG,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmBvC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBjE,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAShF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAiErD,eAAe,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IASnF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAS9C,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAStE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IASlF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBnD,QAAQ,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9D,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAS1C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAStD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAUxE,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAStD,iBAAiB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;IASlE,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,uBAAuB,CAAC;IAa7B,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAWnC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS9D,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS1E,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,eAAe,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1F,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAS5G,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAS5C,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IASzE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAYhI,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAShF,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAShF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,oBAAoB;CAmC7B"} \ No newline at end of file diff --git a/dist/services/n8n-api-client.js b/dist/services/n8n-api-client.js index d98c703..f757440 100644 --- a/dist/services/n8n-api-client.js +++ b/dist/services/n8n-api-client.js @@ -61,9 +61,10 @@ class N8nApiClient { }, }); this.client.interceptors.request.use((config) => { + const isSensitive = config.url?.includes('/credentials') && config.method !== 'get'; logger_1.logger.debug(`n8n API Request: ${config.method?.toUpperCase()} ${config.url}`, { params: config.params, - data: config.data, + data: isSensitive ? '[REDACTED]' : config.data, }); return config; }, (error) => { @@ -229,6 +230,38 @@ class N8nApiClient { throw (0, n8n_errors_1.handleN8nApiError)(error); } } + async generateAudit(options) { + try { + const additionalOptions = {}; + if (options?.categories) + additionalOptions.categories = options.categories; + if (options?.daysAbandonedWorkflow !== undefined) + additionalOptions.daysAbandonedWorkflow = options.daysAbandonedWorkflow; + const body = Object.keys(additionalOptions).length > 0 ? { additionalOptions } : {}; + const response = await this.client.post('/audit', body); + return response.data; + } + catch (error) { + throw (0, n8n_errors_1.handleN8nApiError)(error); + } + } + async listAllWorkflows() { + const allWorkflows = []; + let cursor; + const seenCursors = new Set(); + const PAGE_SIZE = 100; + const MAX_PAGES = 50; + for (let page = 0; page < MAX_PAGES; page++) { + const params = { limit: PAGE_SIZE, cursor }; + const response = await this.listWorkflows(params); + allWorkflows.push(...response.data); + if (!response.nextCursor || seenCursors.has(response.nextCursor)) + break; + seenCursors.add(response.nextCursor); + cursor = response.nextCursor; + } + return allWorkflows; + } async getExecution(id, includeData = false) { try { const response = await this.client.get(`/executions/${id}`, { @@ -338,6 +371,15 @@ class N8nApiClient { throw (0, n8n_errors_1.handleN8nApiError)(error); } } + async getCredentialSchema(typeName) { + try { + const response = await this.client.get(`/credentials/schema/${typeName}`); + return response.data; + } + catch (error) { + throw (0, n8n_errors_1.handleN8nApiError)(error); + } + } async listTags(params = {}) { try { const response = await this.client.get('/tags', { params }); diff --git a/dist/services/n8n-api-client.js.map b/dist/services/n8n-api-client.js.map index 89a2208..60f180b 100644 --- a/dist/services/n8n-api-client.js.map +++ b/dist/services/n8n-api-client.js.map @@ -1 +1 @@ -{"version":3,"file":"n8n-api-client.js","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"n8n-api-client.js","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 55017d5..899650c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "n8n-mcp", - "version": "2.46.1", + "version": "2.47.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "n8n-mcp", - "version": "2.46.1", + "version": "2.47.0", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "1.28.0", diff --git a/package.json b/package.json index 14a32a2..e4bca16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.46.1", + "version": "2.47.0", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/mcp/handlers-n8n-manager.ts b/src/mcp/handlers-n8n-manager.ts index 0fdbcbe..f140d3c 100644 --- a/src/mcp/handlers-n8n-manager.ts +++ b/src/mcp/handlers-n8n-manager.ts @@ -1,4 +1,6 @@ import { N8nApiClient } from '../services/n8n-api-client'; +import { scanWorkflows, type CustomCheckType } from '../services/workflow-security-scanner'; +import { buildAuditReport } from '../services/audit-report-builder'; import { getN8nApiConfig, getN8nApiConfigFromContext } from '../config/n8n-api'; import { Workflow, @@ -2789,7 +2791,8 @@ const deleteRowsSchema = tableIdSchema.extend({ dryRun: z.boolean().optional(), }); -function handleDataTableError(error: unknown): McpToolResponse { +/** Shared error handler for data table and credential operations. */ +function handleCrudError(error: unknown): McpToolResponse { if (error instanceof z.ZodError) { return { success: false, error: 'Invalid input', details: { errors: error.errors } }; } @@ -2818,7 +2821,7 @@ export async function handleCreateTable(args: unknown, context?: InstanceContext message: `Data table "${dataTable.name}" created with ID: ${dataTable.id}`, }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2836,7 +2839,7 @@ export async function handleListTables(args: unknown, context?: InstanceContext) }, }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2847,7 +2850,7 @@ export async function handleGetTable(args: unknown, context?: InstanceContext): const dataTable = await client.getDataTable(tableId); return { success: true, data: dataTable }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2865,7 +2868,7 @@ export async function handleUpdateTable(args: unknown, context?: InstanceContext (hasColumns ? '. Note: columns parameter was ignored — table schema is immutable after creation via the public API' : ''), }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2876,7 +2879,7 @@ export async function handleDeleteTable(args: unknown, context?: InstanceContext await client.deleteDataTable(tableId); return { success: true, message: `Data table ${tableId} deleted successfully` }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2901,7 +2904,7 @@ export async function handleGetRows(args: unknown, context?: InstanceContext): P }, }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2916,7 +2919,7 @@ export async function handleInsertRows(args: unknown, context?: InstanceContext) message: `Rows inserted into data table ${tableId}`, }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2931,7 +2934,7 @@ export async function handleUpdateRows(args: unknown, context?: InstanceContext) message: params.dryRun ? 'Dry run: rows matched (no changes applied)' : 'Rows updated successfully', }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2946,7 +2949,7 @@ export async function handleUpsertRows(args: unknown, context?: InstanceContext) message: params.dryRun ? 'Dry run: upsert previewed (no changes applied)' : 'Row upserted successfully', }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); } } @@ -2965,6 +2968,250 @@ export async function handleDeleteRows(args: unknown, context?: InstanceContext) message: params.dryRun ? 'Dry run: rows matched for deletion (no changes applied)' : 'Rows deleted successfully', }; } catch (error) { - return handleDataTableError(error); + return handleCrudError(error); + } +} + +// ======================================================================== +// Credential Management Handlers +// ======================================================================== + +// SECURITY: Never log credential data values (they contain secrets like API keys, passwords). +// Only log credential name, type, and ID. + +const listCredentialsSchema = z.object({}).passthrough(); + +const getCredentialSchema = z.object({ + id: z.string({ required_error: 'Credential ID is required' }), +}); + +const createCredentialSchema = z.object({ + name: z.string({ required_error: 'Credential name is required' }), + type: z.string({ required_error: 'Credential type is required' }), + data: z.record(z.any(), { required_error: 'Credential data is required' }), +}); + +const updateCredentialSchema = z.object({ + id: z.string({ required_error: 'Credential ID is required' }), + name: z.string().optional(), + data: z.record(z.any()).optional(), +}); + +const deleteCredentialSchema = z.object({ + id: z.string({ required_error: 'Credential ID is required' }), +}); + +const getCredentialSchemaTypeSchema = z.object({ + type: z.string({ required_error: 'Credential type is required' }), +}); + +export async function handleListCredentials(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + listCredentialsSchema.parse(args); + const result = await client.listCredentials(); + return { + success: true, + data: { + credentials: result.data, + count: result.data.length, + nextCursor: result.nextCursor || undefined, + }, + }; + } catch (error) { + return handleCrudError(error); + } +} + +export async function handleGetCredential(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const { id } = getCredentialSchema.parse(args); + const credential = await client.getCredential(id); + // Strip sensitive data field — defense in depth against future n8n versions returning decrypted values + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + }; + } catch (error) { + return handleCrudError(error); + } +} + +export async function handleCreateCredential(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const { name, type, data } = createCredentialSchema.parse(args); + logger.info(`Creating credential: name="${name}", type="${type}"`); + const credential = await client.createCredential({ name, type, data }); + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + message: `Credential "${name}" (type: ${type}) created with ID ${credential.id}`, + }; + } catch (error) { + return handleCrudError(error); + } +} + +export async function handleUpdateCredential(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const { id, name, data } = updateCredentialSchema.parse(args); + logger.info(`Updating credential: id="${id}"${name ? `, name="${name}"` : ''}`); + const updatePayload: Record = {}; + if (name !== undefined) updatePayload.name = name; + if (data !== undefined) updatePayload.data = data; + const credential = await client.updateCredential(id, updatePayload); + const { data: _sensitiveData, ...safeCred } = credential; + return { + success: true, + data: safeCred, + message: `Credential ${id} updated successfully`, + }; + } catch (error) { + return handleCrudError(error); + } +} + +export async function handleDeleteCredential(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const { id } = deleteCredentialSchema.parse(args); + logger.info(`Deleting credential: id="${id}"`); + await client.deleteCredential(id); + return { + success: true, + message: `Credential ${id} deleted successfully`, + }; + } catch (error) { + return handleCrudError(error); + } +} + +export async function handleGetCredentialSchema(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const { type } = getCredentialSchemaTypeSchema.parse(args); + const schema = await client.getCredentialSchema(type); + return { + success: true, + data: schema, + message: `Schema for credential type "${type}"`, + }; + } catch (error) { + return handleCrudError(error); + } +} + +// ── Audit Instance ───────────────────────────────────────────────────────── + +const auditInstanceSchema = z.object({ + categories: z.array(z.enum([ + 'credentials', 'database', 'nodes', 'instance', 'filesystem', + ])).optional(), + includeCustomScan: z.boolean().optional().default(true), + daysAbandonedWorkflow: z.number().optional(), + customChecks: z.array(z.enum([ + 'hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention', + ])).optional(), +}); + +export async function handleAuditInstance(args: unknown, context?: InstanceContext): Promise { + try { + const client = ensureApiConfigured(context); + const input = auditInstanceSchema.parse(args); + + const totalStart = Date.now(); + const warnings: string[] = []; + + // Phase A: n8n built-in audit + let builtinAudit: any = null; + let builtinAuditMs = 0; + try { + const auditStart = Date.now(); + builtinAudit = await client.generateAudit({ + categories: input.categories, + daysAbandonedWorkflow: input.daysAbandonedWorkflow, + }); + builtinAuditMs = Date.now() - auditStart; + } catch (auditError: any) { + builtinAuditMs = Date.now() - totalStart; + const msg = auditError?.statusCode === 404 + ? 'Built-in audit endpoint not available on this n8n version.' + : `Built-in audit failed: ${auditError?.message || 'unknown error'}`; + warnings.push(msg); + logger.warn(`Audit: ${msg}`); + } + + // Phase B: Custom workflow scanning + let customReport = null; + let workflowFetchMs = 0; + let customScanMs = 0; + + if (input.includeCustomScan) { + try { + const fetchStart = Date.now(); + const allWorkflows = await client.listAllWorkflows(); + workflowFetchMs = Date.now() - fetchStart; + + logger.info(`Audit: fetched ${allWorkflows.length} workflows for scanning`); + + const scanStart = Date.now(); + customReport = scanWorkflows( + allWorkflows, + input.customChecks as CustomCheckType[] | undefined, + ); + customScanMs = Date.now() - scanStart; + + logger.info(`Audit: custom scan found ${customReport.summary.total} findings across ${customReport.workflowsScanned} workflows`); + } catch (scanError: any) { + warnings.push(`Custom scan failed: ${scanError?.message || 'unknown error'}`); + logger.warn(`Audit: custom scan failed: ${scanError?.message}`); + } + } + + const totalMs = Date.now() - totalStart; + + // Build the API URL for the report (mask the key) + const apiConfig = context?.n8nApiUrl + ? { baseUrl: context.n8nApiUrl } + : getN8nApiConfig(); + const instanceUrl = apiConfig?.baseUrl || 'unknown'; + + // Build unified markdown report + const report = buildAuditReport({ + builtinAudit, + customReport, + performance: { builtinAuditMs, workflowFetchMs, customScanMs, totalMs }, + instanceUrl, + warnings: warnings.length > 0 ? warnings : undefined, + }); + + return { + success: true, + data: { + report: report.markdown, + summary: report.summary, + }, + }; + } catch (error) { + if (error instanceof z.ZodError) { + return { + success: false, + error: 'Invalid audit parameters', + details: { issues: error.errors }, + }; + } + if (error instanceof N8nApiError) { + return { + success: false, + error: getUserFriendlyErrorMessage(error), + }; + } + const message = error instanceof Error ? error.message : String(error); + return { success: false, error: message }; } } diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 172eb92..ccdb48f 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -1048,6 +1048,15 @@ export class N8NDocumentationMCPServer { ? { valid: true, errors: [] } : { valid: false, errors: [{ field: 'action', message: 'action is required' }] }; break; + case 'n8n_manage_credentials': + validationResult = args.action + ? { valid: true, errors: [] } + : { valid: false, errors: [{ field: 'action', message: 'action is required' }] }; + break; + case 'n8n_audit_instance': + // No required parameters - all are optional + validationResult = { valid: true, errors: [] }; + break; case 'n8n_deploy_template': // Requires templateId parameter validationResult = args.templateId !== undefined @@ -1538,6 +1547,25 @@ export class N8NDocumentationMCPServer { } } + case 'n8n_manage_credentials': { + this.validateToolParams(name, args, ['action']); + const credAction = args.action; + switch (credAction) { + case 'list': return n8nHandlers.handleListCredentials(args, this.instanceContext); + case 'get': return n8nHandlers.handleGetCredential(args, this.instanceContext); + case 'create': return n8nHandlers.handleCreateCredential(args, this.instanceContext); + case 'update': return n8nHandlers.handleUpdateCredential(args, this.instanceContext); + case 'delete': return n8nHandlers.handleDeleteCredential(args, this.instanceContext); + case 'getSchema': return n8nHandlers.handleGetCredentialSchema(args, this.instanceContext); + default: + throw new Error(`Unknown action: ${credAction}. Valid actions: list, get, create, update, delete, getSchema`); + } + } + + case 'n8n_audit_instance': + // No required parameters - all are optional + return n8nHandlers.handleAuditInstance(args, this.instanceContext); + case 'n8n_generate_workflow': { this.validateToolParams(name, args, ['description']); diff --git a/src/mcp/tool-docs/index.ts b/src/mcp/tool-docs/index.ts index 6d5a342..94a3298 100644 --- a/src/mcp/tool-docs/index.ts +++ b/src/mcp/tool-docs/index.ts @@ -7,7 +7,8 @@ import { validateNodeDoc, validateWorkflowDoc } from './validation'; import { getTemplateDoc, searchTemplatesDoc } from './templates'; import { toolsDocumentationDoc, - n8nHealthCheckDoc + n8nHealthCheckDoc, + n8nAuditInstanceDoc } from './system'; import { aiAgentsGuide } from './guides'; import { @@ -24,7 +25,8 @@ import { n8nWorkflowVersionsDoc, n8nDeployTemplateDoc, n8nManageDatatableDoc, - n8nGenerateWorkflowDoc + n8nGenerateWorkflowDoc, + n8nManageCredentialsDoc } from './workflow_management'; // Combine all tool documentations into a single object @@ -32,6 +34,7 @@ export const toolsDocumentation: Record = { // System tools tools_documentation: toolsDocumentationDoc, n8n_health_check: n8nHealthCheckDoc, + n8n_audit_instance: n8nAuditInstanceDoc, // Guides ai_agents_guide: aiAgentsGuide, @@ -64,7 +67,8 @@ export const toolsDocumentation: Record = { n8n_workflow_versions: n8nWorkflowVersionsDoc, n8n_deploy_template: n8nDeployTemplateDoc, n8n_manage_datatable: n8nManageDatatableDoc, - n8n_generate_workflow: n8nGenerateWorkflowDoc + n8n_generate_workflow: n8nGenerateWorkflowDoc, + n8n_manage_credentials: n8nManageCredentialsDoc }; // Re-export types diff --git a/src/mcp/tool-docs/system/index.ts b/src/mcp/tool-docs/system/index.ts index a9f0bc6..a3419fc 100644 --- a/src/mcp/tool-docs/system/index.ts +++ b/src/mcp/tool-docs/system/index.ts @@ -1,2 +1,3 @@ export { toolsDocumentationDoc } from './tools-documentation'; -export { n8nHealthCheckDoc } from './n8n-health-check'; \ No newline at end of file +export { n8nHealthCheckDoc } from './n8n-health-check'; +export { n8nAuditInstanceDoc } from './n8n-audit-instance'; \ No newline at end of file diff --git a/src/mcp/tool-docs/system/n8n-audit-instance.ts b/src/mcp/tool-docs/system/n8n-audit-instance.ts new file mode 100644 index 0000000..affa900 --- /dev/null +++ b/src/mcp/tool-docs/system/n8n-audit-instance.ts @@ -0,0 +1,106 @@ +import { ToolDocumentation } from '../types'; + +export const n8nAuditInstanceDoc: ToolDocumentation = { + name: 'n8n_audit_instance', + category: 'system', + essentials: { + description: 'Security audit combining n8n built-in audit with deep workflow scanning', + keyParameters: ['categories', 'includeCustomScan', 'customChecks'], + example: 'n8n_audit_instance({}) for full audit, n8n_audit_instance({customChecks: ["hardcoded_secrets", "unauthenticated_webhooks"]}) for specific checks', + performance: 'Moderate - fetches all workflows (2-30s depending on instance size)', + tips: [ + 'Returns actionable markdown with remediation steps', + 'Use n8n_manage_credentials to fix credential findings', + 'Custom scan covers 50+ secret patterns including API keys, tokens, and passwords', + 'Built-in audit checks credentials, database, nodes, instance, and filesystem risks', + ] + }, + full: { + description: `Performs a comprehensive security audit of the configured n8n instance by combining two scanning approaches: + +**Built-in Audit (via n8n API):** +- credentials: Unused credentials, shared credentials with elevated access +- database: Database-level security settings and exposure +- nodes: Community nodes with known vulnerabilities, outdated nodes +- instance: Instance configuration risks (e.g., public registration, weak auth) +- filesystem: File system access and permission risks + +**Custom Deep Scan (workflow analysis):** +- hardcoded_secrets: Scans all workflow node parameters for hardcoded API keys, tokens, passwords, and connection strings using 50+ regex patterns +- unauthenticated_webhooks: Detects webhook nodes without authentication configured +- error_handling: Identifies workflows without error handling or notification on failure +- data_retention: Flags workflows with excessive data retention or no cleanup + +The report is returned as actionable markdown with severity ratings, affected resources, and specific remediation steps referencing other MCP tools.`, + parameters: { + categories: { + type: 'array of string', + required: false, + description: 'Built-in audit categories to check', + default: ['credentials', 'database', 'nodes', 'instance', 'filesystem'], + enum: ['credentials', 'database', 'nodes', 'instance', 'filesystem'], + }, + includeCustomScan: { + type: 'boolean', + required: false, + description: 'Run deep workflow scanning for secrets, webhooks, error handling', + default: true, + }, + daysAbandonedWorkflow: { + type: 'number', + required: false, + description: 'Days threshold for abandoned workflow detection', + default: 90, + }, + customChecks: { + type: 'array of string', + required: false, + description: 'Specific custom checks to run (defaults to all 4 if includeCustomScan is true)', + default: ['hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention'], + enum: ['hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention'], + }, + }, + returns: `Markdown-formatted security audit report containing: +- Summary table with finding counts by severity (critical, high, medium, low) +- Findings grouped by workflow with per-workflow tables (ID, severity, finding, node, fix type) +- Built-in audit section with n8n's own risk assessments (nodes, instance, credentials, database, filesystem) +- Remediation Playbook aggregated by finding type: auto-fixable (secrets, webhooks), requires review (error handling, PII), requires user action (data retention, instance updates) +- Tool chains for auto-fixing reference n8n_get_workflow, n8n_manage_credentials, n8n_update_partial_workflow`, + examples: [ + '// Full audit with all checks\nn8n_audit_instance({})', + '// Built-in audit only (no workflow scanning)\nn8n_audit_instance({includeCustomScan: false})', + '// Only check for hardcoded secrets and unauthenticated webhooks\nn8n_audit_instance({customChecks: ["hardcoded_secrets", "unauthenticated_webhooks"]})', + '// Only run built-in credential and instance checks\nn8n_audit_instance({categories: ["credentials", "instance"], includeCustomScan: false})', + '// Adjust abandoned workflow threshold\nn8n_audit_instance({daysAbandonedWorkflow: 30})', + ], + useCases: [ + 'Regular security audits of n8n instances', + 'Detecting hardcoded secrets before they become a breach', + 'Identifying unauthenticated webhook endpoints exposed to the internet', + 'Compliance checks for data retention and error handling policies', + 'Pre-deployment security review of new workflows', + 'Remediation workflow: audit, review findings, fix with n8n_manage_credentials or n8n_update_partial_workflow', + ], + performance: `Execution time depends on instance size: +- Small instances (<20 workflows): 2-5s +- Medium instances (20-100 workflows): 5-15s +- Large instances (100+ workflows): 15-30s +The built-in audit is a single API call. The custom scan fetches all workflows and analyzes each one.`, + bestPractices: [ + 'Run a full audit periodically (e.g., weekly) to catch new issues', + 'Use customChecks to focus on specific concerns when time is limited', + 'Address critical and high severity findings first', + 'After fixing findings, re-run the audit to verify remediation', + 'Combine with n8n_health_check for a complete instance health picture', + 'Use n8n_manage_credentials to rotate or replace exposed credentials', + ], + pitfalls: [ + 'Large instances with many workflows may take 30+ seconds to scan', + 'Built-in audit API may not be available on older n8n versions (pre-1.x)', + 'Custom scan analyzes stored workflow definitions only, not runtime values from expressions', + 'Requires N8N_API_URL and N8N_API_KEY to be configured', + 'Findings from the built-in audit depend on n8n version and may vary', + ], + relatedTools: ['n8n_manage_credentials', 'n8n_update_partial_workflow', 'n8n_health_check'], + } +}; diff --git a/src/mcp/tool-docs/workflow_management/index.ts b/src/mcp/tool-docs/workflow_management/index.ts index 929400a..d0adeab 100644 --- a/src/mcp/tool-docs/workflow_management/index.ts +++ b/src/mcp/tool-docs/workflow_management/index.ts @@ -12,3 +12,4 @@ export { n8nWorkflowVersionsDoc } from './n8n-workflow-versions'; export { n8nDeployTemplateDoc } from './n8n-deploy-template'; export { n8nManageDatatableDoc } from './n8n-manage-datatable'; export { n8nGenerateWorkflowDoc } from './n8n-generate-workflow'; +export { n8nManageCredentialsDoc } from './n8n-manage-credentials'; diff --git a/src/mcp/tool-docs/workflow_management/n8n-manage-credentials.ts b/src/mcp/tool-docs/workflow_management/n8n-manage-credentials.ts new file mode 100644 index 0000000..944d8ad --- /dev/null +++ b/src/mcp/tool-docs/workflow_management/n8n-manage-credentials.ts @@ -0,0 +1,106 @@ +import { ToolDocumentation } from '../types'; + +export const n8nManageCredentialsDoc: ToolDocumentation = { + name: 'n8n_manage_credentials', + category: 'workflow_management', + essentials: { + description: 'CRUD operations for n8n credentials with schema discovery', + keyParameters: ['action', 'type', 'name', 'data'], + example: 'n8n_manage_credentials({action: "getSchema", type: "httpHeaderAuth"}) then n8n_manage_credentials({action: "create", name: "My Auth", type: "httpHeaderAuth", data: {name: "X-API-Key", value: "secret"}})', + performance: 'Fast - single API call per action', + tips: [ + 'Always use getSchema first to discover required fields before creating credentials', + 'Credential data values are never logged for security', + 'Use with n8n_audit_instance to fix security findings', + 'Actions: list, get, create, update, delete, getSchema', + ] + }, + full: { + description: `Manage n8n credentials through a unified interface. Supports full lifecycle operations: + +**Discovery:** +- **getSchema**: Retrieve the schema for a credential type, showing all required and optional fields with their types and descriptions. Always call this before creating credentials to know the exact field names and formats. + +**Read Operations:** +- **list**: List all credentials with their names, types, and IDs. Does not return credential data values. +- **get**: Get a specific credential by ID, including its metadata and data fields. + +**Write Operations:** +- **create**: Create a new credential with a name, type, and data fields. Requires name, type, and data. +- **update**: Update an existing credential by ID. Can update name and/or data fields. +- **delete**: Permanently delete a credential by ID. + +**Security:** Credential data values (API keys, passwords, tokens) are never written to logs. The n8n API encrypts stored credential data at rest.`, + parameters: { + action: { + type: 'string', + required: true, + description: 'Operation to perform on credentials', + enum: ['list', 'get', 'create', 'update', 'delete', 'getSchema'], + }, + id: { + type: 'string', + required: false, + description: 'Credential ID (required for get, update, delete)', + }, + name: { + type: 'string', + required: false, + description: 'Credential display name (required for create, optional for update)', + }, + type: { + type: 'string', + required: false, + description: 'Credential type identifier, e.g. httpHeaderAuth, httpBasicAuth, oAuth2Api (required for create and getSchema)', + examples: ['httpHeaderAuth', 'httpBasicAuth', 'oAuth2Api', 'slackApi', 'gmailOAuth2Api'], + }, + data: { + type: 'object', + required: false, + description: 'Credential data fields as key-value pairs. Use getSchema to discover required fields (required for create, optional for update)', + }, + }, + returns: `Depends on action: +- list: Array of credentials with id, name, type, createdAt, updatedAt +- get: Full credential object with id, name, type, and data fields +- create: Created credential object with id, name, type +- update: Updated credential object +- delete: Success confirmation message +- getSchema: Schema object with field definitions including name, type, required status, description, and default values`, + examples: [ + '// Discover schema before creating\nn8n_manage_credentials({action: "getSchema", type: "httpHeaderAuth"})', + '// Create an HTTP header auth credential\nn8n_manage_credentials({action: "create", name: "My API Key", type: "httpHeaderAuth", data: {name: "X-API-Key", value: "sk-abc123"}})', + '// List all credentials\nn8n_manage_credentials({action: "list"})', + '// Get a specific credential\nn8n_manage_credentials({action: "get", id: "123"})', + '// Update credential data\nn8n_manage_credentials({action: "update", id: "123", data: {value: "new-secret-value"}})', + '// Rename a credential\nn8n_manage_credentials({action: "update", id: "123", name: "Renamed Credential"})', + '// Delete a credential\nn8n_manage_credentials({action: "delete", id: "123"})', + '// Create basic auth credential\nn8n_manage_credentials({action: "create", name: "Service Auth", type: "httpBasicAuth", data: {user: "admin", password: "secret"}})', + ], + useCases: [ + 'Provisioning credentials for new workflow integrations', + 'Rotating API keys and secrets on a schedule', + 'Remediating security findings from n8n_audit_instance', + 'Discovering available credential types and their required fields', + 'Bulk credential management across n8n instances', + 'Replacing hardcoded secrets with proper credential references', + ], + performance: 'Fast response expected: single HTTP API call per action, typically <200ms.', + bestPractices: [ + 'Always call getSchema before create to discover required fields and their formats', + 'Use descriptive names that identify the service and purpose (e.g., "Slack - Production Bot")', + 'Rotate credentials regularly by updating data fields', + 'After creating credentials, reference them in workflows instead of hardcoding secrets', + 'Use n8n_audit_instance to find credentials that need rotation or cleanup', + 'Verify credential validity by testing the workflow after creation', + ], + pitfalls: [ + 'delete is permanent and cannot be undone - workflows using the credential will break', + 'Credential type must match exactly (case-sensitive) - use getSchema to verify', + 'OAuth2 credentials may require browser-based authorization flow that cannot be completed via API alone', + 'The list action does not return credential data values for security', + 'Requires N8N_API_URL and N8N_API_KEY to be configured', + ], + relatedTools: ['n8n_audit_instance', 'n8n_create_workflow', 'n8n_update_partial_workflow', 'n8n_health_check'], + } +}; diff --git a/src/mcp/tools-n8n-manager.ts b/src/mcp/tools-n8n-manager.ts index 8bfe067..f988e5a 100644 --- a/src/mcp/tools-n8n-manager.ts +++ b/src/mcp/tools-n8n-manager.ts @@ -654,6 +654,27 @@ export const n8nManagementTools: ToolDefinition[] = [ openWorldHint: true, }, }, + { + name: 'n8n_manage_credentials', + description: 'Manage n8n credentials. Actions: list, get, create, update, delete, getSchema. Use getSchema to discover required fields before creating. SECURITY: credential data values are never logged.', + inputSchema: { + type: 'object', + properties: { + action: { type: 'string', enum: ['list', 'get', 'create', 'update', 'delete', 'getSchema'], description: 'Action to perform' }, + id: { type: 'string', description: 'Credential ID (required for get, update, delete)' }, + name: { type: 'string', description: 'Credential name (required for create)' }, + type: { type: 'string', description: 'Credential type e.g. httpHeaderAuth, httpBasicAuth, oAuth2Api (required for create, getSchema)' }, + data: { type: 'object', description: 'Credential data fields - use getSchema to discover required fields (required for create, optional for update)' }, + }, + required: ['action'], + }, + annotations: { + title: 'Manage Credentials', + readOnlyHint: false, + destructiveHint: false, + openWorldHint: true, + }, + }, { name: 'n8n_generate_workflow', description: 'Generate an n8n workflow from a natural language description using AI. ' + @@ -694,4 +715,44 @@ export const n8nManagementTools: ToolDefinition[] = [ openWorldHint: true, }, }, + { + name: 'n8n_audit_instance', + description: `Security audit of n8n instance. Combines n8n's built-in audit API (credentials, database, nodes, instance, filesystem risks) with deep workflow scanning (hardcoded secrets via 50+ regex patterns, unauthenticated webhooks, error handling gaps, data retention risks). Returns actionable markdown report with remediation steps using n8n_manage_credentials and n8n_update_partial_workflow.`, + inputSchema: { + type: 'object', + properties: { + categories: { + type: 'array', + items: { + type: 'string', + enum: ['credentials', 'database', 'nodes', 'instance', 'filesystem'], + }, + description: 'Built-in audit categories to check (default: all 5)', + }, + includeCustomScan: { + type: 'boolean', + description: 'Run deep workflow scanning for secrets, webhooks, error handling (default: true)', + }, + daysAbandonedWorkflow: { + type: 'number', + description: 'Days threshold for abandoned workflow detection (default: 90)', + }, + customChecks: { + type: 'array', + items: { + type: 'string', + enum: ['hardcoded_secrets', 'unauthenticated_webhooks', 'error_handling', 'data_retention'], + }, + description: 'Specific custom checks to run (default: all 4)', + }, + }, + }, + annotations: { + title: 'Audit Instance Security', + readOnlyHint: true, + destructiveHint: false, + idempotentHint: true, + openWorldHint: true, + }, + }, ]; diff --git a/src/services/audit-report-builder.ts b/src/services/audit-report-builder.ts new file mode 100644 index 0000000..bddf2c4 --- /dev/null +++ b/src/services/audit-report-builder.ts @@ -0,0 +1,459 @@ +/** + * Audit Report Builder + * + * Builds an actionable markdown security audit report that unifies + * findings from both the n8n built-in audit endpoint and the custom + * workflow security scanner. Produces a structured summary alongside + * the markdown so callers can branch on severity counts. + */ + +// --------------------------------------------------------------------------- +// Types – imported from the workflow security scanner +// --------------------------------------------------------------------------- + +import type { + AuditSeverity, + RemediationType, + AuditFinding, + WorkflowSecurityReport, +} from './workflow-security-scanner'; + +// --------------------------------------------------------------------------- +// Public types +// --------------------------------------------------------------------------- + +export interface AuditReportInput { + builtinAudit: any; // Raw response from n8n POST /audit (object with report keys, or [] if empty) + customReport: WorkflowSecurityReport | null; + performance: { + builtinAuditMs: number; + workflowFetchMs: number; + customScanMs: number; + totalMs: number; + }; + instanceUrl: string; + warnings?: string[]; +} + +export interface UnifiedAuditReport { + markdown: string; + summary: { + critical: number; + high: number; + medium: number; + low: number; + totalFindings: number; + workflowsScanned: number; + }; +} + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +/** Severity sort order — most severe first. */ +const SEVERITY_ORDER: Record = { + critical: 0, + high: 1, + medium: 2, + low: 3, +}; + +/** Map remediation type to a short fix label for the table column. */ +const FIX_LABEL: Record = { + auto_fixable: 'Auto-fix', + user_input_needed: 'User input', + user_action_needed: 'User action', + review_recommended: 'Review', +}; + +/** Returns true if the built-in audit response contains report data. */ +function isPopulatedAudit(builtinAudit: any): builtinAudit is Record { + if (Array.isArray(builtinAudit)) return false; + return typeof builtinAudit === 'object' && builtinAudit !== null; +} + +/** + * Iterates over all (reportKey, section) pairs in the built-in audit response. + * Handles both `{ sections: [...] }` and direct array formats. + */ +function forEachBuiltinSection( + builtinAudit: Record, + callback: (reportKey: string, section: any) => void, +): void { + for (const reportKey of Object.keys(builtinAudit)) { + const report = builtinAudit[reportKey]; + const sections = Array.isArray(report) ? report : (report?.sections ?? []); + if (!Array.isArray(sections)) continue; + for (const section of sections) { + callback(reportKey, section); + } + } +} + +/** Get the location array from a section (n8n uses both "location" and "locations"). */ +function getSectionLocations(section: any): any[] | null { + const arr = section?.location ?? section?.locations; + return Array.isArray(arr) ? arr : null; +} + +/** + * Count location items across all sections of the built-in audit response. + */ +function countBuiltinLocations(builtinAudit: any): number { + if (!isPopulatedAudit(builtinAudit)) return 0; + + let count = 0; + forEachBuiltinSection(builtinAudit, (_key, section) => { + const locations = getSectionLocations(section); + if (locations) count += locations.length; + }); + return count; +} + +/** + * Group findings by workflow, returning a Map keyed by workflowId. + * Each value includes workflow metadata and sorted findings. + */ +interface WorkflowGroup { + workflowId: string; + workflowName: string; + workflowActive: boolean; + findings: AuditFinding[]; + /** Worst severity in the group (lower = more severe). */ + worstSeverity: number; +} + +function groupByWorkflow(findings: AuditFinding[]): WorkflowGroup[] { + const map = new Map(); + + for (const f of findings) { + const wfId = f.location.workflowId; + let group = map.get(wfId); + if (!group) { + group = { + workflowId: wfId, + workflowName: f.location.workflowName, + workflowActive: f.location.workflowActive ?? false, + findings: [], + worstSeverity: SEVERITY_ORDER[f.severity], + }; + map.set(wfId, group); + } + group.findings.push(f); + const sev = SEVERITY_ORDER[f.severity]; + if (sev < group.worstSeverity) { + group.worstSeverity = sev; + } + } + + // Sort workflows: worst severity first, then by name + const groups = Array.from(map.values()); + groups.sort((a, b) => a.worstSeverity - b.worstSeverity || a.workflowName.localeCompare(b.workflowName)); + + // Sort findings within each workflow by severity + for (const g of groups) { + g.findings.sort((a, b) => SEVERITY_ORDER[a.severity] - SEVERITY_ORDER[b.severity]); + } + + return groups; +} + +/** + * Render the built-in audit section. Handles both empty (no issues) and + * populated responses with report keys. + */ +function renderBuiltinAudit(builtinAudit: any): string { + if (!isPopulatedAudit(builtinAudit)) { + return 'No issues found by n8n built-in audit.'; + } + + const lines: string[] = []; + let currentKey = ''; + + forEachBuiltinSection(builtinAudit, (reportKey, section) => { + if (reportKey !== currentKey) { + if (currentKey) lines.push(''); + lines.push(`### ${reportKey}`); + currentKey = reportKey; + } + + const title = section.title || section.name || 'Unknown'; + const description = section.description || ''; + const recommendation = section.recommendation || ''; + + lines.push(`- **${title}:** ${description}`); + if (recommendation) { + lines.push(` - Recommendation: ${recommendation}`); + } + + const locations = getSectionLocations(section); + if (locations && locations.length > 0) { + lines.push(` - Affected: ${locations.length} items`); + } + + // Special handling for Instance Risk Report fields + if (reportKey === 'Instance Risk Report') { + if (Array.isArray(section.nextVersions) && section.nextVersions.length > 0) { + const versionNames = section.nextVersions + .map((v: any) => (typeof v === 'string' ? v : v.name || String(v))) + .join(', '); + lines.push(` - Available versions: ${versionNames}`); + } + + if (section.settings && typeof section.settings === 'object') { + const entries = Object.entries(section.settings); + if (entries.length > 0) { + lines.push(' - Security settings:'); + for (const [key, value] of entries) { + lines.push(` - ${key}: ${JSON.stringify(value)}`); + } + } + } + } + }); + + if (lines.length === 0) { + return 'No issues found by n8n built-in audit.'; + } + + lines.push(''); + return lines.join('\n'); +} + +/** + * Extract actionable items from the built-in audit for the playbook section. + */ +interface BuiltinActionables { + outdatedInstance: boolean; + communityNodeCount: number; +} + +function extractBuiltinActionables(builtinAudit: any): BuiltinActionables { + const result: BuiltinActionables = { outdatedInstance: false, communityNodeCount: 0 }; + if (!isPopulatedAudit(builtinAudit)) return result; + + forEachBuiltinSection(builtinAudit, (_key, section) => { + const title = (section.title || section.name || '').toLowerCase(); + + if (title.includes('outdated') || title.includes('update')) { + result.outdatedInstance = true; + } + + if (title.includes('community') || title.includes('custom node')) { + const locations = getSectionLocations(section); + result.communityNodeCount += locations ? locations.length : 1; + } + }); + + return result; +} + +/** + * Render the Remediation Playbook — aggregated by finding type with tool + * flow described once per type. + */ +function renderRemediationPlaybook( + findings: AuditFinding[], + builtinAudit: any, +): string { + const lines: string[] = []; + + // Count findings by category + const byCat: Record = {}; + for (const f of findings) { + if (!byCat[f.category]) byCat[f.category] = []; + byCat[f.category].push(f); + } + + // Unique workflow count per category + const uniqueWorkflows = (items: AuditFinding[]): number => + new Set(items.map(f => f.location.workflowId)).size; + + // --- Auto-fixable by agent --- + const autoFixCategories = ['hardcoded_secrets', 'unauthenticated_webhooks']; + const hasAutoFix = autoFixCategories.some(cat => byCat[cat] && byCat[cat].length > 0); + + if (hasAutoFix) { + lines.push('### Auto-fixable by agent'); + lines.push(''); + + if (byCat['hardcoded_secrets']?.length) { + const autoFixSecrets = byCat['hardcoded_secrets'].filter(f => f.remediationType === 'auto_fixable'); + if (autoFixSecrets.length > 0) { + const wfCount = uniqueWorkflows(autoFixSecrets); + lines.push(`**Hardcoded secrets** (${autoFixSecrets.length} across ${wfCount} workflow${wfCount !== 1 ? 's' : ''}):`); + lines.push('Steps: `n8n_get_workflow` -> extract value -> `n8n_manage_credentials({action: "create"})` -> `n8n_update_partial_workflow({operations: [{type: "updateNode"}]})` to reference credential.'); + } + lines.push(''); + } + + if (byCat['unauthenticated_webhooks']?.length) { + const items = byCat['unauthenticated_webhooks']; + const wfCount = uniqueWorkflows(items); + lines.push(`**Unauthenticated webhooks** (${items.length} across ${wfCount} workflow${wfCount !== 1 ? 's' : ''}):`); + lines.push('Steps: `n8n_manage_credentials({action: "create", type: "httpHeaderAuth"})` with random secret -> `n8n_update_partial_workflow` to set `authentication: "headerAuth"` and assign credential.'); + lines.push(''); + } + } + + // --- Requires review --- + const reviewCategories = ['error_handling']; + const piiFindings = findings.filter(f => f.category === 'hardcoded_secrets' && f.remediationType === 'review_recommended'); + const hasReview = reviewCategories.some(cat => byCat[cat] && byCat[cat].length > 0) || piiFindings.length > 0; + + if (hasReview) { + lines.push('### Requires review'); + + if (byCat['error_handling']?.length) { + const wfCount = uniqueWorkflows(byCat['error_handling']); + lines.push(`**Error handling gaps** (${wfCount} workflow${wfCount !== 1 ? 's' : ''}): Add Error Trigger nodes or set continueOnFail on critical nodes.`); + } + + if (piiFindings.length > 0) { + lines.push(`**PII in parameters** (${piiFindings.length} finding${piiFindings.length !== 1 ? 's' : ''}): Review whether hardcoded PII (emails, phones) is necessary or should use expressions.`); + } + + lines.push(''); + } + + // --- Requires your action --- + const retentionFindings = byCat['data_retention'] || []; + const builtinActions = extractBuiltinActionables(builtinAudit); + const hasUserAction = retentionFindings.length > 0 || builtinActions.outdatedInstance || builtinActions.communityNodeCount > 0; + + if (hasUserAction) { + lines.push('### Requires your action'); + + if (retentionFindings.length > 0) { + const wfCount = uniqueWorkflows(retentionFindings); + lines.push(`**Data retention** (${wfCount} workflow${wfCount !== 1 ? 's' : ''}): Configure execution data pruning in n8n Settings -> Executions.`); + } + + if (builtinActions.outdatedInstance) { + lines.push('**Outdated instance**: Update n8n to latest version.'); + } + + if (builtinActions.communityNodeCount > 0) { + lines.push(`**Community nodes** (${builtinActions.communityNodeCount}): Review installed community packages.`); + } + + lines.push(''); + } + + return lines.join('\n'); +} + +// --------------------------------------------------------------------------- +// Main export +// --------------------------------------------------------------------------- + +export function buildAuditReport(input: AuditReportInput): UnifiedAuditReport { + const { builtinAudit, customReport, performance, instanceUrl, warnings } = input; + + // --- Compute summary counts --- + const customSummary = customReport?.summary ?? { critical: 0, high: 0, medium: 0, low: 0, total: 0 }; + const builtinCount = countBuiltinLocations(builtinAudit); + + const summary: UnifiedAuditReport['summary'] = { + critical: customSummary.critical, + high: customSummary.high, + medium: customSummary.medium, + low: customSummary.low + builtinCount, // built-in issues counted as low by default + totalFindings: customSummary.total + builtinCount, + workflowsScanned: customReport?.workflowsScanned ?? 0, + }; + + // --- Build markdown --- + const md: string[] = []; + + // Header + md.push('# n8n Security Audit Report'); + md.push(`Generated: ${new Date().toISOString()} | Instance: ${instanceUrl}`); + md.push(''); + + // Summary table + md.push('## Summary'); + md.push('| Severity | Count |'); + md.push('|----------|-------|'); + md.push(`| Critical | ${summary.critical} |`); + md.push(`| High | ${summary.high} |`); + md.push(`| Medium | ${summary.medium} |`); + md.push(`| Low | ${summary.low} |`); + md.push(`| **Total** | **${summary.totalFindings}** |`); + md.push(''); + md.push( + `Workflows scanned: ${summary.workflowsScanned} | Scan duration: ${(performance.totalMs / 1000).toFixed(1)}s`, + ); + md.push(''); + + // Warnings + if (warnings && warnings.length > 0) { + for (const w of warnings) { + md.push(`- ${w}`); + } + md.push(''); + } + + md.push('---'); + md.push(''); + + // --- Findings by Workflow --- + if (customReport && customReport.findings.length > 0) { + md.push('## Findings by Workflow'); + md.push(''); + + const workflowGroups = groupByWorkflow(customReport.findings); + + for (const group of workflowGroups) { + const activeTag = group.workflowActive ? ' [ACTIVE]' : ''; + md.push(`### "${group.workflowName}" (id: ${group.workflowId})${activeTag} — ${group.findings.length} finding${group.findings.length !== 1 ? 's' : ''}`); + md.push(''); + md.push('| ID | Severity | Finding | Node | Fix |'); + md.push('|----|----------|---------|------|-----|'); + + for (const f of group.findings) { + const node = f.location.nodeName || '\u2014'; + const fix = FIX_LABEL[f.remediationType]; + const sevLabel = f.severity.charAt(0).toUpperCase() + f.severity.slice(1); + md.push(`| ${f.id} | ${sevLabel} | ${f.title} | ${node} | ${fix} |`); + } + + md.push(''); + } + + md.push('---'); + md.push(''); + } + + // --- Built-in audit --- + md.push('## n8n Built-in Audit Results'); + md.push(''); + md.push(renderBuiltinAudit(builtinAudit)); + md.push(''); + md.push('---'); + md.push(''); + + // --- Remediation Playbook --- + md.push('## Remediation Playbook'); + md.push(''); + const playbook = renderRemediationPlaybook(customReport?.findings ?? [], builtinAudit); + if (playbook.trim().length > 0) { + md.push(playbook); + } else { + md.push('No remediation actions needed.'); + md.push(''); + } + md.push('---'); + md.push(''); + + // Performance footer + md.push( + `Scan performance: built-in ${performance.builtinAuditMs}ms | fetch ${performance.workflowFetchMs}ms | custom ${performance.customScanMs}ms`, + ); + + return { + markdown: md.join('\n'), + summary, + }; +} diff --git a/src/services/credential-scanner.ts b/src/services/credential-scanner.ts new file mode 100644 index 0000000..5bb4e4a --- /dev/null +++ b/src/services/credential-scanner.ts @@ -0,0 +1,297 @@ +/** + * Regex-based credential and PII scanner for n8n workflows. + * + * TypeScript port of pii_prescreen.py. Catches API keys, secrets, and PII + * with deterministic patterns. Covers 50+ service-specific key prefixes + * plus generic PII patterns (email, phone, credit card). + * + * SECURITY: Raw secret values are never stored in detection results. + * The maskSecret() function is called at scan time so only masked + * snippets appear in the output. + */ + +// --------------------------------------------------------------------------- +// Types +// --------------------------------------------------------------------------- + +export interface SecretPattern { + regex: RegExp; + label: string; + category: string; + severity: 'critical' | 'high' | 'medium'; +} + +export interface ScanDetection { + label: string; + category: string; + severity: 'critical' | 'high' | 'medium'; + location: { + workflowId: string; + workflowName: string; + nodeName?: string; + nodeType?: string; + }; + maskedSnippet?: string; +} + +// --------------------------------------------------------------------------- +// Skip fields - structural / template fields that should not be scanned +// --------------------------------------------------------------------------- + +const SKIP_FIELDS = new Set([ + 'expression', + 'id', + 'typeVersion', + 'position', + 'credentials', +]); + +// --------------------------------------------------------------------------- +// Secret patterns (instant reject) +// --------------------------------------------------------------------------- + +export const SECRET_PATTERNS: SecretPattern[] = [ + // ── AI / ML ────────────────────────────────────────────────────────────── + { regex: /sk-(?:proj-)?[A-Za-z0-9]{20,}/, label: 'openai_key', category: 'AI/ML', severity: 'critical' }, + { regex: /sk-ant-[A-Za-z0-9_-]{20,}/, label: 'anthropic_key', category: 'AI/ML', severity: 'critical' }, + { regex: /gsk_[a-zA-Z0-9]{48,}/, label: 'groq_key', category: 'AI/ML', severity: 'critical' }, + { regex: /r8_[a-zA-Z0-9]{37}/, label: 'replicate_key', category: 'AI/ML', severity: 'critical' }, + { regex: /hf_[a-zA-Z]{34}/, label: 'huggingface_key', category: 'AI/ML', severity: 'critical' }, + { regex: /pplx-[a-zA-Z0-9]{48}/, label: 'perplexity_key', category: 'AI/ML', severity: 'critical' }, + + // ── Cloud / DevOps ─────────────────────────────────────────────────────── + { regex: /AKIA[A-Z0-9]{16}/, label: 'aws_key', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /AIza[A-Za-z0-9_-]{35}/, label: 'google_api_key', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /dop_v1_[a-f0-9]{64}/, label: 'digitalocean_pat', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /do[or]_v1_[a-f0-9]{64}/, label: 'digitalocean_token', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /v(?:cp|ci|ck)_[a-zA-Z0-9]{24,}/, label: 'vercel_token', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /nfp_[a-zA-Z0-9]{40,}/, label: 'netlify_pat', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /HRKU-AA[0-9a-zA-Z_-]{58}/, label: 'heroku_key', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /glpat-[\w-]{20}/, label: 'gitlab_pat', category: 'Cloud/DevOps', severity: 'critical' }, + { regex: /npm_[a-z0-9]{36}/, label: 'npm_token', category: 'Cloud/DevOps', severity: 'critical' }, + + // ── GitHub ─────────────────────────────────────────────────────────────── + { regex: /ghp_[A-Za-z0-9]{36,}/, label: 'github_pat', category: 'GitHub', severity: 'critical' }, + { regex: /gho_[A-Za-z0-9]{36,}/, label: 'github_oauth', category: 'GitHub', severity: 'critical' }, + { regex: /ghs_[A-Za-z0-9]{36,}/, label: 'github_server', category: 'GitHub', severity: 'critical' }, + { regex: /ghr_[A-Za-z0-9]{36,}/, label: 'github_refresh', category: 'GitHub', severity: 'critical' }, + + // ── Auth tokens ────────────────────────────────────────────────────────── + { regex: /eyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/, label: 'jwt_token', category: 'Auth tokens', severity: 'critical' }, + { regex: /sbp_[a-f0-9]{40,}/, label: 'supabase_secret', category: 'Auth tokens', severity: 'critical' }, + + // ── Communication ──────────────────────────────────────────────────────── + { regex: /xox[bps]-[0-9]{10,}-[A-Za-z0-9-]+/, label: 'slack_token', category: 'Communication', severity: 'critical' }, + { regex: /\b\d{8,10}:A[a-zA-Z0-9_-]{34}\b/, label: 'telegram_bot', category: 'Communication', severity: 'critical' }, + + // ── Payment ────────────────────────────────────────────────────────────── + { regex: /[sr]k_(?:live|test)_[A-Za-z0-9]{20,}/, label: 'stripe_key', category: 'Payment', severity: 'critical' }, + { regex: /sq0(?:atp|csp)-[0-9A-Za-z_-]{22,}/, label: 'square_key', category: 'Payment', severity: 'critical' }, + { regex: /rzp_(?:live|test)_[a-zA-Z0-9]{14,}/, label: 'razorpay_key', category: 'Payment', severity: 'critical' }, + + // ── Email / Marketing ──────────────────────────────────────────────────── + { regex: /SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}/, label: 'sendgrid_key', category: 'Email/Marketing', severity: 'critical' }, + { regex: /key-[a-f0-9]{32}/, label: 'mailgun_key', category: 'Email/Marketing', severity: 'high' }, + { regex: /xkeysib-[a-f0-9]{64}-[a-zA-Z0-9]{16}/, label: 'brevo_key', category: 'Email/Marketing', severity: 'critical' }, + { regex: /(? 10) { + return; + } + + if (typeof obj === 'string') { + // Skip pure expression strings like "={{ $json.email }}" or "{{ ... }}" + if (obj.startsWith('=') || obj.startsWith('{{')) { + return; + } + // Skip very short strings (booleans, ops like "get") + if (obj.length > 8) { + parts.push(obj); + } + return; + } + + if (Array.isArray(obj)) { + for (const item of obj) { + collectStrings(item, parts, depth + 1); + } + return; + } + + if (obj !== null && typeof obj === 'object') { + for (const [key, val] of Object.entries(obj as Record)) { + if (SKIP_FIELDS.has(key)) { + continue; + } + collectStrings(val, parts, depth + 1); + } + } +} + +// --------------------------------------------------------------------------- +// Workflow scanning input type (loose, to accept various workflow shapes) +// --------------------------------------------------------------------------- + +interface ScanWorkflowInput { + id?: string; + name: string; + nodes: Array<{ + id?: string; + name: string; + type: string; + parameters?: Record; + notes?: string; + [key: string]: unknown; + }>; + settings?: Record; + staticData?: Record; + pinData?: Record; +} + +// --------------------------------------------------------------------------- +// scanText - match collected strings against all patterns +// --------------------------------------------------------------------------- + +function scanText( + parts: string[], + location: ScanDetection['location'], + detections: ScanDetection[], +): void { + const text = parts.join('\n'); + for (const pattern of ALL_PATTERNS) { + const match = pattern.regex.exec(text); + if (match) { + detections.push({ + label: pattern.label, + category: pattern.category, + severity: pattern.severity, + location, + maskedSnippet: maskSecret(match[0]), + }); + } + } +} + +// --------------------------------------------------------------------------- +// scanWorkflow - scan a workflow for secrets and PII +// --------------------------------------------------------------------------- + +/** + * Scans an n8n workflow for embedded secrets and PII. + * + * Scans per-node so detections include the specific node name/type. + * Top-level fields (pinData, staticData, settings) are attributed to + * the workflow level (no specific node). + * + * SECURITY: Raw secret values are never stored in the returned detections. + * Only masked snippets (via maskSecret()) appear in the output. + */ +export function scanWorkflow(workflow: ScanWorkflowInput): ScanDetection[] { + const detections: ScanDetection[] = []; + const baseLocation = { + workflowId: workflow.id ?? '', + workflowName: workflow.name ?? '', + }; + + // Scan each node individually for precise location reporting + for (const node of workflow.nodes ?? []) { + const parts: string[] = []; + + if (node.name && node.name.length > 8) parts.push(node.name); + if (node.notes && node.notes.length > 8) parts.push(node.notes); + if (node.parameters) collectStrings(node.parameters, parts); + + scanText(parts, { ...baseLocation, nodeName: node.name, nodeType: node.type }, detections); + } + + // Scan top-level fields: pinData, staticData, settings + for (const key of ['pinData', 'staticData', 'settings'] as const) { + const data = (workflow as unknown as Record)[key]; + if (data != null && typeof data === 'object') { + const parts: string[] = []; + collectStrings(data, parts); + scanText(parts, { ...baseLocation }, detections); + } + } + + return detections; +} diff --git a/src/services/n8n-api-client.ts b/src/services/n8n-api-client.ts index 4825112..d4c8e0a 100644 --- a/src/services/n8n-api-client.ts +++ b/src/services/n8n-api-client.ts @@ -77,9 +77,11 @@ export class N8nApiClient { // Request interceptor for logging this.client.interceptors.request.use( (config: InternalAxiosRequestConfig) => { + // Redact request body for credential endpoints to prevent secret leakage + const isSensitive = config.url?.includes('/credentials') && config.method !== 'get'; logger.debug(`n8n API Request: ${config.method?.toUpperCase()} ${config.url}`, { params: config.params, - data: config.data, + data: isSensitive ? '[REDACTED]' : config.data, }); return config; }, @@ -309,6 +311,40 @@ export class N8nApiClient { } } + // Audit + async generateAudit(options?: { categories?: string[]; daysAbandonedWorkflow?: number }): Promise { + try { + const additionalOptions: Record = {}; + if (options?.categories) additionalOptions.categories = options.categories; + if (options?.daysAbandonedWorkflow !== undefined) additionalOptions.daysAbandonedWorkflow = options.daysAbandonedWorkflow; + + const body = Object.keys(additionalOptions).length > 0 ? { additionalOptions } : {}; + const response = await this.client.post('/audit', body); + return response.data; + } catch (error) { + throw handleN8nApiError(error); + } + } + + // Fetch all workflows with pagination (for audit scanning) + async listAllWorkflows(): Promise { + const allWorkflows: Workflow[] = []; + let cursor: string | undefined; + const seenCursors = new Set(); + const PAGE_SIZE = 100; + const MAX_PAGES = 50; // Safety limit: 5000 workflows max + + for (let page = 0; page < MAX_PAGES; page++) { + const params: WorkflowListParams = { limit: PAGE_SIZE, cursor }; + const response = await this.listWorkflows(params); + allWorkflows.push(...response.data); + if (!response.nextCursor || seenCursors.has(response.nextCursor)) break; + seenCursors.add(response.nextCursor); + cursor = response.nextCursor; + } + return allWorkflows; + } + // Execution Management async getExecution(id: string, includeData = false): Promise { try { @@ -461,6 +497,15 @@ export class N8nApiClient { } } + async getCredentialSchema(typeName: string): Promise { + try { + const response = await this.client.get(`/credentials/schema/${typeName}`); + return response.data; + } catch (error) { + throw handleN8nApiError(error); + } + } + // Tag Management /** * Lists tags from n8n instance. diff --git a/src/services/workflow-security-scanner.ts b/src/services/workflow-security-scanner.ts new file mode 100644 index 0000000..c56977c --- /dev/null +++ b/src/services/workflow-security-scanner.ts @@ -0,0 +1,346 @@ +/** + * Workflow security scanner that orchestrates 4 security checks on n8n workflows: + * 1. Hardcoded secrets (via credential-scanner) + * 2. Unauthenticated webhooks + * 3. Error handling gaps + * 4. Data retention settings + */ + +import { scanWorkflow, type ScanDetection } from './credential-scanner'; + +// --------------------------------------------------------------------------- +// Types +// --------------------------------------------------------------------------- + +export type AuditSeverity = 'critical' | 'high' | 'medium' | 'low'; +export type RemediationType = 'auto_fixable' | 'user_input_needed' | 'user_action_needed' | 'review_recommended'; +export type CustomCheckType = 'hardcoded_secrets' | 'unauthenticated_webhooks' | 'error_handling' | 'data_retention'; + +export interface AuditFinding { + id: string; + severity: AuditSeverity; + category: CustomCheckType; + title: string; + description: string; + recommendation: string; + remediationType: RemediationType; + remediation?: { + tool: string; + args: Record; + description: string; + }[]; + location: { + workflowId: string; + workflowName: string; + workflowActive?: boolean; + nodeName?: string; + nodeType?: string; + }; +} + +export interface WorkflowSecurityReport { + findings: AuditFinding[]; + workflowsScanned: number; + scanDurationMs: number; + summary: { + critical: number; + high: number; + medium: number; + low: number; + total: number; + }; +} + +// --------------------------------------------------------------------------- +// Workflow input type (loose, to accept various workflow shapes) +// --------------------------------------------------------------------------- + +interface WorkflowInput { + id?: string; + name: string; + nodes: Array<{ + id?: string; + name: string; + type: string; + parameters?: Record; + notes?: string; + continueOnFail?: boolean; + onError?: string; + [key: string]: unknown; + }>; + active?: boolean; + settings?: Record; + staticData?: Record; + connections?: unknown; +} + +// --------------------------------------------------------------------------- +// Check 1: Hardcoded secrets +// --------------------------------------------------------------------------- + +function checkHardcodedSecrets(workflow: WorkflowInput): AuditFinding[] { + const detections: ScanDetection[] = scanWorkflow({ + id: workflow.id, + name: workflow.name, + nodes: workflow.nodes, + settings: workflow.settings, + staticData: workflow.staticData, + }); + + return detections.map((detection, index): AuditFinding => { + const workflowId = workflow.id ?? ''; + const nodeName = detection.location.nodeName ?? ''; + const isPii = detection.category.toLowerCase() === 'pii'; + + return { + id: `CRED-${String(index + 1).padStart(3, '0')}`, + severity: detection.severity as AuditSeverity, + category: 'hardcoded_secrets', + title: `Hardcoded ${detection.label} detected`, + description: `Found a hardcoded ${detection.label} (${detection.category}) in ${nodeName ? `node "${nodeName}"` : 'workflow-level settings'}. Masked value: ${detection.maskedSnippet ?? 'N/A'}.`, + recommendation: isPii + ? 'Review whether this PII is necessary in the workflow. If it is test data or a placeholder, consider using n8n expressions or environment variables instead of hardcoded values.' + : 'Move this secret into n8n credentials. The agent can extract the hardcoded value from the workflow, create a credential, and update the node automatically.', + remediationType: isPii ? 'review_recommended' : 'auto_fixable', + remediation: isPii + ? [] + : [ + { + tool: 'n8n_get_workflow', + args: { id: workflowId }, + description: `Fetch workflow to extract the hardcoded ${detection.label} from node "${nodeName}"`, + }, + { + tool: 'n8n_manage_credentials', + args: { action: 'create', type: 'httpHeaderAuth' }, + description: `Create credential with the extracted value (choose appropriate type for ${detection.label})`, + }, + { + tool: 'n8n_update_partial_workflow', + args: { id: workflowId, operations: [{ type: 'updateNode', nodeName }] }, + description: `Update node to use credential and remove hardcoded value`, + }, + ], + location: { + workflowId, + workflowName: workflow.name, + workflowActive: workflow.active, + nodeName: detection.location.nodeName, + nodeType: detection.location.nodeType, + }, + }; + }); +} + +// --------------------------------------------------------------------------- +// Check 2: Unauthenticated webhooks +// --------------------------------------------------------------------------- + +function checkUnauthenticatedWebhooks(workflow: WorkflowInput): AuditFinding[] { + const findings: AuditFinding[] = []; + let sequence = 0; + + for (const node of workflow.nodes) { + const nodeTypeLower = (node.type ?? '').toLowerCase(); + // respondToWebhook is a response helper, not a trigger — skip it + if (nodeTypeLower.includes('respondtowebhook')) { + continue; + } + if (!nodeTypeLower.includes('webhook') && !nodeTypeLower.includes('formtrigger')) { + continue; + } + + const auth = node.parameters?.authentication; + + // Skip nodes that already have authentication configured + if (typeof auth === 'string' && auth !== '' && auth !== 'none') { + continue; + } + + sequence++; + const workflowId = workflow.id ?? ''; + const isActive = workflow.active === true; + + findings.push({ + id: `WEBHOOK-${String(sequence).padStart(3, '0')}`, + severity: isActive ? 'high' : 'medium', + category: 'unauthenticated_webhooks', + title: `Unauthenticated webhook: "${node.name}"`, + description: `Webhook node "${node.name}" (${node.type}) has no authentication configured.${isActive ? ' This workflow is active and publicly accessible.' : ''} Anyone with the webhook URL can trigger this workflow.`, + recommendation: 'Add authentication to the webhook node. Header-based authentication with a random secret is the simplest approach.', + remediationType: 'auto_fixable', + remediation: [ + { + tool: 'n8n_manage_credentials', + args: { action: 'create', type: 'httpHeaderAuth' }, + description: `Create httpHeaderAuth credential with a generated random secret`, + }, + { + tool: 'n8n_update_partial_workflow', + args: { id: workflowId, operations: [{ type: 'updateNode', nodeName: node.name }] }, + description: `Set authentication to "headerAuth" and assign the credential`, + }, + ], + location: { + workflowId, + workflowName: workflow.name, + workflowActive: isActive, + nodeName: node.name, + nodeType: node.type, + }, + }); + } + + return findings; +} + +// --------------------------------------------------------------------------- +// Check 3: Error handling gaps +// --------------------------------------------------------------------------- + +function checkErrorHandlingGaps(workflow: WorkflowInput): AuditFinding[] { + // Only flag workflows with 3+ nodes + if (workflow.nodes.length < 3) { + return []; + } + + const hasContinueOnFail = workflow.nodes.some( + (node) => node.continueOnFail === true, + ); + + const hasOnErrorHandling = workflow.nodes.some( + (node) => typeof node.onError === 'string' && node.onError !== 'stopWorkflow', + ); + + const hasErrorTrigger = workflow.nodes.some( + (node) => (node.type ?? '').toLowerCase() === 'n8n-nodes-base.errortrigger', + ); + + if (hasContinueOnFail || hasOnErrorHandling || hasErrorTrigger) { + return []; + } + + return [ + { + id: 'ERR-001', + severity: 'medium', + category: 'error_handling', + title: `No error handling in workflow "${workflow.name}"`, + description: `Workflow "${workflow.name}" has ${workflow.nodes.length} nodes but no error handling configured. There are no nodes with continueOnFail enabled, no custom onError behavior, and no Error Trigger node.`, + recommendation: 'Add error handling to prevent silent failures. Consider adding an Error Trigger node for global error notifications, or set continueOnFail on critical nodes that should not block the workflow.', + remediationType: 'review_recommended', + location: { + workflowId: workflow.id ?? '', + workflowName: workflow.name, + workflowActive: workflow.active, + }, + }, + ]; +} + +// --------------------------------------------------------------------------- +// Check 4: Data retention settings +// --------------------------------------------------------------------------- + +function checkDataRetentionSettings(workflow: WorkflowInput): AuditFinding[] { + const settings = workflow.settings; + if (!settings) { + return []; + } + + const savesAllErrors = settings.saveDataErrorExecution === 'all'; + const savesAllSuccess = settings.saveDataSuccessExecution === 'all'; + + if (!savesAllErrors || !savesAllSuccess) { + return []; + } + + return [ + { + id: 'RETENTION-001', + severity: 'low', + category: 'data_retention', + title: `Excessive data retention in workflow "${workflow.name}"`, + description: `Workflow "${workflow.name}" is configured to save execution data for both successful and failed executions. This may store sensitive data in the n8n database longer than necessary.`, + recommendation: 'Review data retention settings. Consider setting saveDataSuccessExecution to "none" for workflows that process sensitive data, or configure execution data pruning at the instance level.', + remediationType: 'user_action_needed', + location: { + workflowId: workflow.id ?? '', + workflowName: workflow.name, + workflowActive: workflow.active, + }, + }, + ]; +} + +// --------------------------------------------------------------------------- +// Check dispatcher +// --------------------------------------------------------------------------- + +const CHECK_MAP: Record AuditFinding[]> = { + hardcoded_secrets: checkHardcodedSecrets, + unauthenticated_webhooks: checkUnauthenticatedWebhooks, + error_handling: checkErrorHandlingGaps, + data_retention: checkDataRetentionSettings, +}; + +const ALL_CHECKS = Object.keys(CHECK_MAP) as CustomCheckType[]; + +// --------------------------------------------------------------------------- +// Main export +// --------------------------------------------------------------------------- + +/** + * Scans one or more n8n workflows for security issues. + * + * Runs up to 4 checks: hardcoded secrets, unauthenticated webhooks, + * error handling gaps, and data retention settings. + * + * @param workflows - Array of workflow objects to scan + * @param checks - Optional subset of checks to run (defaults to all 4) + * @returns A security report with all findings and summary counts + */ +export function scanWorkflows( + workflows: Array<{ + id?: string; + name: string; + nodes: any[]; + active?: boolean; + settings?: any; + staticData?: any; + connections?: any; + }>, + checks?: CustomCheckType[], +): WorkflowSecurityReport { + const startTime = Date.now(); + const checksToRun = checks ?? ALL_CHECKS; + const allFindings: AuditFinding[] = []; + + for (const workflow of workflows) { + for (const checkType of checksToRun) { + const findings = CHECK_MAP[checkType](workflow); + allFindings.push(...findings); + } + } + + const scanDurationMs = Date.now() - startTime; + + const summary = { + critical: 0, + high: 0, + medium: 0, + low: 0, + total: allFindings.length, + }; + + for (const finding of allFindings) { + summary[finding.severity]++; + } + + return { + findings: allFindings, + workflowsScanned: workflows.length, + scanDurationMs, + summary, + }; +} diff --git a/tests/unit/services/audit-report-builder.test.ts b/tests/unit/services/audit-report-builder.test.ts new file mode 100644 index 0000000..373861a --- /dev/null +++ b/tests/unit/services/audit-report-builder.test.ts @@ -0,0 +1,340 @@ +import { describe, it, expect } from 'vitest'; +import { + buildAuditReport, + type AuditReportInput, + type UnifiedAuditReport, +} from '@/services/audit-report-builder'; + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +const DEFAULT_PERFORMANCE = { + builtinAuditMs: 100, + workflowFetchMs: 50, + customScanMs: 200, + totalMs: 350, +}; + +function makeInput(overrides: Partial = {}): AuditReportInput { + return { + builtinAudit: [], + customReport: null, + performance: DEFAULT_PERFORMANCE, + instanceUrl: 'https://n8n.example.com', + ...overrides, + }; +} + +function makeFinding(overrides: Record = {}) { + return { + id: 'CRED-001', + severity: 'critical' as const, + category: 'hardcoded_secrets', + title: 'Hardcoded openai_key detected', + description: 'Found a hardcoded openai_key in node "HTTP Request".', + recommendation: 'Move this secret into n8n credentials.', + remediationType: 'auto_fixable' as const, + remediation: [ + { + tool: 'n8n_manage_credentials', + args: { action: 'create' }, + description: 'Create credential', + }, + ], + location: { + workflowId: 'wf-1', + workflowName: 'Test Workflow', + workflowActive: true, + nodeName: 'HTTP Request', + nodeType: 'n8n-nodes-base.httpRequest', + }, + ...overrides, + }; +} + +function makeCustomReport(findings: any[], workflowsScanned = 1) { + const summary = { critical: 0, high: 0, medium: 0, low: 0, total: findings.length }; + for (const f of findings) { + summary[f.severity as keyof typeof summary]++; + } + return { + findings, + workflowsScanned, + scanDurationMs: 150, + summary, + }; +} + +// =========================================================================== +// Tests +// =========================================================================== + +describe('audit-report-builder', () => { + describe('empty reports', () => { + it('should produce "No issues found" when built-in audit is empty and no custom findings', () => { + const input = makeInput({ builtinAudit: [], customReport: null }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('No issues found'); + expect(result.summary.totalFindings).toBe(0); + expect(result.summary.critical).toBe(0); + expect(result.summary.high).toBe(0); + expect(result.summary.medium).toBe(0); + expect(result.summary.low).toBe(0); + }); + + it('should produce "No issues found" when built-in audit is null-like', () => { + const input = makeInput({ builtinAudit: null }); + const result = buildAuditReport(input); + expect(result.markdown).toContain('No issues found'); + }); + }); + + describe('built-in audit rendering', () => { + it('should render built-in audit with Nodes Risk Report', () => { + // Real n8n API uses { risk: "nodes", sections: [...] } format + const builtinAudit = { + 'Nodes Risk Report': { + risk: 'nodes', + sections: [ + { + title: 'Insecure node detected', + description: 'Node X uses deprecated API', + recommendation: 'Update to latest version', + location: [{ id: 'node-1' }, { id: 'node-2' }], + }, + ], + }, + }; + + const input = makeInput({ builtinAudit }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Nodes Risk Report'); + expect(result.markdown).toContain('Insecure node detected'); + expect(result.markdown).toContain('deprecated API'); + expect(result.markdown).toContain('Affected: 2 items'); + // Built-in locations are counted as low severity + expect(result.summary.low).toBe(2); + expect(result.summary.totalFindings).toBe(2); + }); + + it('should render Instance Risk Report with version and settings info', () => { + const builtinAudit = { + 'Instance Risk Report': { + risk: 'instance', + sections: [ + { + title: 'Outdated instance', + description: 'Running an old version', + recommendation: 'Update n8n', + nextVersions: [{ name: '1.20.0' }, { name: '1.21.0' }], + settings: { + authenticationMethod: 'none', + publicApiDisabled: false, + }, + }, + ], + }, + }; + + const input = makeInput({ builtinAudit }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Instance Risk Report'); + expect(result.markdown).toContain('Available versions: 1.20.0, 1.21.0'); + expect(result.markdown).toContain('authenticationMethod'); + }); + }); + + describe('grouped by workflow', () => { + it('should group findings by workflow with table format', () => { + const findings = [ + makeFinding({ id: 'CRED-001', severity: 'critical', title: 'Critical issue' }), + makeFinding({ id: 'ERR-001', severity: 'medium', title: 'Medium issue', category: 'error_handling' }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings) }); + const result = buildAuditReport(input); + + // Should have a workflow heading + expect(result.markdown).toContain('Test Workflow'); + // Should have a table with findings + expect(result.markdown).toContain('| ID | Severity | Finding | Node | Fix |'); + expect(result.markdown).toContain('CRED-001'); + expect(result.markdown).toContain('ERR-001'); + }); + + it('should sort findings within workflow by severity', () => { + const findings = [ + makeFinding({ id: 'LOW-001', severity: 'low', title: 'Low issue' }), + makeFinding({ id: 'CRIT-001', severity: 'critical', title: 'Critical issue' }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings) }); + const result = buildAuditReport(input); + + const critIdx = result.markdown.indexOf('CRIT-001'); + const lowIdx = result.markdown.indexOf('LOW-001'); + expect(critIdx).toBeLessThan(lowIdx); + }); + + it('should sort workflows by worst severity first', () => { + const findings = [ + makeFinding({ id: 'LOW-001', severity: 'low', title: 'Low issue', location: { workflowId: 'wf-2', workflowName: 'Safe Workflow', nodeName: 'Set', nodeType: 'n8n-nodes-base.set' } }), + makeFinding({ id: 'CRIT-001', severity: 'critical', title: 'Critical issue', location: { workflowId: 'wf-1', workflowName: 'Danger Workflow', nodeName: 'HTTP', nodeType: 'n8n-nodes-base.httpRequest' } }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings, 2) }); + const result = buildAuditReport(input); + + const dangerIdx = result.markdown.indexOf('Danger Workflow'); + const safeIdx = result.markdown.indexOf('Safe Workflow'); + expect(dangerIdx).toBeLessThan(safeIdx); + }); + }); + + describe('remediation playbook', () => { + it('should show auto-fixable section for secrets and webhooks', () => { + const findings = [ + makeFinding({ remediationType: 'auto_fixable', category: 'hardcoded_secrets' }), + makeFinding({ id: 'WEBHOOK-001', severity: 'medium', remediationType: 'auto_fixable', category: 'unauthenticated_webhooks', title: 'Unauthenticated webhook' }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings) }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Auto-fixable by agent'); + expect(result.markdown).toContain('Hardcoded secrets'); + expect(result.markdown).toContain('Unauthenticated webhooks'); + expect(result.markdown).toContain('n8n_manage_credentials'); + }); + + it('should show review section for error handling and PII', () => { + const findings = [ + makeFinding({ id: 'ERR-001', severity: 'medium', remediationType: 'review_recommended', category: 'error_handling', title: 'No error handling' }), + makeFinding({ id: 'PII-001', severity: 'medium', remediationType: 'review_recommended', category: 'hardcoded_secrets', title: 'PII found' }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings) }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Requires review'); + expect(result.markdown).toContain('Error handling gaps'); + expect(result.markdown).toContain('PII in parameters'); + }); + + it('should show user action section for data retention', () => { + const findings = [ + makeFinding({ id: 'RET-001', severity: 'low', remediationType: 'user_action_needed', category: 'data_retention', title: 'Excessive retention' }), + ]; + + const input = makeInput({ customReport: makeCustomReport(findings) }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Requires your action'); + expect(result.markdown).toContain('Data retention'); + }); + + it('should surface built-in audit actionables in playbook', () => { + const builtinAudit = { + 'Instance Risk Report': { + risk: 'instance', + sections: [ + { title: 'Outdated instance', description: 'Old version', recommendation: 'Update' }, + ], + }, + 'Nodes Risk Report': { + risk: 'nodes', + sections: [ + { title: 'Community nodes', description: 'Unvetted', recommendation: 'Review', location: [{ id: '1' }, { id: '2' }] }, + ], + }, + }; + + const input = makeInput({ builtinAudit }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Outdated instance'); + expect(result.markdown).toContain('Community nodes'); + }); + }); + + describe('warnings', () => { + it('should include warnings in the report when provided', () => { + const input = makeInput({ + warnings: [ + 'Could not fetch 2 workflows due to permissions', + 'Built-in audit endpoint returned partial results', + ], + }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('Could not fetch 2 workflows'); + expect(result.markdown).toContain('partial results'); + }); + + it('should not include warnings when none are provided', () => { + const input = makeInput({ warnings: undefined }); + const result = buildAuditReport(input); + expect(result.markdown).not.toContain('Warning'); + }); + }); + + describe('performance timing', () => { + it('should include scan performance metrics in the report', () => { + const input = makeInput({ + performance: { + builtinAuditMs: 120, + workflowFetchMs: 80, + customScanMs: 250, + totalMs: 450, + }, + }); + const result = buildAuditReport(input); + + expect(result.markdown).toContain('120ms'); + expect(result.markdown).toContain('80ms'); + expect(result.markdown).toContain('250ms'); + }); + }); + + describe('summary counts', () => { + it('should aggregate counts across both built-in and custom sources', () => { + const builtinAudit = { + 'Nodes Risk Report': { + risk: 'nodes', + sections: [ + { + title: 'Issue', + description: 'Desc', + location: [{ id: '1' }, { id: '2' }, { id: '3' }], + }, + ], + }, + }; + + const findings = [ + makeFinding({ severity: 'critical' }), + makeFinding({ id: 'CRED-002', severity: 'high' }), + makeFinding({ id: 'CRED-003', severity: 'medium' }), + ]; + + const input = makeInput({ + builtinAudit, + customReport: makeCustomReport(findings, 5), + }); + + const result = buildAuditReport(input); + + expect(result.summary.critical).toBe(1); + expect(result.summary.high).toBe(1); + expect(result.summary.medium).toBe(1); + // 3 built-in locations counted as low + expect(result.summary.low).toBe(3); + expect(result.summary.totalFindings).toBe(6); + expect(result.summary.workflowsScanned).toBe(5); + }); + }); +}); diff --git a/tests/unit/services/credential-scanner.test.ts b/tests/unit/services/credential-scanner.test.ts new file mode 100644 index 0000000..072eb47 --- /dev/null +++ b/tests/unit/services/credential-scanner.test.ts @@ -0,0 +1,558 @@ +import { describe, it, expect } from 'vitest'; +import { + scanWorkflow, + maskSecret, + SECRET_PATTERNS, + PII_PATTERNS, + type ScanDetection, +} from '@/services/credential-scanner'; + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +/** Minimal workflow wrapper for single-node tests. */ +function makeWorkflow( + nodeParams: Record, + opts?: { + nodeName?: string; + nodeType?: string; + workflowId?: string; + workflowName?: string; + pinData?: Record; + staticData?: Record; + settings?: Record; + }, +) { + return { + id: opts?.workflowId ?? 'wf-1', + name: opts?.workflowName ?? 'Test Workflow', + nodes: [ + { + name: opts?.nodeName ?? 'HTTP Request', + type: opts?.nodeType ?? 'n8n-nodes-base.httpRequest', + parameters: nodeParams, + }, + ], + pinData: opts?.pinData, + staticData: opts?.staticData, + settings: opts?.settings, + }; +} + +/** Helper that returns the first detection label, or null. */ +function firstLabel(detections: ScanDetection[]): string | null { + return detections.length > 0 ? detections[0].label : null; +} + +// =========================================================================== +// Pattern matching — true positives +// =========================================================================== + +describe('credential-scanner', () => { + describe('pattern matching — true positives', () => { + it('should detect OpenAI key (sk-proj- prefix)', () => { + const wf = makeWorkflow({ apiKey: 'sk-proj-abc123def456ghi789jkl0' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('openai_key'); + }); + + it('should detect OpenAI key (sk- prefix without proj)', () => { + const wf = makeWorkflow({ apiKey: 'sk-abcdefghij1234567890abcdefghij' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('openai_key'); + }); + + it('should detect AWS access key', () => { + const wf = makeWorkflow({ accessKeyId: 'AKIA1234567890ABCDEF' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('aws_key'); + }); + + it('should detect GitHub PAT (ghp_ prefix)', () => { + const wf = makeWorkflow({ token: 'ghp_1234567890abcdefghijklmnopqrstuvwxyz' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('github_pat'); + }); + + it('should detect Stripe secret key', () => { + const wf = makeWorkflow({ stripeKey: 'sk_live_1234567890abcdef12345' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('stripe_key'); + }); + + it('should detect JWT token', () => { + const jwt = + 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U'; + const wf = makeWorkflow({ token: jwt }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('jwt_token'); + }); + + it('should detect Slack bot token', () => { + const wf = makeWorkflow({ token: 'xoxb-1234567890-abcdefghij' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('slack_token'); + }); + + it('should detect SendGrid API key', () => { + const key = + 'SG.abcdefghijklmnopqrstuv.abcdefghijklmnopqrstuvwxyz0123456789abcdefg'; + const wf = makeWorkflow({ apiKey: key }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('sendgrid_key'); + }); + + it('should detect private key header', () => { + const wf = makeWorkflow({ + privateKey: '-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQ...', + }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('private_key'); + }); + + it('should detect Bearer token', () => { + const wf = makeWorkflow({ + header: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9abcdef', + }); + const detections = scanWorkflow(wf); + // Could match bearer_token or jwt_token; at minimum one detection exists + const labels = detections.map((d) => d.label); + expect(labels).toContain('bearer_token'); + }); + + it('should detect URL with embedded credentials', () => { + const wf = makeWorkflow({ + connectionString: 'postgres://admin:secret_password@db.example.com:5432/mydb', + }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('url_with_auth'); + }); + + it('should detect Anthropic key', () => { + const wf = makeWorkflow({ apiKey: 'sk-ant-abcdefghijklmnopqrstuvwxyz1234' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('anthropic_key'); + }); + + it('should detect GitHub OAuth token (gho_ prefix)', () => { + const wf = makeWorkflow({ token: 'gho_1234567890abcdefghijklmnopqrstuvwxyz' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('github_oauth'); + }); + + it('should detect Stripe restricted key (rk_live)', () => { + const wf = makeWorkflow({ stripeKey: 'rk_live_1234567890abcdef12345' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('stripe_key'); + }); + }); + + // =========================================================================== + // PII patterns — true positives + // =========================================================================== + + describe('PII pattern matching — true positives', () => { + it('should detect email address', () => { + const wf = makeWorkflow({ recipient: 'john.doe@example.com' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('email'); + }); + + it('should detect credit card number with spaces', () => { + const wf = makeWorkflow({ cardNumber: '4111 1111 1111 1111' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('credit_card'); + }); + + it('should detect credit card number with dashes', () => { + const wf = makeWorkflow({ cardNumber: '4111-1111-1111-1111' }); + const detections = scanWorkflow(wf); + expect(firstLabel(detections)).toBe('credit_card'); + }); + }); + + // =========================================================================== + // True negatives — strings that should NOT be detected + // =========================================================================== + + describe('true negatives', () => { + it('should not flag a short string that looks like a key prefix', () => { + const wf = makeWorkflow({ key: 'sk-abc' }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should not flag normal URLs without embedded auth', () => { + const wf = makeWorkflow({ url: 'https://example.com/api/v1/path' }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should not flag a safe short string', () => { + const wf = makeWorkflow({ value: 'hello world, this is a normal string' }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should not flag strings shorter than 9 characters', () => { + // collectStrings skips strings with length <= 8 + const wf = makeWorkflow({ key: '12345678' }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + }); + + // =========================================================================== + // Expression skipping + // =========================================================================== + + describe('expression skipping', () => { + it('should skip strings starting with = even if they contain a key pattern', () => { + const wf = makeWorkflow({ + apiKey: '={{ $json.apiKey }}', + header: '={{ "sk-proj-" + $json.secret123456789 }}', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should skip strings starting with {{ even if they contain a key pattern', () => { + const wf = makeWorkflow({ + token: '{{ $json.token }}', + auth: '{{ "Bearer " + $json.accessToken12345678 }}', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should skip mixed expression and literal if expression comes first', () => { + const wf = makeWorkflow({ + mixed: '={{ "AKIA" + "1234567890ABCDEF" }}', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + }); + + // =========================================================================== + // Field skipping + // =========================================================================== + + describe('field skipping', () => { + it('should not scan values under the credentials key', () => { + const wf = makeWorkflow({ + credentials: { + httpHeaderAuth: { + id: 'cred-123', + name: 'sk-proj-abc123def456ghi789jkl0', + }, + }, + url: 'https://api.example.com', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should not scan values under the expression key', () => { + const wf = makeWorkflow({ + expression: 'sk-proj-abc123def456ghi789jkl0', + url: 'https://api.example.com', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + + it('should not scan values under the id key', () => { + const wf = makeWorkflow({ + id: 'AKIA1234567890ABCDEF', + url: 'https://api.example.com', + }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + }); + + // =========================================================================== + // Depth limit + // =========================================================================== + + describe('depth limit', () => { + it('should stop traversing structures nested deeper than 10 levels', () => { + // Build a nested structure 12 levels deep with a secret at the bottom + let nested: Record = { + secret: 'sk-proj-abc123def456ghi789jkl0', + }; + for (let i = 0; i < 12; i++) { + nested = { level: nested }; + } + + const wf = makeWorkflow(nested); + const detections = scanWorkflow(wf); + // The secret is beyond depth 10, so it should not be found + expect(detections).toHaveLength(0); + }); + + it('should detect secrets at exactly depth 10', () => { + // Build a structure that puts the secret at depth 10 from the + // parameters level. collectStrings is called with depth=0 for + // node.parameters, so 10 nesting levels should still be traversed. + let nested: Record = { + secret: 'sk-proj-abc123def456ghi789jkl0', + }; + for (let i = 0; i < 9; i++) { + nested = { level: nested }; + } + + const wf = makeWorkflow(nested); + const detections = scanWorkflow(wf); + expect(detections.length).toBeGreaterThanOrEqual(1); + expect(firstLabel(detections)).toBe('openai_key'); + }); + }); + + // =========================================================================== + // maskSecret() + // =========================================================================== + + describe('maskSecret()', () => { + it('should mask a long value showing first 6 and last 4 characters', () => { + const result = maskSecret('sk-proj-abc123def456ghi789jkl0'); + expect(result).toBe('sk-pro****jkl0'); + }); + + it('should mask a 14-character value with head and tail', () => { + // Exactly at boundary: 14 chars >= 14, so head+tail format + const result = maskSecret('abcdefghijklmn'); + expect(result).toBe('abcdef****klmn'); + }); + + it('should fully mask a value shorter than 14 characters', () => { + expect(maskSecret('1234567890')).toBe('****'); + expect(maskSecret('short')).toBe('****'); + expect(maskSecret('a')).toBe('****'); + expect(maskSecret('abcdefghijk')).toBe('****'); // 11 chars + expect(maskSecret('abcdefghijklm')).toBe('****'); // 13 chars + }); + + it('should handle empty string', () => { + expect(maskSecret('')).toBe('****'); + }); + }); + + // =========================================================================== + // Full workflow scan — realistic workflow JSON + // =========================================================================== + + describe('full workflow scan', () => { + it('should detect a hardcoded key in a realistic HTTP Request node', () => { + const workflow = { + id: 'wf-42', + name: 'Send Slack Message', + nodes: [ + { + name: 'Webhook Trigger', + type: 'n8n-nodes-base.webhook', + parameters: { + path: '/incoming', + method: 'POST', + }, + }, + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { + url: 'https://api.openai.com/v1/chat/completions', + method: 'POST', + headers: { + values: [ + { + name: 'Authorization', + value: 'Bearer sk-proj-RealKeyThatShouldNotBeHere1234567890', + }, + ], + }, + body: { + json: { + model: 'gpt-4', + messages: [{ role: 'user', content: 'Hello' }], + }, + }, + }, + }, + { + name: 'Slack', + type: 'n8n-nodes-base.slack', + parameters: { + channel: '#general', + text: 'Response received', + }, + }, + ], + }; + + const detections = scanWorkflow(workflow); + expect(detections.length).toBeGreaterThanOrEqual(1); + + const openaiDetection = detections.find((d) => d.label === 'openai_key'); + expect(openaiDetection).toBeDefined(); + expect(openaiDetection!.location.workflowId).toBe('wf-42'); + expect(openaiDetection!.location.workflowName).toBe('Send Slack Message'); + expect(openaiDetection!.location.nodeName).toBe('HTTP Request'); + expect(openaiDetection!.location.nodeType).toBe('n8n-nodes-base.httpRequest'); + // maskedSnippet should not contain the full key + expect(openaiDetection!.maskedSnippet).toContain('****'); + }); + + it('should return empty detections for a clean workflow', () => { + const workflow = { + id: 'wf-clean', + name: 'Clean Workflow', + nodes: [ + { + name: 'Manual Trigger', + type: 'n8n-nodes-base.manualTrigger', + parameters: {}, + }, + { + name: 'Set', + type: 'n8n-nodes-base.set', + parameters: { + values: { + string: [{ name: 'greeting', value: 'Hello World this is safe' }], + }, + }, + }, + ], + }; + + const detections = scanWorkflow(workflow); + expect(detections).toHaveLength(0); + }); + }); + + // =========================================================================== + // pinData / staticData / settings scanning + // =========================================================================== + + describe('pinData / staticData / settings scanning', () => { + it('should detect secrets embedded in pinData', () => { + const wf = makeWorkflow( + { url: 'https://example.com' }, + { + pinData: { + 'HTTP Request': [ + { json: { apiKey: 'sk-proj-abc123def456ghi789jkl0' } }, + ], + }, + }, + ); + const detections = scanWorkflow(wf); + const pinDetection = detections.find( + (d) => d.label === 'openai_key' && d.location.nodeName === undefined, + ); + expect(pinDetection).toBeDefined(); + }); + + it('should detect secrets embedded in staticData', () => { + const wf = makeWorkflow( + { url: 'https://example.com' }, + { + staticData: { + lastProcessed: { + token: 'ghp_1234567890abcdefghijklmnopqrstuvwxyz', + }, + }, + }, + ); + const detections = scanWorkflow(wf); + const staticDetection = detections.find( + (d) => d.label === 'github_pat' && d.location.nodeName === undefined, + ); + expect(staticDetection).toBeDefined(); + }); + + it('should detect secrets in workflow settings', () => { + const wf = makeWorkflow( + { url: 'https://example.com' }, + { + settings: { + webhookSecret: 'sk_live_1234567890abcdef12345', + }, + }, + ); + const detections = scanWorkflow(wf); + const settingsDetection = detections.find( + (d) => d.label === 'stripe_key' && d.location.nodeName === undefined, + ); + expect(settingsDetection).toBeDefined(); + }); + + it('should not flag pinData / staticData / settings when they are empty', () => { + const wf = makeWorkflow( + { url: 'https://example.com' }, + { + pinData: {}, + staticData: {}, + settings: {}, + }, + ); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(0); + }); + }); + + // =========================================================================== + // Detection metadata + // =========================================================================== + + describe('detection metadata', () => { + it('should include category and severity on each detection', () => { + const wf = makeWorkflow({ key: 'AKIA1234567890ABCDEF' }); + const detections = scanWorkflow(wf); + expect(detections).toHaveLength(1); + expect(detections[0].category).toBe('Cloud/DevOps'); + expect(detections[0].severity).toBe('critical'); + }); + + it('should set workflowId to empty string when id is missing', () => { + const wf = { + name: 'No ID Workflow', + nodes: [ + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { key: 'AKIA1234567890ABCDEF' }, + }, + ], + }; + const detections = scanWorkflow(wf); + expect(detections[0].location.workflowId).toBe(''); + }); + }); + + // =========================================================================== + // Pattern completeness sanity check + // =========================================================================== + + describe('pattern definitions', () => { + it('should have at least 40 secret patterns defined', () => { + expect(SECRET_PATTERNS.length).toBeGreaterThanOrEqual(40); + }); + + it('should have PII patterns for email, phone, and credit card', () => { + const labels = PII_PATTERNS.map((p) => p.label); + expect(labels).toContain('email'); + expect(labels).toContain('phone'); + expect(labels).toContain('credit_card'); + }); + + it('should have every pattern with a non-empty label and category', () => { + for (const p of [...SECRET_PATTERNS, ...PII_PATTERNS]) { + expect(p.label).toBeTruthy(); + expect(p.category).toBeTruthy(); + expect(['critical', 'high', 'medium']).toContain(p.severity); + } + }); + }); +}); diff --git a/tests/unit/services/workflow-security-scanner.test.ts b/tests/unit/services/workflow-security-scanner.test.ts new file mode 100644 index 0000000..9d37a3c --- /dev/null +++ b/tests/unit/services/workflow-security-scanner.test.ts @@ -0,0 +1,487 @@ +import { describe, it, expect } from 'vitest'; +import { + scanWorkflows, + type WorkflowSecurityReport, + type AuditFinding, + type CustomCheckType, +} from '@/services/workflow-security-scanner'; + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +function makeWorkflow(overrides: Record = {}) { + return { + id: 'wf-1', + name: 'Test Workflow', + active: false, + nodes: [] as any[], + settings: {}, + ...overrides, + }; +} + +/** Shortcut to scan a single workflow and return its report. */ +function scanOne( + workflow: Record, + checks?: CustomCheckType[], +): WorkflowSecurityReport { + return scanWorkflows([workflow as any], checks); +} + +/** Return findings for a given category. */ +function findingsOf(report: WorkflowSecurityReport, category: CustomCheckType): AuditFinding[] { + return report.findings.filter((f) => f.category === category); +} + +// =========================================================================== +// Check 1: Hardcoded secrets +// =========================================================================== + +describe('workflow-security-scanner', () => { + describe('hardcoded secrets check', () => { + it('should detect a hardcoded secret in node parameters', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { + url: 'https://api.example.com', + headers: { + values: [{ name: 'Authorization', value: 'sk-proj-RealKey1234567890abcdef' }], + }, + }, + }, + ], + }); + const report = scanOne(wf, ['hardcoded_secrets']); + const secrets = findingsOf(report, 'hardcoded_secrets'); + expect(secrets.length).toBeGreaterThanOrEqual(1); + expect(secrets[0].title).toContain('openai_key'); + expect(secrets[0].id).toMatch(/^CRED-\d{3}$/); + }); + + it('should mark PII detections as review_recommended, not auto_fixable', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Send Email', + type: 'n8n-nodes-base.httpRequest', + parameters: { body: { json: { to: 'john.doe@example.com' } } }, + }, + ], + }); + const report = scanOne(wf, ['hardcoded_secrets']); + const piiFindings = findingsOf(report, 'hardcoded_secrets').filter( + (f) => f.title.toLowerCase().includes('email'), + ); + expect(piiFindings.length).toBeGreaterThanOrEqual(1); + expect(piiFindings[0].remediationType).toBe('review_recommended'); + expect(piiFindings[0].remediation).toHaveLength(0); + }); + + it('should return no findings for a clean workflow', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Set', + type: 'n8n-nodes-base.set', + parameters: { values: { string: [{ name: 'greeting', value: 'hello world is safe' }] } }, + }, + ], + }); + const report = scanOne(wf, ['hardcoded_secrets']); + expect(findingsOf(report, 'hardcoded_secrets')).toHaveLength(0); + }); + }); + + // =========================================================================== + // Check 2: Unauthenticated webhooks + // =========================================================================== + + describe('unauthenticated webhooks check', () => { + it('should flag a webhook with authentication set to "none"', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'none' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + const webhooks = findingsOf(report, 'unauthenticated_webhooks'); + expect(webhooks).toHaveLength(1); + expect(webhooks[0].title).toContain('Webhook'); + }); + + it('should flag a webhook with no authentication parameter at all', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')).toHaveLength(1); + }); + + it('should NOT flag a webhook with headerAuth configured', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'headerAuth' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')).toHaveLength(0); + }); + + it('should NOT flag a webhook with basicAuth configured', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'basicAuth' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')).toHaveLength(0); + }); + + it('should assign severity high when the workflow is active', () => { + const wf = makeWorkflow({ + active: true, + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'none' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + const findings = findingsOf(report, 'unauthenticated_webhooks'); + expect(findings[0].severity).toBe('high'); + expect(findings[0].description).toContain('active'); + }); + + it('should assign severity medium when the workflow is inactive', () => { + const wf = makeWorkflow({ + active: false, + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'none' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')[0].severity).toBe('medium'); + }); + + it('should NOT flag respondToWebhook nodes (they are response helpers, not triggers)', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Respond to Webhook', + type: 'n8n-nodes-base.respondToWebhook', + parameters: { respondWith: 'text', responseBody: 'OK' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')).toHaveLength(0); + }); + + it('should also detect formTrigger nodes', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Form Trigger', + type: 'n8n-nodes-base.formTrigger', + parameters: { path: '/form' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + expect(findingsOf(report, 'unauthenticated_webhooks')).toHaveLength(1); + }); + + it('should include remediation steps with auto_fixable type', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook' }, + }, + ], + }); + const report = scanOne(wf, ['unauthenticated_webhooks']); + const finding = findingsOf(report, 'unauthenticated_webhooks')[0]; + expect(finding.remediationType).toBe('auto_fixable'); + expect(finding.remediation).toBeDefined(); + expect(finding.remediation!.length).toBeGreaterThanOrEqual(1); + }); + }); + + // =========================================================================== + // Check 3: Error handling gaps + // =========================================================================== + + describe('error handling gaps check', () => { + it('should flag a workflow with 3+ nodes and no error handling', () => { + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + { name: 'Step 2', type: 'n8n-nodes-base.httpRequest', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + const findings = findingsOf(report, 'error_handling'); + expect(findings).toHaveLength(1); + expect(findings[0].id).toBe('ERR-001'); + expect(findings[0].severity).toBe('medium'); + }); + + it('should NOT flag a workflow with continueOnFail enabled', () => { + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {}, continueOnFail: true }, + { name: 'Step 2', type: 'n8n-nodes-base.httpRequest', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + expect(findingsOf(report, 'error_handling')).toHaveLength(0); + }); + + it('should NOT flag a workflow with onError set to continueErrorOutput', () => { + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {}, onError: 'continueErrorOutput' }, + { name: 'Step 2', type: 'n8n-nodes-base.httpRequest', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + expect(findingsOf(report, 'error_handling')).toHaveLength(0); + }); + + it('should NOT flag a workflow with an errorTrigger node', () => { + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + { name: 'Error Handler', type: 'n8n-nodes-base.errorTrigger', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + expect(findingsOf(report, 'error_handling')).toHaveLength(0); + }); + + it('should NOT flag a workflow with fewer than 3 nodes', () => { + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + expect(findingsOf(report, 'error_handling')).toHaveLength(0); + }); + + it('should NOT flag onError=stopWorkflow as valid error handling', () => { + // stopWorkflow is the default and does NOT count as custom error handling + const wf = makeWorkflow({ + nodes: [ + { name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {}, onError: 'stopWorkflow' }, + { name: 'Step 2', type: 'n8n-nodes-base.httpRequest', parameters: {} }, + ], + }); + const report = scanOne(wf, ['error_handling']); + expect(findingsOf(report, 'error_handling')).toHaveLength(1); + }); + }); + + // =========================================================================== + // Check 4: Data retention settings + // =========================================================================== + + describe('data retention settings check', () => { + it('should flag when both save settings are set to all', () => { + const wf = makeWorkflow({ + nodes: [{ name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }], + settings: { + saveDataErrorExecution: 'all', + saveDataSuccessExecution: 'all', + }, + }); + const report = scanOne(wf, ['data_retention']); + const findings = findingsOf(report, 'data_retention'); + expect(findings).toHaveLength(1); + expect(findings[0].id).toBe('RETENTION-001'); + expect(findings[0].severity).toBe('low'); + }); + + it('should NOT flag when only error execution is set to all', () => { + const wf = makeWorkflow({ + nodes: [{ name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }], + settings: { + saveDataErrorExecution: 'all', + saveDataSuccessExecution: 'none', + }, + }); + const report = scanOne(wf, ['data_retention']); + expect(findingsOf(report, 'data_retention')).toHaveLength(0); + }); + + it('should NOT flag when only success execution is set to all', () => { + const wf = makeWorkflow({ + nodes: [{ name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }], + settings: { + saveDataErrorExecution: 'none', + saveDataSuccessExecution: 'all', + }, + }); + const report = scanOne(wf, ['data_retention']); + expect(findingsOf(report, 'data_retention')).toHaveLength(0); + }); + + it('should NOT flag when no settings are present', () => { + const wf = makeWorkflow({ + nodes: [{ name: 'Trigger', type: 'n8n-nodes-base.manualTrigger', parameters: {} }], + }); + const report = scanOne(wf, ['data_retention']); + expect(findingsOf(report, 'data_retention')).toHaveLength(0); + }); + }); + + // =========================================================================== + // Selective checks (customChecks filter) + // =========================================================================== + + describe('selective checks', () => { + it('should only run the requested checks', () => { + const wf = makeWorkflow({ + active: true, + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'none' }, + }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { + headers: { values: [{ name: 'Auth', value: 'sk-proj-RealKey1234567890abcdef' }] }, + }, + }, + ], + settings: { saveDataErrorExecution: 'all', saveDataSuccessExecution: 'all' }, + }); + + // Only run webhook check + const report = scanOne(wf, ['unauthenticated_webhooks']); + const categories = new Set(report.findings.map((f) => f.category)); + expect(categories.has('unauthenticated_webhooks')).toBe(true); + expect(categories.has('hardcoded_secrets')).toBe(false); + expect(categories.has('error_handling')).toBe(false); + expect(categories.has('data_retention')).toBe(false); + }); + + it('should run all checks when no filter is provided', () => { + const wf = makeWorkflow({ + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook' }, + }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { + headers: { values: [{ name: 'Auth', value: 'sk-proj-RealKey1234567890abcdef' }] }, + }, + }, + ], + settings: { saveDataErrorExecution: 'all', saveDataSuccessExecution: 'all' }, + }); + + const report = scanWorkflows([wf as any]); + const categories = new Set(report.findings.map((f) => f.category)); + // Should have findings from at least webhook and secrets checks + expect(categories.has('unauthenticated_webhooks')).toBe(true); + expect(categories.has('hardcoded_secrets')).toBe(true); + }); + }); + + // =========================================================================== + // Summary counts + // =========================================================================== + + describe('summary counts', () => { + it('should correctly aggregate severity counts', () => { + const wf = makeWorkflow({ + active: true, + nodes: [ + { + name: 'Webhook', + type: 'n8n-nodes-base.webhook', + parameters: { path: '/hook', authentication: 'none' }, + }, + { name: 'Step 1', type: 'n8n-nodes-base.set', parameters: {} }, + { + name: 'HTTP Request', + type: 'n8n-nodes-base.httpRequest', + parameters: { + headers: { values: [{ name: 'Auth', value: 'sk-proj-RealKey1234567890abcdef' }] }, + }, + }, + ], + settings: { saveDataErrorExecution: 'all', saveDataSuccessExecution: 'all' }, + }); + + const report = scanOne(wf); + + expect(report.summary.total).toBe(report.findings.length); + expect( + report.summary.critical + + report.summary.high + + report.summary.medium + + report.summary.low, + ).toBe(report.summary.total); + }); + + it('should report correct workflowsScanned count', () => { + const wf1 = makeWorkflow({ id: 'wf-1', name: 'WF1', nodes: [] }); + const wf2 = makeWorkflow({ id: 'wf-2', name: 'WF2', nodes: [] }); + const report = scanWorkflows([wf1, wf2] as any[]); + expect(report.workflowsScanned).toBe(2); + }); + + it('should track scan duration in milliseconds', () => { + const wf = makeWorkflow({ nodes: [] }); + const report = scanOne(wf); + expect(report.scanDurationMs).toBeGreaterThanOrEqual(0); + }); + }); +});