chore: Bundle 2026-W9 - #27532
chore: Bundle 2026-W9#27532
Conversation
* fix: Improve property handling in ldap node search operation (#33) * fix: Escape special characters in ldap search * add tests for ldap node * Apply suggestion * add tests * fix: Improve query operations in sql agend node (#34) * fix: Improve query operations in sql agend node * improve keyword detection * refactor(Data Table Node): Return early if Order By column does not exist (#37) * fix: Improve domain restrictions for HTTP Request Node (#35) * fix: Block domains that are not whitelisted on redirects and pagination requests * test: request-helper-functions tests * test: GenericFunctions tests for HttpRequest node * refactor: Tests * fix: Make prop required * fix: Make sure only one credential can be set in HTTP request node v1 * refactor: Clean up Chat Trigger template rendering (#36) * fix(Merge Node): Improve sandbox robustness (#38) * fix(Merge Node): Improve sandbox robustness Made-with: Cursor * Fix formatting * fix(core): Add missing headers to binary data responses (#41) Set Content-Disposition and Content-Security-Policy headers on all binary data endpoint responses, consistent with how other endpoints already handle these headers. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * refactor(core): Improve credential resolution logic (no-changelog) (#43) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * refactor(core): Improve http request debugging (#45) * feat(core): Improve variables endpoint (#47) * fix(Google Workspace Admin Node): Validate additional fields for user creation and update (#46) * fix: Validate properties before setting them * fix: Handle when schema name was invalid * test: Add tests * fix: Use Object.hasOwn * fix: Improve mcp oAuth client registration (#48) * fix: Improve mcp oAuth client registration * 👌 Prevent race condition, remove hard-coded name constraint * 👌 Remove `MAX_GRANT_TYPES`, move `MAX_REGISTERED_CLIENTS` to env * Update packages/cli/src/modules/mcp/mcp-oauth-service.ts Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * 👕 Add missing mocks * 👕 Add missing constants * ✔️ Update tests * refactor: Extract client limit enforcement into dedicated method * refactor: Resolve McpSettingsService at module level in OAuth controller * revert: Remove column length constraint that requires a migration --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> * run format * Remove circural dependencies caused by merges * Fix axios-utils tests * Only run benchmark in public repository * Fix unit tests after merge --------- Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
There was a problem hiding this comment.
4 issues found across 50 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="packages/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts">
<violation number="1" location="packages/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts:100">
P1: Do not swallow all `page.goto` errors here; it can make the XSS test pass even when the attack URL was never actually loaded.</violation>
</file>
<file name="packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/execute.ts">
<violation number="1" location="packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/execute.ts:47">
P1: String-literal stripping uses backslash escaping (`\'`) but standard SQL (PostgreSQL, SQLite) escapes quotes by doubling (`''`). An LLM-generated query like `SELECT 'foo\' FROM t; DELETE FROM users; SELECT 'x'` bypasses the check: the regex consumes `DELETE` as part of a "string" while PostgreSQL executes it as live SQL.
Consider also stripping SQL-standard doubled-quote strings, e.g., by replacing `''` inside quotes first, or by using a pattern that accounts for both escape styles.</violation>
</file>
<file name="packages/core/src/execution-engine/node-execution-context/utils/request-helpers/axios-utils.ts">
<violation number="1" location="packages/core/src/execution-engine/node-execution-context/utils/request-helpers/axios-utils.ts:24">
P2: Use `ExpressionError` instead of `ApplicationError` for this user-facing validation failure.
(Based on your team's feedback about using ExpressionError instead of deprecated ApplicationError for user-facing expression errors.) [FEEDBACK_USED]</violation>
</file>
<file name="packages/cli/src/public-api/v1/shared/services/pagination.service.ts">
<violation number="1" location="packages/cli/src/public-api/v1/shared/services/pagination.service.ts:53">
P2: Handle `limit <= 0` in `paginateArray`; otherwise the generated next cursor can repeat the same offset forever (e.g. `limit=0`).</violation>
</file>
Architecture diagram
sequenceDiagram
participant Client as External Client / UI
participant API as API / Express Controllers
participant Guard as NEW: Security Guards / Middleware
participant Service as MCP / Workflow / Binary Service
participant Engine as Execution Engine (Nodes)
participant DB as Database / Repositories
Note over Client, DB: MCP OAuth Registration & Authorization
Client->>API: POST /mcp-oauth/register
API->>Guard: NEW: mcpEnabledGuard()
Guard-->>API: Continue if MCP enabled
API->>Service: McpOAuthService.registerClient()
Service->>Service: NEW: validateClientRegistration() (URI limits)
Service->>DB: Insert OAuth Client
Service->>DB: NEW: enforceClientLimit() (Max 200)
alt Client Limit Reached
DB-->>Service: Count > Limit
Service->>DB: Rollback (Delete client)
Service-->>API: Error 403
else Success
Service-->>API: 201 Created
end
API-->>Client: Return Client Credentials
Note over Client, DB: Binary Data Access (Security fix)
Client->>API: GET /rest/binary-data (action=download)
API->>Service: BinaryDataController.getBinaryData()
Service->>API: CHANGED: Set CSP & Content-Disposition
Note right of API: NEW: apply getWebhookSandboxCSP()<br/>CHANGED: Enforce 'attachment' if no filename
API-->>Client: Stream file with security headers
Note over Client, DB: Node Execution (SQL & Domain Security)
Engine->>Engine: NEW: detectBlockedSqlKeyword()
alt SQL Agent Flow
Engine->>Engine: NEW: Wrap 'query-sql' tool in DynamicTool
Engine->>Engine: Check for INSERT/UPDATE/DELETE/DROP
alt Blocked Keyword Found
Engine-->>Client: Error: SQL operation not allowed
end
end
Engine->>Engine: CHANGED: getAllowedDomains(credential)
alt HTTP Request Flow
Engine->>Engine: NEW: throwIfDomainNotAllowed()
opt Redirect
Engine->>Engine: NEW: beforeRedirect() check domain
end
end
Note over Client, DB: Workflow Management (Project Scoping)
Client->>API: Import / Create Workflow
API->>Service: WorkflowCreationService.replaceInvalidCredentials()
Service->>DB: CHANGED: findByNameAndTypeInProject(name, type, projectId)
Note right of DB: Prevent cross-project credential leakage<br/>during workflow resolution.
DB-->>Service: Return project-scoped credential
Service-->>API: Workflow ready
API-->>Client: Success
Note over Engine, DB: LDAP & SQL Sandbox Injection Prevention
Engine->>Engine: NEW: Ldap.escapeValue() for searchText/attributes
Engine->>Engine: NEW: Block fetch/XHR in AlaSql SQL Sandbox
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Bundle ReportBundle size has no change ✅ Affected Assets, Files, and Routes:view changes for bundle: editor-ui-esmAssets Changed:
|
Merging this PR will not alter performance
Comparing Footnotes
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> (cherry picked from commit 2d9a2ec)
|
Successfully created backport PR for |
|
Created backport PR for
Please cherry-pick the changes locally and resolve any conflicts. git fetch origin backport-27532-to-release-candidate/2.13.x
git worktree add --checkout .worktree/backport-27532-to-release-candidate/2.13.x backport-27532-to-release-candidate/2.13.x
cd .worktree/backport-27532-to-release-candidate/2.13.x
git reset --hard HEAD^
git cherry-pick -x 2d9a2ec76e180b54e8091e31b1e0638c909abd99
git push --force-with-lease |
|
Created backport PR for
Please cherry-pick the changes locally and resolve any conflicts. git fetch origin backport-27532-to-1.x
git worktree add --checkout .worktree/backport-27532-to-1.x backport-27532-to-1.x
cd .worktree/backport-27532-to-1.x
git reset --hard HEAD^
git cherry-pick -x 2d9a2ec76e180b54e8091e31b1e0638c909abd99
git push --force-with-lease |
Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> (cherry picked from commit 2d9a2ec)
Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> (cherry picked from commit 2d9a2ec)
|
Got released with |
* ci: Unify QA metrics pipeline to single webhook, format, and BigQuery table (no-changelog) (n8n-io#27111) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(core): Add chat hub settings to disable Responses API and change memory context window (n8n-io#26525) * fix: Partial execution of Chat node and Chat tool (n8n-io#26334) * fix(editor): Update StopManyExecs modal formatting, (n8n-io#26994) * fix(editor): Show warning toast when executed node was not reached (n8n-io#27094) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: Update PR template with new backport labels (n8n-io#27123) Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * feat(core): Wire builtin globals onto __data in VM expression isolate (n8n-io#26954) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(editor): Prevent clicks on pinned rows in data tables (n8n-io#26347) * fix(core): Retry multi-main follower license check during startup (n8n-io#26990) * chore(core): Add additional validation on resolver config and better error specs (n8n-io#27013) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(core): Preserve nested proxy/redirect shape in log streaming webhook (n8n-io#27109) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(editor): Command bar wasn't finding any workflows (n8n-io#26788) * chore(editor): Add A/A exp to validate experimentation system (no-changelog) (n8n-io#26387) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Romeo Balta <7095569+romeobalta@users.noreply.github.com> * fix(editor): Remove inconsistent scrim on node creator open (n8n-io#27086) * fix(core): Emit `leader-takeover` on leadership mismatch in `checkLeader` (n8n-io#27126) * chore: Add 1.x branch compatibility to workflow scripts (n8n-io#27153) * refactor(core): Extract global axios config into axios-config.ts (no-changelog) (n8n-io#26852) * fix(core): Handle external hook file paths on Windows (n8n-io#26983) Co-authored-by: Danny Martini <danny@n8n.io> * build: Pin `uuid` in `n8n-workflow` to catalog version (n8n-io#27129) * docs(editor): Add shared design-system AI style review rules (no-changelog) (n8n-io#27008) * fix(editor): Adjust external secrets input styling (n8n-io#27110) * chore(editor): Differentiate canvas and chat hub events (n8n-io#27100) * feat: Enable secure invite links (n8n-io#27107) * fix(core): Add missing fields to public API workflow schema (n8n-io#27157) * fix(editor): Add data to a data table by csv upload (n8n-io#26495) Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: Fix issue with hideOnCloud not working for node display options (n8n-io#27124) Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> * fix(Postgres Node): Expressions are not resolved in v1 (n8n-io#26496) Co-authored-by: yehorkardash <yehor.kardash@n8n.io> * ci: Schedule creation of minor and patch PRs (n8n-io#27199) * ci: Create github releases from mjs scripts (n8n-io#27121) * fix(ai-builder): Show feedback buttons in variant (no-changelog) (n8n-io#27201) * refactor(editor): Migrate NDV panel components to `workflowDocumentStore` (no-changelog) (n8n-io#27158) * refactor(editor): Migrate NDV settings and runData to `workflowDocumentStore` (no-changelog) (n8n-io#27140) * fix(core): Add plain text body to password reset and notification emails (n8n-io#27125) Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(editor): Migrate shared editors and context menu to injectWorkflowDocumentStore (no-changelog) (n8n-io#27207) * fix(core): Use published version for error workflow execution (n8n-io#27196) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(core): Apply execution redaction to real-time push events (no-changelog) (n8n-io#27102) * feat(core): Send user agent for public api events (no-changelog) (n8n-io#27217) * perf(core): Fix slow user mock in cli tests (no-changelog) (n8n-io#27205) * ci: Strip backport information from commit labels on changelog (n8n-io#27203) * feat: Add design principles section to AGENTS.md with the security guidelines (n8n-io#25997) * feat(core): Add structured error responses for authorization failures (n8n-io#27170) * feat(editor): Use server-side search for project sharing dropdowns (n8n-io#27093) * refactor(editor): Re-organise and label design-system stories (no-changelog) (n8n-io#27179) Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * feat(core): Batch public API telemetry events on pulse cycle (n8n-io#27226) Co-authored-by: Daria Staferova <daria.staferova@n8n.io> * fix(editor): Clear resource locator cache after URL redirect creation (n8n-io#27175) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(Execute Workflow Node): Fallback to latest draft if there no active sub-workflow version (n8n-io#27134) * feat(editor): Migrate node composables to use `workflowDocumentStore` directly (no-changelog) (n8n-io#27159) * refactor(editor): Extract workflow document connections facade composable (no-changelog) (n8n-io#27221) Co-authored-by: r00gm <raul00gm@gmail.com> * feat(core): Add filtering parameters to get_execution MCP tool (n8n-io#27192) * fix(editor): Fix markdown list item wrapping in chat messages (no-changelog) (n8n-io#27082) * feat(core): Add search_projects, search_folders MCP tools and folderId to create_workflow (n8n-io#27248) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(core): Stop auto applying credentials for updated MCP workflows (n8n-io#27258) * fix(Jira Node): Add continueOnFail support for all operations (n8n-io#27108) * refactor(editor): Migrate execution and logs composables to `workflowDocumentStore` (no-changelog) (n8n-io#27162) * feat(editor): Display workflow, credential and data table dependencies (n8n-io#26912) Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * feat(editor): Add history version info to execution page (n8n-io#26768) * fix(core): Allow expressions in tool default values on chat hub tools (n8n-io#27167) * fix(editor): Remove toast bottom offset when AI chat panel is open (n8n-io#27132) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * ci: Propagate dependency bumps transitively (n8n-io#27270) * refactor(editor): Migrate canvas operations to `workflowDocumentStore` (no-changelog) (n8n-io#26947) * refactor(editor): Migrate NDV stores and views to `workflowDocumentStore` (no-changelog) (n8n-io#27138) * feat: Add new execution filter by workflow version (n8n-io#26904) * fix(Anthropic Node): Update credential test to use available model (n8n-io#27234) * feat(core): Add project context to execution log metadata (n8n-io#27169) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * feat(core): Introduce expression-based role resolver for SSO claim mapping (no-changelog) (n8n-io#27240) * refactor(editor): Migrate integrations, evaluation, and experiments to `workflowDocumentStore` (no-changelog) (n8n-io#27163) * fix: Fix credential displayNames with missing spaces (n8n-io#27259) * fix(core): Move OIDC SSO provisioning outside user creation transaction (n8n-io#27279) * feat(core): Add node that allows checking dynamic credentials inside node (n8n-io#27165) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(editor): Unify input component background surfaces (n8n-io#27237) * feat(core): Always expose mcp sdk reference as a tool (no-changelog) (n8n-io#27271) * docs: Add .env.local.example template and dotenvx for local dev setup (no-changelog) (n8n-io#27241) * feat(API): Add GET /api/v1/discover endpoint for capability discovery (n8n-io#27014) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(editor): Fix tooltip on credits counter info icon (n8n-io#27244) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(core): Fix unhandled rejection in task broker on runner disconnect (n8n-io#27278) * feat(editor): AI workflow builder setup wizard (n8n-io#26832) Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(Perplexity Node): Update Perplexity node for full API coverage (n8n-io#26970) Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> * feat: Add publish workflow to node-cli (n8n-io#27288) * test: fix scope-lockdown violations in page objects (n8n-io#27326) * ci: Prevent new version patches, if only content is ci changes (n8n-io#27329) * fix(editor): Properly align line after bullet point in Sticky markdown (n8n-io#27231) * chore: Bump @langchain/core to latest (n8n-io#27252) * fix(editor): Properly align line after bullet point in Sticky markdown (n8n-io#27231) * feat: Add `@n8n/cli`: a client CLI to manage n8n from the terminal (n8n-io#26943) Co-authored-by: Daria Staferova <daria.staferova@n8n.io> Co-authored-by: Nikhil Kuriakose <nikhil.kuriakose@n8n.io> * fix(editor): Improve colorings update logic in resolvableHighlighter … (n8n-io#27331) * fix(editor): Fix workflow tag filtering excluding workflows inside folders (n8n-io#27333) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(HTTP Request Node): Fail on non-2xx status codes during pagination with "other" completion (n8n-io#27352) * perf(core): Make webhook cache writes non-blocking (n8n-io#27360) * feat(editor): Pass telemetry source for ai workflow builder executions from setup (no-changelog) (n8n-io#27358) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(core): Fix an issue with workflow execution status (n8n-io#27349) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(Extract from File Node): Skip empty lines in CSV parsing to prevent errors (n8n-io#26511) Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com> * feat(databricks Node): Add basic databricks node (n8n-io#27004) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(Microsoft Agent 365 Trigger Node): Mcp tools logs (n8n-io#27215) * fix(core): Allow expressions in OAuth credential URL fields (n8n-io#27354) Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> * fix(editor): Fix type mismatch (n8n-io#27324) * fix(editor): Support per-corner border radius in N8nInput (n8n-io#27321) Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * fix(editor): Fix stop button size mismatch in split-trigger mode (n8n-io#27328) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Restore animation duration units for design system dialogs (n8n-io#27320) * chore: Add create-issue skill for Linear tickets and GitHub issues (n8n-io#27285) * fix(core): Force full execution data fetching for evaluation test runs (n8n-io#27335) * chore: Update ssh2-sftp-client to 12.1.0 (n8n-io#27210) * fix(AWS Bedrock Chat Model Node): Extract region from modelName ARNs (n8n-io#26972) * refactor(editor): Migrate canvas operations to workflowDocumentStore connections (no-changelog) (n8n-io#27280) * refactor(editor): Migrate NDV settings to workflowDocumentStore connections (no-changelog) (n8n-io#27261) * refactor(editor): Migrate NDV stores and views to `workflowDocumentStore` (no-changelog) (n8n-io#27281) * fix(core): Fix IDOR in test-runs endpoint by consolidating access checks (n8n-io#27305) * refactor(editor): Migrate workflow composables to workflowDocumentStore (connections) (no-changelog) (n8n-io#27263) * feat(core): Add signing key and certificate fields to SAML preferences with encryption and validation (n8n-io#27316) * fix(core): Assign webhook ID to API-created webhook nodes (n8n-io#27161) * feat(core): Add signature validation for waiting webhooks and forms (n8n-io#24159) Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com> * feat(core): Remove license check for API key scopes (n8n-io#27306) Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(editor): Sort loop node outputs by execution order in setup panel (n8n-io#27418) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ai-builder): Include langsmith threadId on traces in code-builder (no-changelog) (n8n-io#27424) * fix(AI Agent Node): Extract tool name correctly for MCP tool calls (n8n-io#27345) * fix(core): Send client_id and client_secret in body for OAuth2 PKCE flow (n8n-io#27366) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(core): Add lint rules for missing node and credential icons (n8n-io#27340) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(Gmail Node): Update draft resource hint (n8n-io#27435) * fix(core): Confirm messages immediately when no destination is listening (n8n-io#27334) Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> * feat(core): Introduce CredentialDependency entity to track credential dependencies (n8n-io#27151) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Irénée <irenee.ajeneza@n8n.io> * docs: Add security fix hygiene guidelines for public artifacts (n8n-io#27441) * refactor(editor): Migrate AI assistant stores to workflowDocumentStore (no-changelog) (n8n-io#26713) * fix(editor): Node references in expressions not updated when the renamed node has quotes (n8n-io#27371) * fix(editor): Add inner content padding to Popover stories (no-changelog) (n8n-io#27430) * fix(core): Disable dynamic banners when diagnostics are disabled (n8n-io#26741) * fix(core): VM test Group G — RCE prevention & expression fixture fixes (n8n-io#27178) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(editor): Prevent toggle animation on Security & Policies page load (n8n-io#27350) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(editor): Show redacted state in execution viewer with reveal flow (n8n-io#26543) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(core): Clean up resolver references on deletion (n8n-io#26524) * ci: Modify immutable commit subject via spreading (n8n-io#27467) * build: Add `import-x/no-extraneous-dependencies` lint rule to `n8n-workflow` (n8n-io#27155) * refactor(editor): Migrate node composables to workflowDocumentStore (connections) (no-changelog) (n8n-io#27318) * chore: Remove mariadb specific code paths (n8n-io#26996) * fix(editor): Use new move-to-folder modal in canvas header (n8n-io#27091) * refactor(core): Extract axios utility helpers into axios-utils (n8n-io#27022) * chore: Lock @types/node to a version in @n8n/cli (n8n-io#27473) * 🚀 Release 2.14.0 (n8n-io#27479) Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com> * ci: Ensure release candidates in release pipeline using the app token (n8n-io#27489) * ci: Remove prerelease tag when promoting previous beta to latest (n8n-io#27490) * feat: Add role mapping rule scopes (n8n-io#27476) * feat(editor): Add canvas-only mode (n8n-io#27184) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: nik8n <niklas@n8n.io> * fix(editor): Fix callout dismiss action in NDV (n8n-io#27496) * fix(core): Add ownership check to MCP OAuth client deletion (n8n-io#27446) * chore: Mark @n8n/cli as beta in package description (n8n-io#27500) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: Remove unneeded peer dependency (n8n-io#27501) * chore: Add create-skill agent skill (n8n-io#27448) * docs: Add README for @n8n/cli package (n8n-io#27510) * fix(core): Correct `process.version` in expression sandbox (n8n-io#26550) Co-authored-by: manusjs <manusjs@users.noreply.github.com> * ci: Create stable release on GitHub promotion (n8n-io#27492) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: Bundle 2026-W9 (n8n-io#27532) Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> * fix(core): Add format validation to source control branch name (n8n-io#27518) * refactor(editor): Migrate workflow composables to use `workflowDocumentStore` (no-changelog) (n8n-io#27265) * fix(core): Include custom headers when loading OpenAI models (n8n-io#27534) * fix(Structured Output Parser Node): Show descriptive error when structured output parser receives empty response (n8n-io#27443) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: Replace vars context with runner.name in composite action (n8n-io#27535) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Improve workflow diff design feedback (n8n-io#27494) * fix(editor): Populate workflowDocumentStore in execution preview iframe (n8n-io#27540) * fix(Basic LLM Chain Node): Fix abort signal handling (n8n-io#27520) * refactor(editor): Migrate shared editors and setup panel connections to workflowDocumentStore (no-changelog) (n8n-io#27423) * fix(editor): Clean up quick connect feature flag and fix first load (n8n-io#27286) * fix(core): Fix execution history when flow includes wait node (n8n-io#27357) * feat(core): Add RoleMappingRule entity and database tables (n8n-io#27440) * fix(editor): Use direct store reference for connections in initializeWorkspace (n8n-io#27552) * fix(core): Fix hard-coded path style in external storage configuration (n8n-io#27553) * feat: PostHog feature flags resolution caching & group support (n8n-io#27525) * feat(core): Workflow level otel (n8n-io#27528) * feat(core): Add Slack signature identifier for dynamic credentials (no-changelog) (n8n-io#27484) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(core): Implement MemoryInstanceStorage for single-instance deployments (no-changelog) (n8n-io#27460) * fix(API): Skip sharing license check when isGlobal value is unchanged (n8n-io#27567) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(core): Replace unbounded expression code cache with LRU (n8n-io#27477) Co-authored-by: Danny Martini <danny@n8n.io> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Correct navigation to evaluation tab (n8n-io#27509) * fix: Implement raw query parameters field for Microsoft SQL node (n8n-io#26355) * fix(Salesforce Node): Fix private key field stripping newlines in JWT credential (n8n-io#27517) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(core): Refresh OAuth2 tokens on 401 during MCP tool calls (n8n-io#26463) Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com> Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com> * ci: Run pnpm pack --dry-run on CI to catch workspace errors (n8n-io#27480) * fix(core): Fix race condition when stopping jobs in queue mode (n8n-io#27211) * chore: Add node-add-oauth skill (no-changelog) (n8n-io#27447) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(Wordpress Node): Add support for OAuth2 (n8n-io#27113) * ci: Add 1.x sync and bundle branch automation for n8n-private (n8n-io#27594) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: Type and order uniqueness (n8n-io#27600) * feat(core): Add Slack signature extractor hook for dynamic credentials (no-changelog) (n8n-io#27485) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(core): Resolve $().item expressions in partial executions (n8n-io#27338) * feat: Add @n8n/agents package (n8n-io#27560) * ci: Don't error on release candidate cleanup when branch is missing (n8n-io#27602) * ci: Use track-specific npm dist-tags on publish (n8n-io#27598) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: Add security publish fix workflow for 1.x branch (n8n-io#27604) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: Detect new unpublished packages after merge and add manual publish workflow (n8n-io#27611) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Fix `/diff` route loading in demo mode (n8n-io#27610) * feat: POST / PATCH /role-mapping-rule endpoints (n8n-io#27569) * fix(Microsoft Outlook Trigger Node): Wrap folder filter in parentheses to ensure correct OData operator precedence (n8n-io#27605) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Fix issue with multi line string handling (n8n-io#27176) * chore: Add n8n Claude Code plugin with setup-mcps skill (n8n-io#27589) * perf(core): Optimize execution deletions for throughput (n8n-io#27336) * feat(core): Add OTEL unhappy path handling and safe trace exporter (n8n-io#27568) Co-authored-by: James Gee <1285296+geemanjs@users.noreply.github.com> * feat(Zammad Node): Add support for updating tickets (n8n-io#16800) Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Jon <jonathan.bennetts@gmail.com> * ci: Pin action to commit SHA and pass secrets via env vars (n8n-io#27622) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: Allow manual execution of release-schedule-patch-prs (n8n-io#27653) * ci: Set initial npm publish to function with it's own token (n8n-io#27620) * feat(core): Implement Test workflow MCP tool (n8n-io#27348) * fix(editor): Fix empty project ID when creating resources using RLC (n8n-io#27544) * feat: GET /role-mapping-rule endpoint (n8n-io#27609) * feat(editor): Implement preview tag for MCP (no-changelog) (n8n-io#27630) * fix(editor): Remove unused options from NDV settings for agent model nodes (n8n-io#27364) * fix(editor): Truncate long workflow names in insights table (n8n-io#27631) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat: Environment var to disable forms pages sandboxing (n8n-io#27409) * feat(core): Move id extraction logic into resolver (no-changelog) (n8n-io#27655) * feat: DELETE /role-mapping-rule endpoint (n8n-io#27608) * fix: Fix issue preventing community nodes re-installing when using a custom registry (n8n-io#26599) * chore: Update n8n-plan skill to save plans and link them in PRs (no-changelog) (n8n-io#27495) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Csaba Tuncsik <csaba.tuncsik@gmail.com> * feat(editor): Replace restore/changes UI with inline version cards (n8n-io#27522) * feat(core): Add Slack credential resolver for dynamic credentials (no-changelog) (n8n-io#27486) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(core): Add public API endpoints for workflow archive and unarchive (n8n-io#27513) * feat: Add normalization after create, update, delete (n8n-io#27669) * chore: Update node popularity data (n8n-io#27400) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(core): Use toString() instead of type cast for password field check (n8n-io#27662) * feat(editor): Support error workflows in workflow dependency (n8n-io#27542) * refactor(core): Extract CommunityPackagesLifecycleService from controller (n8n-io#27636) * feat(editor): Make AI builder test data opt-in via follow-up actions (no-changelog) (n8n-io#27425) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Track workflow archive/unarchive endpoints in API coverage manifest (n8n-io#27738) * feat(ai-builder): Support dataset context and conversation history in evaluations (no-changelog) (n8n-io#27618) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * chore(core): Query executions using a single query intead of two (n8n-io#27081) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * feat(core): Add configurable minimum password length via N8N_PASSWORD_MIN_LENGTH (n8n-io#26953) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(editor): Group agent subnodes into multi-node setup cards (n8n-io#27570) Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(editor): Avoid resource locator cache pollution (n8n-io#27493) * fix(editor): Restore templates sidebar click tracking (n8n-io#27623) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Show tooltip on dependency pill (n8n-io#27545) * feat(core): Add POST /role-mapping-rule/:id/move endpoint for reordering rules (n8n-io#27677) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(editor): Handle chat trigger waiting state in setup cards (n8n-io#27682) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: Disable chromatic, if not in main repo (n8n-io#27747) * refactor: Remove persistBuilderSessions feature flag (n8n-io#27481) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(editor): Use execution data instead of stale NDV state for chat trigger check (n8n-io#27752) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(editor): Update mcp eligibility requirements in workflow settings (no-changelog) (n8n-io#27502) * fix(core): Treat sub-node connections as non-blocking for partial execution root detection (n8n-io#27759) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(core): Fix `/healthz` endpoint when using `N8N_PATH` (n8n-io#27665) * fix(core): Rename data table columns during source control pull (n8n-io#27746) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * ci: Parse pnpm ls with jq to prevent buffer overload (n8n-io#27770) * ci: Prevent buffer overflow in other helper scripts (n8n-io#27774) * fix(core): Remaining VM test fixes — error propagation, proxy traps, and cross-realm assertions (n8n-io#27541) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: Pin provenance to version, not SHA (n8n-io#27785) * 🚀 Release 2.15.0 (n8n-io#27787) Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com> --------- Co-authored-by: Declan Carroll <declan@n8n.io> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Matsu <huhta.matias@gmail.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Danny Martini <danny@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: Tomi Turtiainen <10324676+tomi@users.noreply.github.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Paul Issert <paul@n8n.io> Co-authored-by: Romeo Balta <7095569+romeobalta@users.noreply.github.com> Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Rob Hough <robhough180@gmail.com> Co-authored-by: Stephen Wright <sjw948@gmail.com> Co-authored-by: Daria <daria.staferova@n8n.io> Co-authored-by: Nikhil Kuriakose <nikhilkuria@gmail.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io> Co-authored-by: Jon <jonathan.bennetts@gmail.com> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: yehorkardash <yehor.kardash@n8n.io> Co-authored-by: Benjamin Schroth <68321970+schrothbn@users.noreply.github.com> Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: Raúl Gómez Morales <raul00gm@gmail.com> Co-authored-by: Andreas Fitzek <andreas.fitzek@n8n.io> Co-authored-by: Albert Alises <albert.alises@gmail.com> Co-authored-by: Alexander Gekov <40495748+alexander-gekov@users.noreply.github.com> Co-authored-by: Eugene <eugene@n8n.io> Co-authored-by: Claire <claire.knight@krider.co.uk> Co-authored-by: Elias Meire <elias@meire.dev> Co-authored-by: phyllis-noester <102315132+phyllis-noester@users.noreply.github.com> Co-authored-by: José Braulio González Valido <josebragv@gmail.com> Co-authored-by: Kesku <62210496+kesku@users.noreply.github.com> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Garrit Franke <32395585+garritfra@users.noreply.github.com> Co-authored-by: Jacob Lee <jacoblee93@gmail.com> Co-authored-by: Nikhil Kuriakose <nikhil.kuriakose@n8n.io> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: José Braulio González Valido <jose.gonzalez@n8n.io> Co-authored-by: Arvin A <51036481+DeveloperTheExplorer@users.noreply.github.com> Co-authored-by: krisn0x <10799186+krisn0x@users.noreply.github.com> Co-authored-by: Ali Elkhateeb <ali.elkhateeb@n8n.io> Co-authored-by: Irénée <irenee.ajeneza@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Pinar Kaya <35434040+pkaya89@users.noreply.github.com> Co-authored-by: Csaba Tuncsik <csaba@n8n.io> Co-authored-by: n8n-assistant[bot] <100856346+n8n-assistant[bot]@users.noreply.github.com> Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com> Co-authored-by: nik8n <niklas@n8n.io> Co-authored-by: manusjs <g.mygenie@gmail.com> Co-authored-by: manusjs <manusjs@users.noreply.github.com> Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Krystian Slowik <113608678+krystianslowik@users.noreply.github.com> Co-authored-by: jeanpaul <jeanpaul@users.noreply.github.com> Co-authored-by: Joco-95 <jonathan.codas@n8n.io> Co-authored-by: James Gee <1285296+geemanjs@users.noreply.github.com> Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com> Co-authored-by: Shireen Missi <94372015+ShireenMissi@users.noreply.github.com> Co-authored-by: Ria Scholz <123465523+riascho@users.noreply.github.com> Co-authored-by: Marc Littlemore <MarcL@users.noreply.github.com> Co-authored-by: Csaba Tuncsik <csaba.tuncsik@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Denisf88 <35726765+Denisf88@users.noreply.github.com>
Co-authored-by: Matsu <matias.huhta@n8n.io> Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com> Co-authored-by: Charlie Kolb <charlie@n8n.io> Co-authored-by: RomanDavydchuk <roman.davydchuk@n8n.io> Co-authored-by: Jaakko Husso <jaakko@n8n.io> Co-authored-by: Dawid Myslak <dawid.myslak@gmail.com> Co-authored-by: Svetoslav Dekov <svetoslav.dekov@n8n.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Guillaume Jacquart <jacquart.guillaume@gmail.com> Co-authored-by: Sandra Zollner <sandra.zollner@n8n.io> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Cherry-picked from n8n-private. Original PR: https://github.com/n8n-io/n8n-private/pull/39