Jonathan
105534ba6a
Fix binary data gap
2026-09-08 11:25:09 +01:00
Jonathan
5371661b62
Merge branch 'declarative-trigger-nodes' of github.com:/n8n-io/n8n into declarative-trigger-nodes
2026-09-08 10:59:47 +01:00
Jonathan
b39d921d96
Run a declarative polls function cursor in manual executions
2026-09-08 10:53:00 +01:00
Garrit Franke
cdfa7db240
refactor(Github Trigger Node): Move it onto the declarative webhook surface (no-changelog)
...
Convert `githubTrigger` in place and delete `githubDeclarativeTrigger`. Two
node types put a duplicate entry in the nodes panel and gave existing
workflows nothing, because the declarative twin was a separate node they
could not reach. RSS was already converted in place, so Github was the
outlier.
`checkExists`, `delete` and the delivery handler are now config.
Registration stays a function: Github answers a duplicate URL with 422, and
adopting that hook takes a GET/compare/PATCH sequence with per-status
messages that `create.routing` cannot express. Properties, credentials,
version and the resource locators are untouched, and the lifecycle writes
the same static-data keys, so active webhooks survive the change.
Add two engine options the conversion needs, both general:
- `checkExists.requireKeys` marks a stored hook absent while a key it needs
is empty. A hook kept without its signing secret fails every signature
check, so "present but unusable" has to read as absent or the trigger
serves 401s until someone re-activates by hand.
- `trigger.managedKeys` names the static-data keys a trigger owns. They were
read from `create.store`, so a node using the documented function escape
hatch for `create` silently stopped clearing them on delete and on a
checkExists not-found.
`GithubTriggerHelpers.verifySignature` is dead once the engine verifies
deliveries, so it goes with its test. The node test now drives the
synthesized handler with real HMAC digests, where the old one stubbed
verification out and never checked the signature contract.
Also narrow a trigger union in the RSS test, which stopped `pnpm typecheck`
in nodes-base.
2026-09-08 10:04:21 +02:00
Jonathan
6c90b775d4
Small tweaks
2026-09-08 08:29:20 +01:00
Jonathan
7aaae293a7
Merge branch 'declarative-trigger-nodes' of github.com:/n8n-io/n8n into declarative-trigger-nodes
2026-09-07 16:35:12 +01:00
Jonathan
c2f0da70bb
Inital work on declarative webhook triggers
2026-09-07 16:34:44 +01:00
Garrit Franke
b421d88e38
fix(core): Thread $cursor through routing and harden declarative poll inputs (no-changelog)
2026-09-07 15:22:50 +02:00
Garrit Franke
0008cd58e3
feat(core): Add declarative polling triggers (no-changelog)
...
Add `description.trigger: { type: 'polling' }`. The loader synthesizes
`poll()` from it, so a node needs no trigger code. The runner reuses
`RoutingNode` for the request, exposes `$cursor` to expressions, and
stores the cursor in node static data so durable cursor staging applies.
2026-09-07 11:35:11 +02:00
yehorkardash
5583ba4e2c
feat(core): Support existing credentials in MCP registry ( #37235 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 12:25:00 +00:00
Toni Devine
b6b2a7db17
feat(GraphQL Node): Add support for predefined credential types ( #37671 )
2026-09-03 17:47:06 +00:00
James Martin
69190dddde
feat(editor): Add a new option to output the user details with a chat message trigger (no-changelog) ( #37660 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-03 10:42:59 +00:00
Savelii
9b10838d9e
feat(core): Make the encryption write path pluggable and move the rotation decision into the module ( #37603 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 10:12:18 +00:00
Mike Repeć
903fe572af
fix(core): Execute multi-input nodes re-fired through a loop-back edge in legacy order ( #37561 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 07:48:00 +00:00
enzopiccolino-commits
7c21f4b47c
fix(core): Forward all output branches when a waiting webhook node resumes ( #31714 )
...
Co-authored-by: angtho <angtho@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Mat Leszkiewicz <137778020+mleszkiewicz@users.noreply.github.com>
Co-authored-by: Elias Meire <elias@meire.dev>
2026-09-03 07:42:17 +00:00
Garrit Franke
a8c9c1d3fc
feat(core): Skip community packages requiring an unsupported node API at startup (no-changelog) ( #37449 )
2026-09-02 14:47:52 +00:00
Garrit Franke
fec7a227c8
feat(core): Add node API version constant and package compatibility helper (no-changelog) ( #37444 )
2026-09-02 14:47:51 +00:00
Stephen Wright
f069c841d3
feat(Jira Node): Add Atlassian Service Account (2LO) authentication ( #37513 )
2026-09-02 13:49:15 +00:00
James Martin
d997348352
feat: Refresh chat OAuth2 access tokens periodically (no-changelog) ( #37541 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: MHMD <45968454+dou-mhmd@users.noreply.github.com>
2026-09-02 11:27:29 +00:00
Savelii
430bbe53c3
feat(core): Always load the encryption module and seed keys safely on startup ( #37416 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 10:28:28 +00:00
n8n-assistant[bot]
cae5e093d3
chore: Bundle 2.x ( #37586 )
...
Co-authored-by: Matsu <matias.huhta@n8n.io>
2026-09-02 08:16:39 +03:00
Tomi Turtiainen
464fb4701a
refactor(core): Extract task data assembly from the execution loop (no-changelog) ( #37386 )
2026-08-31 12:31:35 +00:00
Tomi Turtiainen
530b8a9b09
refactor(core): Extract node error reporting from the execution loop (no-changelog) ( #37385 )
2026-08-31 12:31:35 +00:00
Tomi Turtiainen
4cf6af77fb
refactor(core): Extract the node run block of the execution loop (no-changelog) ( #37384 )
2026-08-31 12:31:34 +00:00
Tomi Turtiainen
05003f028b
refactor(core): Extract the per-node preamble of the execution loop (no-changelog) ( #37383 )
2026-08-31 12:31:33 +00:00
Tomi Turtiainen
ae1d0c44d8
refactor(core): Extract execution setup and bootstrap from the main loop (no-changelog) ( #37382 )
2026-08-31 12:31:33 +00:00
Savelii
a6a28834a3
refactor(core): Deprecate the legacy Cipher encrypt and decrypt methods (no-changelog) ( #37408 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 12:13:51 +00:00
Tomi Turtiainen
5d98bddd6e
refactor(core): Name the execution loop control conditions (no-changelog) ( #37387 )
2026-08-31 10:37:17 +00:00
Veljko Terzic
8fcabd6595
fix(core): Only record sub-node error metadata for nodes that get a run ( #37256 )
2026-08-31 06:40:43 +00:00
Robin Braumann
122ee6d5aa
fix(Chat Trigger Node): Apply authentication to test webhook requests ( #37296 )
...
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 11:43:42 +00:00
Bernhard Wittmann
720f397947
fix(core): Allow a domain-restricted credential to work in its own node ( #37200 )
2026-08-27 14:37:35 +00:00
Danny Martini
946fb02849
feat(core): Give poll triggers an engine-derived time budget (no-changelog) ( #37119 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 13:30:58 +00:00
Pierantonio Cangianiello
f9814b753f
fix(core): Respond with an error when a webhook execution ends before the Respond to Webhook node runs ( #37006 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-27 12:34:52 +00:00
Stephen Wright
86c2a2b20d
fix(core): Surface the original error instead of replaying single-use bodies on OAuth2 401 retry ( #37000 )
2026-08-27 11:24:49 +00:00
Rúben Castro
ca3069f528
feat(core): Wire credentialDecrypt host point (no-changelog) ( #36962 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 08:46:38 +00:00
Lorent Lempereur
b66c3e2a96
refactor: Apply outbound request protection by default (no-changelog) ( #36841 )
...
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-08-26 10:52:56 +00:00
Guillaume Jacquart
9e32ab530e
feat(core): Enforce policy on workflow start (no-changelog) ( #36954 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 09:16:50 +00:00
n8n-release-tag-merge[bot]
c09da09d38
Merge tag 'n8n@2.37.0'
2026-08-25 09:42:46 +00:00
Andreas Fitzek
c33906903a
fix(API): Adapt binary data endpoint ( #36974 )
2026-08-25 08:17:21 +00:00
n8n-assistant[bot]
541a312dc2
🚀 Release 2.37.0 ( #36986 )
...
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-08-25 07:32:14 +00:00
Andreas Fitzek
66d4793c93
feat(core): Verify the trigger identity once and bind it to the execution ( #36599 )
2026-08-21 13:12:02 +00:00
Lorent Lempereur
a24bd90668
feat: Let nodes declare why an operation failed (no-changelog) ( #36531 )
2026-08-21 09:21:29 +00:00
Michael Drury
4f7fbc14d3
feat: Add streaming to Message an Agent workflows ( #36734 )
2026-08-21 09:11:07 +00:00
Michael Drury
9d495dbc56
feat(core): Scope agent sessions to projects ( #36646 )
2026-08-20 11:23:12 +00:00
Danny Martini
365b7036dc
fix(core): Wrap a trigger's closeFunction in an expression isolate at creation time ( #36638 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Mike Repeć <mike.repec@n8n.io>
2026-08-20 08:03:10 +00:00
Veljko Terzic
e95d40732d
fix(core): Serialize community package installs and make downloads non-destructive ( #36505 )
2026-08-20 06:11:13 +00:00
n8n-assistant[bot]
c9f2ee661c
chore: Bundle/2.x ( #36558 )
...
Co-authored-by: Matsu <matias.huhta@n8n.io>
Co-authored-by: Sam Wooler <swooler592@gmail.com>
Co-authored-by: Dimitri Lavrenük <20122620+dlavrenuek@users.noreply.github.com>
Co-authored-by: Bernhard Wittmann <bernhard.wittmann@n8n.io>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Lorent Lempereur <looorent@users.noreply.github.com>
Co-authored-by: yehorkardash <yehor.kardash@n8n.io>
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: mfsiega <93014743+mfsiega@users.noreply.github.com>
Co-authored-by: phyllis-noester <102315132+phyllis-noester@users.noreply.github.com>
Co-authored-by: n8n-assistant[bot] <n8n-assistant[bot]@users.noreply.github.com>
Co-authored-by: Emilia <100027345+sovietspaceship@users.noreply.github.com>
Co-authored-by: Robin Braumann <50590409+bjorger@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-19 07:57:44 +03:00
Guillaume Jacquart
83db64a94e
fix(core): Resolve end-user credentials when loading node parameters ( #36452 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 13:39:48 +00:00
n8n-assistant[bot]
8f82586bba
🚀 Release 2.36.0 ( #36483 )
...
Co-authored-by: Matsuuu <16068444+Matsuuu@users.noreply.github.com>
2026-08-18 08:24:56 +00:00
Lorent Lempereur
b33d0da323
feat(core): Add baseline Prometheus metrics for poll triggers (no-changelog) ( #36250 )
...
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 13:13:25 +00:00