n8n/packages/cli
Yuliia Pominchuk f0b71fd1f3
feat(core): Require a declared trigger before a workflow can be scheduled
Running a workflow now and putting it on a schedule were held to the same bar,
and they should not be. Running once is bounded — the person is there, it
happens once, they see the result — and anyone with execute access could have
run it from the editor anyway, so a manual trigger is enough to justify it. A
schedule is unattended, recurring, and acts with that person's accounts for as
long as it stands.

That is too large a commitment to infer from the mere presence of a start node.
The Execute Workflow Trigger is the builder saying "this is meant to be called
by something other than me"; a manual trigger says the opposite. Subscriptions
now require the former, on create and on update — the trigger can be taken back
out after someone subscribed, and changing a schedule must not quietly re-bless
it.

Manual-trigger workflows stay in the catalog and stay runnable. Their schedule
button is disabled with the reason on it rather than hidden, so nobody is left
looking for an option that silently vanished.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 14:18:19 +02:00
..
bin chore: Initial V2 changes (#22553) 2025-12-01 20:44:59 +02:00
scripts docs(API): Generate OpenAPI docs from Zod DTOs and PublicApiController decorators (#34540) 2026-08-04 08:00:54 +00:00
src feat(core): Require a declared trigger before a workflow can be scheduled 2026-08-05 14:18:19 +02:00
templates feat(Form Node): Support multiple files when returning binary from form ending (#33780) 2026-07-13 12:07:47 +00:00
test feat(core): Run a catalog workflow on a person's own schedule 2026-08-05 12:15:27 +02:00
AGENTS.md chore(core): Lock the @n8n/typeorm import ratchet and document the boundary (no-changelog) (#34370) 2026-07-21 08:26:21 +00:00
BREAKING-CHANGES.md fix: Security patches (#22748) 2025-12-05 13:28:39 +00:00
eslint.config.mjs chore: Add ESLint guardrails for public API handler pattern (no-changelog) (#35021) 2026-07-28 12:04:18 +00:00
nodemon.json
package.json docs(API): Generate OpenAPI docs from Zod DTOs and PublicApiController decorators (#34540) 2026-08-04 08:00:54 +00:00
tsconfig.build.json feat: Add @n8n/telemetry event registry with typed track() support (no-changelog) (#34662) 2026-07-23 16:09:54 +00:00
tsconfig.json feat: Add @n8n/telemetry event registry with typed track() support (no-changelog) (#34662) 2026-07-23 16:09:54 +00:00
vitest.config.base.ts feat: Add @n8n/telemetry event registry with typed track() support (no-changelog) (#34662) 2026-07-23 16:09:54 +00:00
vitest.config.integration.testcontainers.ts chore: Remove references to Jest (#33282) 2026-07-01 09:03:25 +00:00
vitest.config.integration.ts refactor(core): Tidy agent-eval runner and rating-persistence internals (no-changelog) (#35424) 2026-08-04 10:42:20 +00:00
vitest.config.migration.testcontainers.ts chore: Remove references to Jest (#33282) 2026-07-01 09:03:25 +00:00
vitest.config.migration.ts chore: Remove references to Jest (#33282) 2026-07-01 09:03:25 +00:00
vitest.config.ts test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00
vitest.tsc-entity-transform.ts chore: Consolidate ts tooling catalog (#34310) 2026-07-16 10:10:12 +00:00
vitest.workspace-externals.ts test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00