Commit Graph

6 Commits

Author SHA1 Message Date
czlonkowski
e522aec08c refactor: Eliminate DRY violation in n8n API response validation (issue #349)
Refactored defensive response validation from PR #367 to eliminate code duplication
and improve maintainability. Extracted duplicated validation logic into reusable
helper method with comprehensive test coverage.

Key improvements:
- Created validateListResponse<T>() helper method (75% code reduction)
- Added JSDoc documentation for backwards compatibility
- Added 29 comprehensive unit tests (100% coverage)
- Enhanced error messages with limited key exposure (max 5 keys)
- Consistent validation across all list operations

Testing:
- All 74 tests passing (including 29 new validation tests)
- TypeScript compilation successful
- Type checking passed

Related: PR #367, code review findings
Files: n8n-api-client.ts (refactored 4 methods), tests (+237 lines)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
2025-10-25 13:19:23 +02:00
Claude
817bf7d211 fix: Add defensive response validation for n8n API list operations (issue #349)
Addresses "Cannot read properties of undefined (reading 'map')" error
by adding validation and fallback handling for n8n API responses.

Changes:
- Add response structure validation in listWorkflows, listExecutions,
  listCredentials, and listTags methods
- Handle edge case where API returns array directly instead of
  {data: [], nextCursor} wrapper object
- Provide clear error messages when response format is unexpected
- Add logging when using fallback format handling

This fix ensures compatibility with different n8n API versions and
prevents runtime errors when the response structure varies from expected.

Fixes #349

Conceived by Romuald Członkowski - www.aiadvisors.pl/en
2025-10-25 10:48:11 +00:00
czlonkowski
06cbb40213 feat: implement security audit fixes - rate limiting and SSRF protection (Issue #265 PR #2)
This commit implements HIGH-02 (Rate Limiting) and HIGH-03 (SSRF Protection)
from the security audit, protecting against brute force attacks and
Server-Side Request Forgery.

Security Enhancements:
- Rate limiting: 20 attempts per 15 minutes per IP (configurable)
- SSRF protection: Three security modes (strict/moderate/permissive)
- DNS rebinding prevention
- Cloud metadata blocking in all modes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 15:40:07 +02:00
czlonkowski
1cfbdc3bdf feat: implement Phase 5 integration tests (workflow management)
Implemented comprehensive integration tests for workflow deletion and listing:

Test Coverage (16 scenarios):
- delete-workflow.test.ts: 3 tests
  * Successful deletion
  * Error handling for non-existent workflows
  * Cleanup verification

- list-workflows.test.ts: 13 tests
  * No filters (all workflows)
  * Filter by active status (true/false)
  * Filter verification
  * Pagination (first page, cursor, last page)
  * Limit variations (1, 50, 100)
  * Exclude pinned data
  * Empty results
  * Sort order verification

Critical Fixes:
- handleDeleteWorkflow: Now returns deleted workflow data (per n8n API spec)
- handleListWorkflows: Convert tags array to comma-separated string (n8n API format)
- N8nApiClient.deleteWorkflow: Return Workflow object instead of void
- WorkflowListParams.tags: Changed from string[] to string (API expects CSV format)

All 71 integration tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 23:33:10 +02:00
czlonkowski
a1992f9964 feat: add version info to health check and fix healthz endpoint
- Fixed health check to use correct /healthz endpoint instead of /health
- Added MCP version (mcpVersion) and supported n8n version (supportedN8nVersion) to health check response
- Added versionNote field with instructions for AI agents about manual version verification
- n8n API limitation: instance version cannot be determined automatically
- Updated axios usage for healthz endpoint access with proper error handling
2025-07-18 14:01:11 +02:00
czlonkowski
74f05e937f feat: integrate n8n management tools from n8n-manager-for-ai-agents (v2.6.0)
- Added 14 n8n management tools for workflow CRUD and execution management
- Integrated n8n API client with full error handling and validation
- Added conditional tool registration (only when N8N_API_URL configured)
- Complete workflow lifecycle: discover → build → validate → deploy → execute
- Updated documentation and added integration tests
- Maintains backward compatibility - existing functionality unchanged

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26 11:09:09 +02:00