🚀 Release 2.20.0#29761
Merged
Merged
Conversation
Bundle ReportBundle size has no change ✅ |
Contributor
There was a problem hiding this comment.
No issues found across 33 files
Architecture diagram
sequenceDiagram
participant Client as Editor UI / AI Builder
participant API as REST API (n8n)
participant Auth as Auth / RBAC Service
participant WFService as Workflow Service
participant InstanceAI as Instance AI Orchestrator
participant TaskRunner as Task Runner
participant DB as Database (PostgreSQL)
participant Redis as Redis
participant ExtSec as External Secrets Provider
participant MCP as MCP Server
participant LDAP as LDAP Server
participant Slack as Slack OAuth API
participant Email as SMTP / Email Service
Note over Client,Email: n8n 2.20.0 Runtime Architecture
Note over Client,API: AI Builder Workflow Edit Flow
Client->>API: POST /workflows (AI-generated edit)
API->>Auth: Verify scope: workflow:update
alt User has global admin OR is workflow owner
API->>WFService: NEW: Allow edits only on pre-existing workflows
WFService->>DB: Check workflow exists
DB-->>WFService: Workflow record
WFService->>WFService: NEW: Validate output topology vs mode
WFService->>DB: Save workflow (persist context before write)
else Unauthorized scope
API-->>Client: 403 Forbidden
end
Note over API,DB: Execution & Recovery
InstanceAI->>API: Execute workflow via AI
API->>WFService: NEW: Force saving executions when AI-triggered
WFService->>DB: Persist execution context
opt Missing runData during recovery
WFService->>WFService: NEW: Handle missing runData gracefully
end
WFService->>TaskRunner: Dispatch task to runner
TaskRunner->>API: CHANGED: Grant token with configurable TTL (default 30s)
API->>Redis: Reset retry counter on successful reconnect
Note over API,Redis: Encryption Key Bootstrap
API->>API: NEW: Bootstrap legacy CBC + initial GCM keys on startup
API->>DB: Store encryption keys
API->>API: NEW: Wire EncryptionKeyProxy provider
opt Admin settings page
Client->>API: GET /encryption-keys
API->>DB: Query keys (include updatedAt)
API-->>Client: Key list with date range filter
end
Note over API,Slack: OAuth2 with JWE Decryption
Client->>API: POST /oauth2-credential/auth (redirect URL)
API->>Auth: NEW: PreAuthentication support in requestOAuth2 pipeline
Auth->>API: Validated callback
API->>API: NEW: Decrypt JWE from state parameter
API->>Slack: Exchange code for token (with allowed domains check)
Slack-->>API: OAuth token
API->>DB: Save credential (header-based auth for DeepL)
Note over API,ExtSec: Secrets & Configuration
API->>ExtSec: Refresh external secrets
ExtSec-->>API: CHANGED: Timeout on refresh (prevent hang)
API->>API: NEW: Manage MCP settings via env vars
API->>MCP: NEW: Streamable HTTP (GET handler for spec compliance)
Note over API,LDAP: LDAP & Scheduling
API->>LDAP: Search users
LDAP-->>API: CHANGED: Corrected filter construction
API->>DB: NEW: Warn and skip duplicate scheduled executions
API->>DB: NEW: Cap day-of-month jitter at 28 for Schedule Node
Note over Client: Frontend (Editor)
Client->>Client: NEW: Ignore paste events on read-only canvas
Client->>Client: NEW: Track IdP role mapping in provisioning telemetry
Client->>Client: NEW: Hide model selector for unsupported AI Gateway actions
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
sinehypernova-0718
pushed a commit
to sinehypernova-0718/n8n
that referenced
this pull request
May 8, 2026
Co-authored-by: Matsuuu <[email protected]>
sinehypernova-0718
pushed a commit
to sinehypernova-0718/n8n
that referenced
this pull request
May 8, 2026
Co-authored-by: Matsuuu <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
2.20.0 (2026-05-05)
Bug Fixes
Features