Commit Graph

1940 Commits

Author SHA1 Message Date
Jonathan
105534ba6a
Fix binary data gap 2026-09-08 11:25:09 +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
RomanDavydchuk
bc8e5ea79c
feat(editor): Update node creator empty state and add a link to suggest an MCP service (#37339) 2026-09-03 15:17:19 +00:00
Thanasis G
44ddbbd28c
feat(Databricks Node): Support templated MCP registry server URLs (#37250)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 14:40:34 +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
Milorad FIlipović
1441a4eea2
fix(core): Clean up multipart webhook files (no-changelog) (#37318) 2026-09-03 10:10:18 +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
fec7a227c8
feat(core): Add node API version constant and package compatibility helper (no-changelog) (#37444) 2026-09-02 14:47:51 +00:00
Yen Su
233f1ca0e7
feat(Databricks Node): Add hidden Databricks Chat Model sub-node (#37299) 2026-09-02 14:42:00 +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
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
yehorkardash
a0b2fccc81
refactor: Centralize MCP registry control surface (#37219)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 10:55:57 +00:00
MHMD
f86e11f1dc
feat(core): Add backend chat-trigger message-send gate for end-user credentials (no-changelog) (#37405) 2026-09-01 08:34:56 +00:00
Danny Martini
66c7e4e9cb
feat(core): Add QuickJS expression engine option alongside isolated-vm (no-changelog) (#33969)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-08-31 13:40:28 +00:00
Danny Martini
f77e270ffa
fix(core): Support writes on VM expression lazy proxies via evaluation-scoped copy-on-write (#37262)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 13:13:24 +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
Charlie Kolb
d8ce73c1df
fix(Form Node): Improve error messages for invalid form definition JSON (#37291)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 11:43:19 +00:00
MHMD
1f062f9ec9
feat(core): Chat trigger publish validation & workflow:execute access control (#37231) 2026-08-27 15:45:04 +00:00
mfsiega
dcb57362c4
fix(core): Restore mutating array methods on $json data in expressions (#37172)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 14:51:48 +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
James Martin
b8eacf445f
chore: Add groundwork for OAuth2 protected Chats (no-changelog) (#37045) 2026-08-26 08:06:56 +00:00
Benjamin Schroth
23a5f46d3d
feat(core): Support workflows with Wait nodes as agent tools (#36692) 2026-08-25 11:37:19 +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
Savelii
34224407c2
feat(core): Make form trigger OAuth2 authentication generally available (#36950)
Some checks are pending
Build: Benchmark Image / build (push) Waiting to run
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (26.5.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Lint (push) Waiting to run
CI: Master (Build, Test, Lint) / Performance (push) Waiting to run
CI: Master (Build, Test, Lint) / Verify single-instance deps (npm-install) (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
Util: Publish API Schema / Cloudflare Pages (push) Waiting to run
Co-authored-by: Yuliia Pominchuk <31064937+yuliia-pominchuk@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: James Martin <james.martin@n8n.io>
2026-08-24 17:47:35 +00:00
MHMD
ff2c3915ec
feat(core): Add feature flag for Chat Trigger end-user credentials work (#36811) 2026-08-24 14:54:23 +00:00
Andrew Chen
12a2e38817
fix(core): Keep duplicate connections distinct in the workflow diff (#35652)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: James Gee <1285296+geemanjs@users.noreply.github.com>
2026-08-24 14:41:01 +00:00
Guillaume Jacquart
f34e4c671a
fix(editor): Remove stale credentials from node config when switching credentials (#34937)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 13:01:58 +00:00
Daria
4a971787cb
refactor(core): Deduplicate node group validation helpers across agent (#36810) 2026-08-24 12:37:24 +00:00
Savelii
04dedd60d6
feat(core): Revert - Make form trigger OAuth2 authentication generally available (#36848) 2026-08-21 16:32:30 +00:00
Guillaume Jacquart
047229449a
fix(core): Limit domain restriction errors to the target host (#36836)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 14:43:17 +00:00
Yuliia Pominchuk
2cb6a34045
feat(core): Make form trigger OAuth2 authentication generally available (#36451)
Co-authored-by: Savelii Sychov <savelii.sychov@n8n.io>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 13:12:41 +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
Daria
37aee61ff4
fix(editor): Group output panel warnings to keep it usable (#36619) 2026-08-21 12:36:31 +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
phyllis-noester
bf700d1399
fix(core): Validate chat and MCP trigger auth modes for end-user credentials (#36534) 2026-08-20 10:44:45 +00:00
Mike Repeć
f8084475bb
fix(core): Only init the expression engine for commands that evaluate expressions (#36538)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Danny Martini <danny@n8n.io>
2026-08-19 15:36:45 +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
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
Tomi Turtiainen
e5d3093f78
feat(core): Add engine v2 workflow setting (no-changelog) (#36428) 2026-08-17 11:54:12 +00:00
yehorkardash
ca82fd9827
feat(core): Add new agent slack integration (#35591)
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-08-17 09:27:50 +00:00
Jawad Ali
04e76a3890
feat(core): Deprecate Array.merge from expressions, and add Array.mergeIntoObject (#36161)
Co-authored-by: Emilia <100027345+sovietspaceship@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: Mike Repeć <mike.repec@n8n.io>
2026-08-17 09:25:24 +00:00
yehorkardash
5e5bb317d8
feat: Show scopes for managed OAuth credentials with N8N_MANAGED_OAUTH_SHOW_SCOPES (#36053)
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
2026-08-17 08:08:39 +00:00