agentic-qe 2.5.6 → 2.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/n8n/n8n-base-agent.md +376 -0
- package/.claude/agents/n8n/n8n-bdd-scenario-tester.md +613 -0
- package/.claude/agents/n8n/n8n-chaos-tester.md +654 -0
- package/.claude/agents/n8n/n8n-ci-orchestrator.md +850 -0
- package/.claude/agents/n8n/n8n-compliance-validator.md +685 -0
- package/.claude/agents/n8n/n8n-expression-validator.md +560 -0
- package/.claude/agents/n8n/n8n-integration-test.md +602 -0
- package/.claude/agents/n8n/n8n-monitoring-validator.md +589 -0
- package/.claude/agents/n8n/n8n-node-validator.md +455 -0
- package/.claude/agents/n8n/n8n-performance-tester.md +630 -0
- package/.claude/agents/n8n/n8n-security-auditor.md +786 -0
- package/.claude/agents/n8n/n8n-trigger-test.md +500 -0
- package/.claude/agents/n8n/n8n-unit-tester.md +633 -0
- package/.claude/agents/n8n/n8n-version-comparator.md +567 -0
- package/.claude/agents/n8n/n8n-workflow-executor.md +392 -0
- package/.claude/skills/n8n-expression-testing/SKILL.md +434 -0
- package/.claude/skills/n8n-integration-testing-patterns/SKILL.md +540 -0
- package/.claude/skills/n8n-security-testing/SKILL.md +599 -0
- package/.claude/skills/n8n-trigger-testing-strategies/SKILL.md +541 -0
- package/.claude/skills/n8n-workflow-testing-fundamentals/SKILL.md +447 -0
- package/CHANGELOG.md +127 -0
- package/README.md +7 -4
- package/dist/agents/BaseAgent.d.ts +142 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +372 -2
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +5 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +38 -0
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/n8n/N8nAPIClient.d.ts +121 -0
- package/dist/agents/n8n/N8nAPIClient.d.ts.map +1 -0
- package/dist/agents/n8n/N8nAPIClient.js +367 -0
- package/dist/agents/n8n/N8nAPIClient.js.map +1 -0
- package/dist/agents/n8n/N8nAuditPersistence.d.ts +120 -0
- package/dist/agents/n8n/N8nAuditPersistence.d.ts.map +1 -0
- package/dist/agents/n8n/N8nAuditPersistence.js +473 -0
- package/dist/agents/n8n/N8nAuditPersistence.js.map +1 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts +159 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js +697 -0
- package/dist/agents/n8n/N8nBDDScenarioTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts +126 -0
- package/dist/agents/n8n/N8nBaseAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nBaseAgent.js +446 -0
- package/dist/agents/n8n/N8nBaseAgent.js.map +1 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts +164 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.js +610 -0
- package/dist/agents/n8n/N8nCIOrchestratorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.d.ts +205 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.js +729 -0
- package/dist/agents/n8n/N8nChaosTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts +228 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.js +986 -0
- package/dist/agents/n8n/N8nComplianceValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nContractTesterAgent.d.ts +213 -0
- package/dist/agents/n8n/N8nContractTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nContractTesterAgent.js +989 -0
- package/dist/agents/n8n/N8nContractTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts +99 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.js +632 -0
- package/dist/agents/n8n/N8nExpressionValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts +238 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.js +956 -0
- package/dist/agents/n8n/N8nFailureModeTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts +242 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.js +992 -0
- package/dist/agents/n8n/N8nIdempotencyTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts +104 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.js +653 -0
- package/dist/agents/n8n/N8nIntegrationTestAgent.js.map +1 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts +210 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.js +669 -0
- package/dist/agents/n8n/N8nMonitoringValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts +142 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.js +1090 -0
- package/dist/agents/n8n/N8nNodeValidatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts +198 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.js +653 -0
- package/dist/agents/n8n/N8nPerformanceTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts +245 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.js +952 -0
- package/dist/agents/n8n/N8nReplayabilityTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts +325 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js +1187 -0
- package/dist/agents/n8n/N8nSecretsHygieneAuditorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts +91 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.js +825 -0
- package/dist/agents/n8n/N8nSecurityAuditorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nTestHarness.d.ts +131 -0
- package/dist/agents/n8n/N8nTestHarness.d.ts.map +1 -0
- package/dist/agents/n8n/N8nTestHarness.js +456 -0
- package/dist/agents/n8n/N8nTestHarness.js.map +1 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.d.ts +119 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.js +652 -0
- package/dist/agents/n8n/N8nTriggerTestAgent.js.map +1 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.d.ts +130 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.js +522 -0
- package/dist/agents/n8n/N8nUnitTesterAgent.js.map +1 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts +201 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.js +645 -0
- package/dist/agents/n8n/N8nVersionComparatorAgent.js.map +1 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts +120 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.d.ts.map +1 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.js +347 -0
- package/dist/agents/n8n/N8nWorkflowExecutorAgent.js.map +1 -0
- package/dist/agents/n8n/index.d.ts +119 -0
- package/dist/agents/n8n/index.d.ts.map +1 -0
- package/dist/agents/n8n/index.js +298 -0
- package/dist/agents/n8n/index.js.map +1 -0
- package/dist/agents/n8n/types.d.ts +486 -0
- package/dist/agents/n8n/types.d.ts.map +1 -0
- package/dist/agents/n8n/types.js +8 -0
- package/dist/agents/n8n/types.js.map +1 -0
- package/dist/cli/init/agents.d.ts.map +1 -1
- package/dist/cli/init/agents.js +29 -0
- package/dist/cli/init/agents.js.map +1 -1
- package/dist/cli/init/skills.d.ts.map +1 -1
- package/dist/cli/init/skills.js +7 -1
- package/dist/cli/init/skills.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts +90 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +209 -0
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/learning/FederatedManager.d.ts +232 -0
- package/dist/learning/FederatedManager.d.ts.map +1 -0
- package/dist/learning/FederatedManager.js +489 -0
- package/dist/learning/FederatedManager.js.map +1 -0
- package/dist/learning/HNSWPatternAdapter.d.ts +117 -0
- package/dist/learning/HNSWPatternAdapter.d.ts.map +1 -0
- package/dist/learning/HNSWPatternAdapter.js +262 -0
- package/dist/learning/HNSWPatternAdapter.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +27 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +75 -1
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/PatternCurator.d.ts +217 -0
- package/dist/learning/PatternCurator.d.ts.map +1 -0
- package/dist/learning/PatternCurator.js +393 -0
- package/dist/learning/PatternCurator.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +16 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +4 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/memory/HNSWPatternStore.d.ts +176 -0
- package/dist/memory/HNSWPatternStore.d.ts.map +1 -0
- package/dist/memory/HNSWPatternStore.js +392 -0
- package/dist/memory/HNSWPatternStore.js.map +1 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +13 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/providers/HybridRouter.d.ts +85 -4
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +332 -10
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMBaselineTracker.d.ts +120 -0
- package/dist/providers/LLMBaselineTracker.d.ts.map +1 -0
- package/dist/providers/LLMBaselineTracker.js +305 -0
- package/dist/providers/LLMBaselineTracker.js.map +1 -0
- package/dist/providers/OpenRouterProvider.d.ts +26 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +75 -6
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/providers/RuVectorClient.d.ts +259 -0
- package/dist/providers/RuVectorClient.d.ts.map +1 -0
- package/dist/providers/RuVectorClient.js +416 -0
- package/dist/providers/RuVectorClient.js.map +1 -0
- package/dist/providers/RuvllmPatternCurator.d.ts +116 -0
- package/dist/providers/RuvllmPatternCurator.d.ts.map +1 -0
- package/dist/providers/RuvllmPatternCurator.js +323 -0
- package/dist/providers/RuvllmPatternCurator.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +233 -1
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +781 -11
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +5 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/ruvllm-loader.d.ts +98 -1
- package/dist/utils/ruvllm-loader.d.ts.map +1 -1
- package/dist/utils/ruvllm-loader.js.map +1 -1
- package/docs/reference/agents.md +91 -2
- package/docs/reference/skills.md +97 -2
- package/package.json +2 -2
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* N8n API Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for interacting with n8n REST API
|
|
5
|
+
* Handles authentication, retries, caching, and error handling
|
|
6
|
+
*/
|
|
7
|
+
import { N8nAPIConfig, N8nWorkflow, N8nExecution, N8nCredential } from './types';
|
|
8
|
+
export declare class N8nAPIClient {
|
|
9
|
+
private readonly config;
|
|
10
|
+
private readonly cache;
|
|
11
|
+
private readonly cacheTTL;
|
|
12
|
+
private sessionCookie;
|
|
13
|
+
private sessionInitialized;
|
|
14
|
+
constructor(config: N8nAPIConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Initialize session-based authentication
|
|
17
|
+
* Called automatically on first request if sessionAuth is configured
|
|
18
|
+
*/
|
|
19
|
+
initSession(): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* List all workflows
|
|
22
|
+
*/
|
|
23
|
+
listWorkflows(): Promise<N8nWorkflow[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Get workflow by ID
|
|
26
|
+
*/
|
|
27
|
+
getWorkflow(workflowId: string, useCache?: boolean): Promise<N8nWorkflow>;
|
|
28
|
+
/**
|
|
29
|
+
* Execute a workflow
|
|
30
|
+
*/
|
|
31
|
+
executeWorkflow(workflowId: string, data?: Record<string, unknown>): Promise<N8nExecution>;
|
|
32
|
+
/**
|
|
33
|
+
* Activate a workflow
|
|
34
|
+
*/
|
|
35
|
+
activateWorkflow(workflowId: string): Promise<N8nWorkflow>;
|
|
36
|
+
/**
|
|
37
|
+
* Deactivate a workflow
|
|
38
|
+
*/
|
|
39
|
+
deactivateWorkflow(workflowId: string): Promise<N8nWorkflow>;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new workflow
|
|
42
|
+
* Accepts workflow without id, createdAt, updatedAt (server will generate these)
|
|
43
|
+
*/
|
|
44
|
+
createWorkflow(workflow: Omit<N8nWorkflow, 'id' | 'createdAt' | 'updatedAt'>): Promise<N8nWorkflow>;
|
|
45
|
+
/**
|
|
46
|
+
* Update an existing workflow
|
|
47
|
+
*/
|
|
48
|
+
updateWorkflow(workflowId: string, workflow: Partial<N8nWorkflow>): Promise<N8nWorkflow>;
|
|
49
|
+
/**
|
|
50
|
+
* Delete a workflow
|
|
51
|
+
*/
|
|
52
|
+
deleteWorkflow(workflowId: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* List executions
|
|
55
|
+
*/
|
|
56
|
+
listExecutions(filters?: {
|
|
57
|
+
workflowId?: string;
|
|
58
|
+
status?: string;
|
|
59
|
+
limit?: number;
|
|
60
|
+
}): Promise<N8nExecution[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Get execution by ID
|
|
63
|
+
*/
|
|
64
|
+
getExecution(executionId: string): Promise<N8nExecution>;
|
|
65
|
+
/**
|
|
66
|
+
* Delete execution
|
|
67
|
+
*/
|
|
68
|
+
deleteExecution(executionId: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Wait for execution to complete
|
|
71
|
+
*/
|
|
72
|
+
waitForExecution(executionId: string, timeout?: number, pollInterval?: number): Promise<N8nExecution>;
|
|
73
|
+
/**
|
|
74
|
+
* List credentials (metadata only, no secrets)
|
|
75
|
+
*/
|
|
76
|
+
listCredentials(): Promise<N8nCredential[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Get credential by ID (metadata only)
|
|
79
|
+
*/
|
|
80
|
+
getCredential(credentialId: string): Promise<N8nCredential>;
|
|
81
|
+
/**
|
|
82
|
+
* Check n8n API health
|
|
83
|
+
*/
|
|
84
|
+
healthCheck(): Promise<{
|
|
85
|
+
status: string;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Test API connectivity
|
|
89
|
+
*/
|
|
90
|
+
testConnection(): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Make HTTP request with retry logic
|
|
93
|
+
* Supports both API key auth (Public API) and session cookie auth (Internal REST API)
|
|
94
|
+
*/
|
|
95
|
+
private request;
|
|
96
|
+
/**
|
|
97
|
+
* Get item from cache
|
|
98
|
+
*/
|
|
99
|
+
private getFromCache;
|
|
100
|
+
/**
|
|
101
|
+
* Set item in cache
|
|
102
|
+
*/
|
|
103
|
+
private setCache;
|
|
104
|
+
/**
|
|
105
|
+
* Clear cache
|
|
106
|
+
*/
|
|
107
|
+
clearCache(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Sleep utility
|
|
110
|
+
*/
|
|
111
|
+
private sleep;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Custom error class for N8n API errors
|
|
115
|
+
*/
|
|
116
|
+
export declare class N8nAPIError extends Error {
|
|
117
|
+
readonly statusCode: number;
|
|
118
|
+
readonly path: string;
|
|
119
|
+
constructor(message: string, statusCode: number, path: string);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=N8nAPIClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N8nAPIClient.d.ts","sourceRoot":"","sources":["../../../src/agents/n8n/N8nAPIClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8F;IACrH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgE;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,YAAY;IAWhC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA6CrC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK7C;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAa5E;;OAEG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC;IAUxB;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOhE;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOlE;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAUzG;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAa9F;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;OAEG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa3B;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,SAAQ,EACf,YAAY,SAAO,GAClB,OAAO,CAAC,YAAY,CAAC;IAoBxB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKjD;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAUhD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC;;;OAGG;YACW,OAAO;IA+GrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAGlB,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM;CAK/B"}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* N8n API Client
|
|
4
|
+
*
|
|
5
|
+
* HTTP client for interacting with n8n REST API
|
|
6
|
+
* Handles authentication, retries, caching, and error handling
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.N8nAPIError = exports.N8nAPIClient = void 0;
|
|
10
|
+
class N8nAPIClient {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.cache = new Map();
|
|
13
|
+
this.sessionCookie = null;
|
|
14
|
+
this.sessionInitialized = false;
|
|
15
|
+
this.config = {
|
|
16
|
+
baseUrl: config.baseUrl.replace(/\/$/, ''), // Remove trailing slash
|
|
17
|
+
apiKey: config.apiKey,
|
|
18
|
+
timeout: config.timeout ?? 30000,
|
|
19
|
+
retries: config.retries ?? 3,
|
|
20
|
+
sessionAuth: config.sessionAuth,
|
|
21
|
+
};
|
|
22
|
+
this.cacheTTL = 60000; // 1 minute cache
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Initialize session-based authentication
|
|
26
|
+
* Called automatically on first request if sessionAuth is configured
|
|
27
|
+
*/
|
|
28
|
+
async initSession() {
|
|
29
|
+
if (!this.config.sessionAuth || this.sessionInitialized) {
|
|
30
|
+
return !!this.sessionCookie;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const response = await fetch(`${this.config.baseUrl}/rest/login`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: { 'Content-Type': 'application/json' },
|
|
36
|
+
body: JSON.stringify({
|
|
37
|
+
emailOrLdapLoginId: this.config.sessionAuth.email,
|
|
38
|
+
password: this.config.sessionAuth.password,
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
console.warn('Session login failed:', response.status);
|
|
43
|
+
this.sessionInitialized = true;
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
// Extract session cookie
|
|
47
|
+
const setCookie = response.headers.get('set-cookie');
|
|
48
|
+
if (setCookie) {
|
|
49
|
+
const match = setCookie.match(/n8n-auth=([^;]+)/);
|
|
50
|
+
if (match) {
|
|
51
|
+
this.sessionCookie = match[1];
|
|
52
|
+
this.sessionInitialized = true;
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.sessionInitialized = true;
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.warn('Session initialization failed:', error);
|
|
61
|
+
this.sessionInitialized = true;
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// Workflow Operations
|
|
67
|
+
// ============================================================================
|
|
68
|
+
/**
|
|
69
|
+
* List all workflows
|
|
70
|
+
*/
|
|
71
|
+
async listWorkflows() {
|
|
72
|
+
const response = await this.request('/api/v1/workflows');
|
|
73
|
+
return response.data;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get workflow by ID
|
|
77
|
+
*/
|
|
78
|
+
async getWorkflow(workflowId, useCache = true) {
|
|
79
|
+
const cacheKey = `workflow:${workflowId}`;
|
|
80
|
+
if (useCache) {
|
|
81
|
+
const cached = this.getFromCache(cacheKey);
|
|
82
|
+
if (cached)
|
|
83
|
+
return cached;
|
|
84
|
+
}
|
|
85
|
+
const workflow = await this.request(`/api/v1/workflows/${workflowId}`);
|
|
86
|
+
this.setCache(cacheKey, workflow);
|
|
87
|
+
return workflow;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Execute a workflow
|
|
91
|
+
*/
|
|
92
|
+
async executeWorkflow(workflowId, data) {
|
|
93
|
+
return this.request(`/api/v1/workflows/${workflowId}/execute`, {
|
|
94
|
+
method: 'POST',
|
|
95
|
+
body: data ? JSON.stringify({ data }) : undefined,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Activate a workflow
|
|
100
|
+
*/
|
|
101
|
+
async activateWorkflow(workflowId) {
|
|
102
|
+
return this.request(`/api/v1/workflows/${workflowId}/activate`, { method: 'POST' });
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Deactivate a workflow
|
|
106
|
+
*/
|
|
107
|
+
async deactivateWorkflow(workflowId) {
|
|
108
|
+
return this.request(`/api/v1/workflows/${workflowId}/deactivate`, { method: 'POST' });
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a new workflow
|
|
112
|
+
* Accepts workflow without id, createdAt, updatedAt (server will generate these)
|
|
113
|
+
*/
|
|
114
|
+
async createWorkflow(workflow) {
|
|
115
|
+
return this.request('/api/v1/workflows', {
|
|
116
|
+
method: 'POST',
|
|
117
|
+
body: JSON.stringify(workflow),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Update an existing workflow
|
|
122
|
+
*/
|
|
123
|
+
async updateWorkflow(workflowId, workflow) {
|
|
124
|
+
// Invalidate cache
|
|
125
|
+
this.cache.delete(`workflow:${workflowId}`);
|
|
126
|
+
return this.request(`/api/v1/workflows/${workflowId}`, {
|
|
127
|
+
method: 'PUT',
|
|
128
|
+
body: JSON.stringify(workflow),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Delete a workflow
|
|
133
|
+
*/
|
|
134
|
+
async deleteWorkflow(workflowId) {
|
|
135
|
+
// Invalidate cache
|
|
136
|
+
this.cache.delete(`workflow:${workflowId}`);
|
|
137
|
+
await this.request(`/api/v1/workflows/${workflowId}`, { method: 'DELETE' });
|
|
138
|
+
}
|
|
139
|
+
// ============================================================================
|
|
140
|
+
// Execution Operations
|
|
141
|
+
// ============================================================================
|
|
142
|
+
/**
|
|
143
|
+
* List executions
|
|
144
|
+
*/
|
|
145
|
+
async listExecutions(filters) {
|
|
146
|
+
const params = new URLSearchParams();
|
|
147
|
+
if (filters?.workflowId)
|
|
148
|
+
params.set('workflowId', filters.workflowId);
|
|
149
|
+
if (filters?.status)
|
|
150
|
+
params.set('status', filters.status);
|
|
151
|
+
if (filters?.limit)
|
|
152
|
+
params.set('limit', filters.limit.toString());
|
|
153
|
+
const query = params.toString();
|
|
154
|
+
const path = query ? `/api/v1/executions?${query}` : '/api/v1/executions';
|
|
155
|
+
const response = await this.request(path);
|
|
156
|
+
return response.data;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get execution by ID
|
|
160
|
+
*/
|
|
161
|
+
async getExecution(executionId) {
|
|
162
|
+
return this.request(`/api/v1/executions/${executionId}`);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Delete execution
|
|
166
|
+
*/
|
|
167
|
+
async deleteExecution(executionId) {
|
|
168
|
+
await this.request(`/api/v1/executions/${executionId}`, { method: 'DELETE' });
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Wait for execution to complete
|
|
172
|
+
*/
|
|
173
|
+
async waitForExecution(executionId, timeout = 30000, pollInterval = 1000) {
|
|
174
|
+
const startTime = Date.now();
|
|
175
|
+
while (Date.now() - startTime < timeout) {
|
|
176
|
+
const execution = await this.getExecution(executionId);
|
|
177
|
+
if (execution.finished) {
|
|
178
|
+
return execution;
|
|
179
|
+
}
|
|
180
|
+
await this.sleep(pollInterval);
|
|
181
|
+
}
|
|
182
|
+
throw new Error(`Execution ${executionId} did not complete within ${timeout}ms`);
|
|
183
|
+
}
|
|
184
|
+
// ============================================================================
|
|
185
|
+
// Credential Operations
|
|
186
|
+
// ============================================================================
|
|
187
|
+
/**
|
|
188
|
+
* List credentials (metadata only, no secrets)
|
|
189
|
+
*/
|
|
190
|
+
async listCredentials() {
|
|
191
|
+
const response = await this.request('/api/v1/credentials');
|
|
192
|
+
return response.data;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get credential by ID (metadata only)
|
|
196
|
+
*/
|
|
197
|
+
async getCredential(credentialId) {
|
|
198
|
+
return this.request(`/api/v1/credentials/${credentialId}`);
|
|
199
|
+
}
|
|
200
|
+
// ============================================================================
|
|
201
|
+
// Health & Status
|
|
202
|
+
// ============================================================================
|
|
203
|
+
/**
|
|
204
|
+
* Check n8n API health
|
|
205
|
+
*/
|
|
206
|
+
async healthCheck() {
|
|
207
|
+
try {
|
|
208
|
+
// n8n doesn't have a dedicated health endpoint, so we check workflows
|
|
209
|
+
await this.request('/api/v1/workflows?limit=1');
|
|
210
|
+
return { status: 'ok' };
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
return { status: 'error' };
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Test API connectivity
|
|
218
|
+
*/
|
|
219
|
+
async testConnection() {
|
|
220
|
+
try {
|
|
221
|
+
const health = await this.healthCheck();
|
|
222
|
+
return health.status === 'ok';
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// ============================================================================
|
|
229
|
+
// Private Methods
|
|
230
|
+
// ============================================================================
|
|
231
|
+
/**
|
|
232
|
+
* Make HTTP request with retry logic
|
|
233
|
+
* Supports both API key auth (Public API) and session cookie auth (Internal REST API)
|
|
234
|
+
*/
|
|
235
|
+
async request(path, options = {}) {
|
|
236
|
+
// Initialize session if configured and not yet initialized
|
|
237
|
+
if (this.config.sessionAuth && !this.sessionInitialized) {
|
|
238
|
+
await this.initSession();
|
|
239
|
+
}
|
|
240
|
+
// Determine which API to use based on authentication method
|
|
241
|
+
const useSessionAuth = this.sessionCookie && path.startsWith('/api/v1/');
|
|
242
|
+
// Convert Public API paths to Internal REST paths if using session auth
|
|
243
|
+
let apiPath = path;
|
|
244
|
+
if (useSessionAuth) {
|
|
245
|
+
apiPath = path.replace('/api/v1/', '/rest/');
|
|
246
|
+
}
|
|
247
|
+
const url = `${this.config.baseUrl}${apiPath}`;
|
|
248
|
+
const headers = {
|
|
249
|
+
'Content-Type': 'application/json',
|
|
250
|
+
...(options.headers || {}),
|
|
251
|
+
};
|
|
252
|
+
// Add authentication header
|
|
253
|
+
if (this.sessionCookie && useSessionAuth) {
|
|
254
|
+
headers['Cookie'] = `n8n-auth=${this.sessionCookie}`;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
headers['X-N8N-API-KEY'] = this.config.apiKey;
|
|
258
|
+
}
|
|
259
|
+
let lastError = null;
|
|
260
|
+
for (let attempt = 0; attempt <= this.config.retries; attempt++) {
|
|
261
|
+
try {
|
|
262
|
+
const controller = new AbortController();
|
|
263
|
+
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
264
|
+
const response = await fetch(url, {
|
|
265
|
+
...options,
|
|
266
|
+
headers,
|
|
267
|
+
signal: controller.signal,
|
|
268
|
+
});
|
|
269
|
+
clearTimeout(timeoutId);
|
|
270
|
+
if (!response.ok) {
|
|
271
|
+
const errorBody = await response.text();
|
|
272
|
+
let errorMessage;
|
|
273
|
+
try {
|
|
274
|
+
const errorJson = JSON.parse(errorBody);
|
|
275
|
+
errorMessage = errorJson.message || errorJson.error || response.statusText;
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
errorMessage = errorBody || response.statusText;
|
|
279
|
+
}
|
|
280
|
+
// If API key auth fails with 401, try session auth
|
|
281
|
+
if (response.status === 401 && !useSessionAuth && this.config.sessionAuth && !this.sessionCookie) {
|
|
282
|
+
const sessionInitialized = await this.initSession();
|
|
283
|
+
if (sessionInitialized) {
|
|
284
|
+
// Retry with session auth
|
|
285
|
+
return this.request(path, options);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
throw new N8nAPIError(`N8n API error: ${errorMessage}`, response.status, path);
|
|
289
|
+
}
|
|
290
|
+
// Handle empty responses
|
|
291
|
+
const text = await response.text();
|
|
292
|
+
if (!text) {
|
|
293
|
+
return {};
|
|
294
|
+
}
|
|
295
|
+
// Internal REST API wraps data in { data: ... }
|
|
296
|
+
const parsed = JSON.parse(text);
|
|
297
|
+
// Normalize response format (Public API vs Internal REST API)
|
|
298
|
+
if (useSessionAuth && parsed.data !== undefined && !path.includes('?')) {
|
|
299
|
+
// Internal REST API wraps single resources in { data: ... }
|
|
300
|
+
// But not for list endpoints (which already return arrays)
|
|
301
|
+
if (Array.isArray(parsed.data)) {
|
|
302
|
+
return { data: parsed.data };
|
|
303
|
+
}
|
|
304
|
+
return parsed.data;
|
|
305
|
+
}
|
|
306
|
+
return parsed;
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
lastError = error;
|
|
310
|
+
// Don't retry on client errors (4xx) except 401 which we handle above
|
|
311
|
+
if (error instanceof N8nAPIError && error.statusCode >= 400 && error.statusCode < 500 && error.statusCode !== 401) {
|
|
312
|
+
throw error;
|
|
313
|
+
}
|
|
314
|
+
// Wait before retry with exponential backoff
|
|
315
|
+
if (attempt < this.config.retries) {
|
|
316
|
+
await this.sleep(Math.pow(2, attempt) * 1000);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
throw lastError || new Error('Request failed after retries');
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get item from cache
|
|
324
|
+
*/
|
|
325
|
+
getFromCache(key) {
|
|
326
|
+
const cached = this.cache.get(key);
|
|
327
|
+
if (!cached)
|
|
328
|
+
return null;
|
|
329
|
+
if (Date.now() - cached.timestamp > this.cacheTTL) {
|
|
330
|
+
this.cache.delete(key);
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
return cached.data;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Set item in cache
|
|
337
|
+
*/
|
|
338
|
+
setCache(key, data) {
|
|
339
|
+
this.cache.set(key, { data, timestamp: Date.now() });
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Clear cache
|
|
343
|
+
*/
|
|
344
|
+
clearCache() {
|
|
345
|
+
this.cache.clear();
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Sleep utility
|
|
349
|
+
*/
|
|
350
|
+
sleep(ms) {
|
|
351
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
exports.N8nAPIClient = N8nAPIClient;
|
|
355
|
+
/**
|
|
356
|
+
* Custom error class for N8n API errors
|
|
357
|
+
*/
|
|
358
|
+
class N8nAPIError extends Error {
|
|
359
|
+
constructor(message, statusCode, path) {
|
|
360
|
+
super(message);
|
|
361
|
+
this.statusCode = statusCode;
|
|
362
|
+
this.path = path;
|
|
363
|
+
this.name = 'N8nAPIError';
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
exports.N8nAPIError = N8nAPIError;
|
|
367
|
+
//# sourceMappingURL=N8nAPIClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N8nAPIClient.js","sourceRoot":"","sources":["../../../src/agents/n8n/N8nAPIClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* N8n Audit Persistence Layer
|
|
3
|
+
*
|
|
4
|
+
* Provides persistent storage and reporting for n8n workflow audit results:
|
|
5
|
+
* - Store security audit results to SQLite/PostgreSQL
|
|
6
|
+
* - Store node validation results
|
|
7
|
+
* - Generate audit reports in multiple formats (JSON, HTML, PDF)
|
|
8
|
+
* - Historical trend analysis
|
|
9
|
+
* - Compliance tracking over time
|
|
10
|
+
*/
|
|
11
|
+
import { SecurityAuditResult } from './types';
|
|
12
|
+
import { NodeValidationResult } from './N8nNodeValidatorAgent';
|
|
13
|
+
export interface AuditRecord {
|
|
14
|
+
id: string;
|
|
15
|
+
workflowId: string;
|
|
16
|
+
workflowName: string;
|
|
17
|
+
auditType: 'security' | 'validation' | 'compliance' | 'performance';
|
|
18
|
+
timestamp: Date;
|
|
19
|
+
result: SecurityAuditResult | NodeValidationResult;
|
|
20
|
+
metadata: {
|
|
21
|
+
agentVersion: string;
|
|
22
|
+
n8nVersion?: string;
|
|
23
|
+
environment?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface AuditSummary {
|
|
27
|
+
workflowId: string;
|
|
28
|
+
workflowName: string;
|
|
29
|
+
totalAudits: number;
|
|
30
|
+
lastAuditDate: Date;
|
|
31
|
+
averageRiskScore: number;
|
|
32
|
+
riskTrend: 'improving' | 'stable' | 'degrading';
|
|
33
|
+
criticalFindings: number;
|
|
34
|
+
highFindings: number;
|
|
35
|
+
owaspCompliance: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ReportOptions {
|
|
38
|
+
format: 'json' | 'html' | 'markdown' | 'csv';
|
|
39
|
+
includeRemediation?: boolean;
|
|
40
|
+
includeHistory?: boolean;
|
|
41
|
+
timeRange?: {
|
|
42
|
+
start: Date;
|
|
43
|
+
end: Date;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface TrendData {
|
|
47
|
+
date: Date;
|
|
48
|
+
riskScore: number;
|
|
49
|
+
criticalCount: number;
|
|
50
|
+
highCount: number;
|
|
51
|
+
mediumCount: number;
|
|
52
|
+
lowCount: number;
|
|
53
|
+
owaspScore: number;
|
|
54
|
+
}
|
|
55
|
+
export interface PersistenceConfig {
|
|
56
|
+
type: 'sqlite' | 'postgres' | 'memory';
|
|
57
|
+
connectionString?: string;
|
|
58
|
+
tableName?: string;
|
|
59
|
+
}
|
|
60
|
+
export declare class N8nAuditPersistence {
|
|
61
|
+
private readonly config;
|
|
62
|
+
private records;
|
|
63
|
+
private initialized;
|
|
64
|
+
constructor(config?: PersistenceConfig);
|
|
65
|
+
/**
|
|
66
|
+
* Initialize the persistence layer
|
|
67
|
+
*/
|
|
68
|
+
initialize(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Store security audit result
|
|
71
|
+
*/
|
|
72
|
+
storeSecurityAudit(result: SecurityAuditResult, metadata?: AuditRecord['metadata']): Promise<string>;
|
|
73
|
+
/**
|
|
74
|
+
* Store node validation result
|
|
75
|
+
*/
|
|
76
|
+
storeValidationResult(result: NodeValidationResult, workflowName: string, metadata?: AuditRecord['metadata']): Promise<string>;
|
|
77
|
+
/**
|
|
78
|
+
* Get audit history for a workflow
|
|
79
|
+
*/
|
|
80
|
+
getAuditHistory(workflowId: string, options?: {
|
|
81
|
+
auditType?: AuditRecord['auditType'];
|
|
82
|
+
limit?: number;
|
|
83
|
+
offset?: number;
|
|
84
|
+
}): Promise<AuditRecord[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Get latest audit for a workflow
|
|
87
|
+
*/
|
|
88
|
+
getLatestAudit(workflowId: string, auditType?: AuditRecord['auditType']): Promise<AuditRecord | null>;
|
|
89
|
+
/**
|
|
90
|
+
* Get audit summary for a workflow
|
|
91
|
+
*/
|
|
92
|
+
getAuditSummary(workflowId: string): Promise<AuditSummary | null>;
|
|
93
|
+
/**
|
|
94
|
+
* Get risk trend data for visualization
|
|
95
|
+
*/
|
|
96
|
+
getTrendData(workflowId: string, days?: number): Promise<TrendData[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Generate audit report
|
|
99
|
+
*/
|
|
100
|
+
generateReport(workflowId: string, options: ReportOptions): Promise<string>;
|
|
101
|
+
/**
|
|
102
|
+
* Get all workflow summaries
|
|
103
|
+
*/
|
|
104
|
+
getAllSummaries(): Promise<AuditSummary[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Delete old audit records
|
|
107
|
+
*/
|
|
108
|
+
pruneRecords(olderThanDays: number): Promise<number>;
|
|
109
|
+
private ensureInitialized;
|
|
110
|
+
private generateId;
|
|
111
|
+
private saveRecord;
|
|
112
|
+
private createTables;
|
|
113
|
+
private generateJsonReport;
|
|
114
|
+
private generateHtmlReport;
|
|
115
|
+
private generateMarkdownReport;
|
|
116
|
+
private generateCsvReport;
|
|
117
|
+
}
|
|
118
|
+
export declare function getDefaultPersistence(): N8nAuditPersistence;
|
|
119
|
+
export declare function setDefaultPersistence(config: PersistenceConfig): N8nAuditPersistence;
|
|
120
|
+
//# sourceMappingURL=N8nAuditPersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"N8nAuditPersistence.d.ts","sourceRoot":"","sources":["../../../src/agents/n8n/N8nAuditPersistence.ts"],"names":[],"mappings":"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"}
|