Commit Graph

22648 Commits

Author SHA1 Message Date
Yuliia Pominchuk
32fb2405e5
feat(core): Show a person their own catalog runs
Adds GET /catalog/runs, selected by the marker the run service writes rather
than by workflow, so someone sharing a workflow with colleagues sees only what
they started themselves.

Each entry is projected down from the execution summary. The summary also
carries lastNodeExecuted, per-node statuses and error details, which would hand
node names to someone who was given execute but not read.

Moves the route prefix to /catalog so runs are not addressed as a sub-resource
of workflows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 20:07:55 +02:00
Yuliia Pominchuk
1c7cde1ae9
feat(core): List the workflows a person may run
Adds GET /catalog/workflows, returning each workflow's name, description and
declared input contract — never its nodes or connections. Execute access must
not become a way to obtain the graph.

Workflows with no readable contract are left out rather than shown as broken:
the person browsing cannot fix them, and the builder is the one who needs to
know.

Describing a workflow means reading its trigger through a node context, so the
listing is capped. The cap is reported back as `truncated` and logged, because a
short list that reads as a complete one is worse than an obvious limit.

The finder returns one row per share path, so entries are deduped by id.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:56:20 +02:00
Yuliia Pominchuk
f78b151d7f
feat(core): Run a workflow from the catalog without opening the editor
Adds POST /catalog/workflows/:id/run for people who were granted execute but
not read: the endpoint never returns or requires the graph, and @ProjectScope
rejects before the handler.

The run is a production one even though a person pressed the button. A manual
run would honour a workflow-level "don't save manual executions" and silently
erase their history, and would feed them the builder's pinned test data instead
of a real result.

Values not named by the workflow's declared contract are dropped rather than
passed through, and the execution is tagged with the person who ran it so "my
runs" is a filter over existing execution storage rather than a new column.

Start-node precedence is extracted from findWorkflowStart rather than repeated,
so a catalog run enters a workflow through the same node a sub-workflow call
would.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:26:53 +02:00
Yuliia Pominchuk
0a36cf18a7
feat(core): Read a workflow's declared input contract outside its node
The fields a workflow declares on its Execute Workflow Trigger are what a run
surface renders a form from, so a caller needs them without executing the node.
Adds a service that answers eligibility and schema together — a workflow with no
readable contract cannot be offered for direct running, and the caller should
not have to ask twice.

Moves the extraction from nodes-base into n8n-workflow. It now has several
readers — the parent editor's resource mapper, MCP deriving tool arguments, and
the run surfaces — and they must all see the same fields. nodes-base re-exports
so call sites are unchanged.

A pre-1.1 trigger gates its input-source parameter behind the node version and
therefore declares nothing, which reads as passthrough. That is correct, and
covered.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:18:42 +02:00
Yuliia Pominchuk
bb91a9163d
spike: resolve credentials for an unattended user-bound run
Adds the identity path a run needs when it starts for a user with no session
behind it: a minted, short-lived token names the user, and the authorization a
live session would have carried is re-established at resolution time.

Four checks replace what a session validated implicitly - token signature and
expiry, user still enabled, binding still active, and execute access still
granted. The last one is the only thing that catches a user removed from the
project after granting, since that never touches the binding.

Kept as a member of the existing metadata union rather than a separate
identifier: N8NCredentialResolver injects N8NIdentifier directly, and the three
existing sources already discriminate on metadata.source.

Binding storage is an in-memory stub for the spike. Nothing mints this token
yet, so the path is unreachable at runtime; the stub must be replaced by the
real binding row before any of this is proposed for merge.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:02:46 +02:00
Declan Carroll
23f4cca822
build: Bump Node.js to 24.18.1 and 22.23.2 (#35516)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 14:15:22 +01:00
n8n-cat-bot[bot]
05ebebd8f5
chore: Bump @vitest/browser 4.1.9 → 4.1.10 (patch) to clear 1 Aikido finding (#35514)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 14:14:45 +01:00
Ricardo Espinoza
936cdaa046
refactor(core): Break folder and workflow service dependency cycle (#35225) 2026-08-04 12:56:58 +00:00
Kai
6c8197e379
feat(editor): Add Changes diff tab to workflow review detail pane (#35431) 2026-08-04 12:54:26 +00:00
Lorent Lempereur
40dac4b90a
test: Assert debug mode pinned data with a retrying check (#35512)
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 (22.22.3) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.0) (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) / Notify Slack on failure (push) Blocked by required conditions
Util: Publish API Schema / Cloudflare Pages (push) Waiting to run
2026-08-04 11:24:28 +00:00
Rob Hough
38f069172c
feat(editor): Add ChatMessage to @n8n/design-system (#35461) 2026-08-04 11:07:45 +00:00
mfsiega
c8602ab767
feat(core): Implement step:ready handler in @n8n/engine (no-changelog) (#35184)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 10:52:15 +00:00
José Braulio González Valido
d57a81ac60
fix(ai-builder): Keep model-provider outages out of eval builder scores (no-changelog) (#35293)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 10:52:11 +00:00
Kai
5e4a20d031
feat(core): Surface decision eligibility on the review detail (#35391)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 10:52:07 +00:00
Arvin A
8bdf69eb23
refactor(core): Tidy agent-eval runner and rating-persistence internals (no-changelog) (#35424) 2026-08-04 10:42:20 +00:00
n8n-cat-bot[bot]
1a2ea82626
chore: Persist Trivy scan results as a build artifact (#35506)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 10:41:45 +00:00
Iván Ovejero
f007542520
feat(core): Report database version in telemetry (no-changelog) (#35428) 2026-08-04 10:39:18 +00:00
Rob Hough
9f43b10959
chore(editor): Move Checkbox story to Core (no-changelog) (#35430) 2026-08-04 10:26:51 +00:00
Matsu
d077816742
ci: Ping release captain on new package hitting master (#35504) 2026-08-04 09:58:47 +00:00
Charlie Kolb
e41aae0fb6
ci: Show workflow_dispatch inputs in workflow run names (#35496)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 09:46:14 +00:00
Alexander Gekov
935cfb912e
feat(core): Gate n8n Connect with instance config (#35007)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 09:22:06 +00:00
Stephen Wright
03213e7466
fix(Kafka Trigger Node): Stop consumers reliably when a workflow is deactivated or updated (#35069)
Co-authored-by: Thanasis Gkliatis <thanasis.gkliatis@n8n.io>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 09:21:00 +00:00
Nour Alhadi Mahmoud
3b89fef4f4
feat(core): Add create-with-value variable policy for package import (no-changelog) (#34895)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 09:12:27 +00:00
Alex Grozav
cb0a806ee1
test: Repair vi.mock specifiers that no longer resolve (no-changelog) (#35491)
Co-authored-by: multica-agent <github@multica.ai>
2026-08-04 08:55:18 +00:00
oleg
120678011d
fix(editor): Lock the AI Assistant canvas while the agent is working (#35339) 2026-08-04 08:35:22 +00:00
Arvin A
d5845df4fc
fix(AI Agent Node): Stop pre-tool-call text leaking into agent responses (#35212) 2026-08-04 08:06:04 +00:00
Tomi Turtiainen
cdd6a737ff
test: Make Playwright notification waits assert instead of silently passing (#35325) 2026-08-04 08:03:05 +00:00
Tomi Turtiainen
e91497e92a
test: Deflake debug mode spec (#35203) 2026-08-04 08:02:01 +00:00
Sam Wooler
9c596228d9
docs(API): Generate OpenAPI docs from Zod DTOs and PublicApiController decorators (#34540)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 08:00:54 +00:00
Alex Grozav
7d91043444
refactor(editor): Repoint useStorage consumers to @n8n/composables (no-changelog) (#35443)
Co-authored-by: Claude <noreply@anthropic.com>
2026-08-04 07:49:32 +00:00
Guillaume F.
9c484e362f
ci: Re-add triage:pending label when stale community PRs become active again (#35455) 2026-08-04 07:46:34 +00:00
Alex Grozav
502fe602e7
test(editor): Retire redundant importOriginal spreads and guard the telemetry boundary (no-changelog) (#35440)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-04 07:42:42 +00:00
n8n-release-tag-merge[bot]
f8941b10f2 Merge tag 'n8n@2.34.0' 2026-08-04 07:51:21 +00:00
Yen Su
6b655c8e3f
build: Package @confluentinc/kafka-javascript native dependency (no-changelog) (#35321)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 07:29:48 +00:00
n8n-assistant[bot]
b533ecd685
🚀 Release 2.34.0 (#35487)
Co-authored-by: n8n-release-helper[bot] <265227495+n8n-release-helper[bot]@users.noreply.github.com>
2026-08-04 07:14:55 +00:00
Jan Kalkan
c9eeb2e180
feat(core): Reconcile tag ids on name collision when importing packages (#35224)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 07:14:14 +00:00
Yen Su
d571d0f9e9
refactor(Kafka Node): Restructure into versioned node layout (no-changelog) (#35355)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 07:05:01 +00:00
Matsu
bf51b1ff03
ci: Replay 3.x onto master instead of merging into it (no-changelog) (#35435)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 06:49:52 +00:00
Ilfat Mindubaev
1e39ea50a4
fix(core): Fix broken documentation links in AWS (Assume Role) credential (#34763)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 06:49:03 +00:00
Charlie Kolb
0363fd6f7c
feat: Add get.n8n.io one-script docker compose setup (#34711)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Matsuuu <matias.huhta@n8n.io>
2026-08-04 06:34:12 +00:00
Danny Martini
1801f65d85
feat(core): Converge leader takeover through the reconciliation loop (#35454)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 06:24:49 +00:00
Michael Drury
9f2f315646
fix(core): Keep agent channel setup separate from publishing (#35468)
Co-authored-by: Robin Braumann <robin.braumann@n8n.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 06:16:25 +00:00
n8n-assistant[bot]
04c416720a
chore: Update e2e impact map (#35480)
Some checks are pending
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (22.22.3) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.0) (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) / Notify Slack on failure (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-04 03:43:15 +00:00
Robin Braumann
ce52c555d6
feat(core): Consolidate agent creation and modification telemetry (#35444)
Some checks are pending
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (22.22.3) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.0) (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) / Notify Slack on failure (push) Blocked by required conditions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 20:04:27 +00:00
Svetoslav Dekov
8857fd0dd2
feat(core): Include node credentials in MCP workflow reads and guide credential reuse (#35173)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
2026-08-03 19:29:13 +00:00
Guillaume Jacquart
f0a2bce417
fix(core): Derive OAuth resource URL from the served endpoint (no-changelog) (#35441)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 18:37:22 +00:00
José Braulio González Valido
5d8f2353bf
fix(ai-builder): Give a restored seed workflow a unique name and evict leftovers (no-changelog) (#35299)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 17:26:21 +00:00
Joco-95
ad54d0cd63
fix: Fixes see all button tracking on aia template examples (#35451) 2026-08-03 17:15:45 +00:00
Filipe Tavares
af3aaba776
feat(editor): Add trial intro modal experiment (#34739)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Romeo Balta <7095569+romeobalta@users.noreply.github.com>
2026-08-03 17:08:09 +00:00
Michael Drury
edc377c9d5
fix(core): Propagate sub-agent tool approvals (#35368) 2026-08-03 16:26:27 +00:00