chore: bump version to 2.8.3 and update changelog
- Updated version in package.json and package.runtime.json - Updated version badge in README.md - Added comprehensive changelog entry for v2.8.3 - Fixed TypeScript lint errors in test files by making env vars optional - Fixed edge-cases test to include required NODE_ENV 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -178,6 +178,7 @@ The MCP server exposes tools in several categories:
|
|||||||
|
|
||||||
### Agent Interaction Guidelines
|
### Agent Interaction Guidelines
|
||||||
- Sub-agents are not allowed to spawn further sub-agents
|
- Sub-agents are not allowed to spawn further sub-agents
|
||||||
|
- When you use sub-agents, do not allow them to commit and push. That should be done by you
|
||||||
|
|
||||||
# important-instruction-reminders
|
# important-instruction-reminders
|
||||||
Do what has been asked; nothing more, nothing less.
|
Do what has been asked; nothing more, nothing less.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp)
|
[](https://github.com/czlonkowski/n8n-mcp)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp)
|
[](https://github.com/czlonkowski/n8n-mcp)
|
||||||
[](https://www.npmjs.com/package/n8n-mcp)
|
[](https://www.npmjs.com/package/n8n-mcp)
|
||||||
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
||||||
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
||||||
|
|||||||
@@ -5,6 +5,41 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2.8.3] - 2025-07-31
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Docker User Switching**: Fixed critical issue where user switching was completely broken in Alpine Linux containers
|
||||||
|
- Added `su-exec` package for proper privilege dropping in Alpine containers
|
||||||
|
- Fixed broken shell command in entrypoint that used invalid `exec $*` syntax
|
||||||
|
- Fixed non-existent `printf %q` command in Alpine's BusyBox shell
|
||||||
|
- Rewrote user switching logic to properly exec processes with nodejs user
|
||||||
|
- Fixed race condition in database initialization by ensuring lock directory exists
|
||||||
|
- **Docker Integration Tests**: Fixed failing tests due to Alpine Linux ps command behavior
|
||||||
|
- Alpine's BusyBox ps shows numeric UIDs instead of usernames for non-system users
|
||||||
|
- Tests now accept multiple possible values: "nodejs", "1001", or "1" (truncated)
|
||||||
|
- Added proper process user verification instead of relying on docker exec output
|
||||||
|
- Added demonstration test showing docker exec vs main process user context
|
||||||
|
|
||||||
|
### Security
|
||||||
|
- **Command Injection Prevention**: Added comprehensive input validation in n8n-mcp wrapper
|
||||||
|
- Whitelist-based argument validation to prevent command injection
|
||||||
|
- Only allows safe arguments: --port, --host, --verbose, --quiet, --help, --version
|
||||||
|
- Rejects any arguments containing shell metacharacters or suspicious content
|
||||||
|
- **Database Initialization**: Added proper file locking to prevent race conditions
|
||||||
|
- Uses flock for exclusive database initialization
|
||||||
|
- Prevents multiple containers from corrupting database during simultaneous startup
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- **Docker Test Reliability**: Comprehensive fixes for CI environment compatibility
|
||||||
|
- Added Docker image build step in test setup
|
||||||
|
- Fixed environment variable visibility tests to check actual process environment
|
||||||
|
- Fixed user switching tests to check real process user instead of docker exec context
|
||||||
|
- All 18 Docker integration tests now pass reliably in CI
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Docker Base Image**: Updated su-exec installation in Dockerfile for proper user switching
|
||||||
|
- **Error Handling**: Improved error messages and logging in Docker entrypoint script
|
||||||
|
|
||||||
## [2.8.2] - 2025-07-31
|
## [2.8.2] - 2025-07-31
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "n8n-mcp",
|
"name": "n8n-mcp",
|
||||||
"version": "2.8.2",
|
"version": "2.8.3",
|
||||||
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
|
"description": "Integration between n8n workflow automation and Model Context Protocol (MCP)",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "n8n-mcp-runtime",
|
"name": "n8n-mcp-runtime",
|
||||||
"version": "2.8.1",
|
"version": "2.8.3",
|
||||||
"description": "n8n MCP Server Runtime Dependencies Only",
|
"description": "n8n MCP Server Runtime Dependencies Only",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ describe('Docker Config Edge Cases', () => {
|
|||||||
// We need to preserve PATH so node can be found
|
// We need to preserve PATH so node can be found
|
||||||
const output = execSync(`node "${parseConfigPath}" "${configPath}"`, {
|
const output = execSync(`node "${parseConfigPath}" "${configPath}"`, {
|
||||||
encoding: 'utf8',
|
encoding: 'utf8',
|
||||||
env: { PATH: process.env.PATH } // Only include PATH
|
env: { PATH: process.env.PATH, NODE_ENV: 'test' } // Only include PATH and NODE_ENV
|
||||||
});
|
});
|
||||||
|
|
||||||
// Verify all configuration is properly exported with export prefix
|
// Verify all configuration is properly exported with export prefix
|
||||||
|
|||||||
6
types/test-env.d.ts
vendored
6
types/test-env.d.ts
vendored
@@ -11,14 +11,14 @@ declare global {
|
|||||||
TEST_ENVIRONMENT?: string;
|
TEST_ENVIRONMENT?: string;
|
||||||
|
|
||||||
// Database Configuration
|
// Database Configuration
|
||||||
NODE_DB_PATH: string;
|
NODE_DB_PATH?: string;
|
||||||
REBUILD_ON_START?: string;
|
REBUILD_ON_START?: string;
|
||||||
TEST_SEED_DATABASE?: string;
|
TEST_SEED_DATABASE?: string;
|
||||||
TEST_SEED_TEMPLATES?: string;
|
TEST_SEED_TEMPLATES?: string;
|
||||||
|
|
||||||
// API Configuration
|
// API Configuration
|
||||||
N8N_API_URL: string;
|
N8N_API_URL?: string;
|
||||||
N8N_API_KEY: string;
|
N8N_API_KEY?: string;
|
||||||
N8N_WEBHOOK_BASE_URL?: string;
|
N8N_WEBHOOK_BASE_URL?: string;
|
||||||
N8N_WEBHOOK_TEST_URL?: string;
|
N8N_WEBHOOK_TEST_URL?: string;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user