mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-22 04:21:32 +02:00
Adds POST /apps/:namespace/api/run, resolving a workflow against an
App-level allow-list and executing it via the same mechanism Agents use
for a 'workflow tool' (executeWorkflow() from workflow-tool-factory.ts,
via WorkflowRunner + Execute Workflow Trigger) - no webhook involved,
unlike the first spike's shortcut.
Confirmed with real workflows and real HTTP calls:
- an unbound workflow id is rejected for both a data-style and an
action-style call
- binding then calling a 'get records' workflow returns real computed
data
- the same mechanism, with input, IS an action - binding and calling a
'mark resolved' workflow with {id: 3} returns a real confirmation
- a binding in one App namespace doesn't leak to another
- both calls produced real execution_entity rows (status: success,
mode: integrated) - actions get a first-class, inspectable execution
record, not something invisible
Still a spike: bindings are an in-memory Map (not the AppBinding entity),
no token/audience check on the endpoint. See SPIKE.md.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| bin | ||
| scripts | ||
| src | ||
| templates | ||
| test | ||
| AGENTS.md | ||
| BREAKING-CHANGES.md | ||
| eslint.config.mjs | ||
| nodemon.json | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
| vitest.config.base.ts | ||
| vitest.config.integration.testcontainers.ts | ||
| vitest.config.integration.ts | ||
| vitest.config.migration.testcontainers.ts | ||
| vitest.config.migration.ts | ||
| vitest.config.ts | ||
| vitest.tsc-entity-transform.ts | ||
| vitest.workspace-externals.ts | ||