n8n/packages/modules
Guillaume Jacquart 2ad6721e94
feat(core): Add execution ledger for quotas and usage counting (no-changelog)
Add an append-only execution ledger with one fold task every 5 seconds.
Participants fold claimed rows in one transaction: workflow statistics,
execution quota usage, and Insights hourly buckets.

Add hard execution quotas per workflow and project. An atomic Redis or
memory counter admits a run, and the started row commits with the
execution row. Postgres and SQLite are both supported.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-17 00:46:13 +02:00
..
insights feat(core): Add execution ledger for quotas and usage counting (no-changelog) 2026-10-17 00:46:13 +02:00
instance-registry/frontend 🚀 Release 2.44.0 (#40943) 2026-10-13 07:12:07 +00:00
mcp/frontend feat(editor): Update UI with n8n rebrand (#40342) 2026-10-13 16:06:30 +00:00
otel/frontend feat(editor): Update UI with n8n rebrand (#40342) 2026-10-13 16:06:30 +00:00
quick-connect/backend refactor(core): Extract Quick Connect into a backend package (#41076) 2026-10-14 12:04:16 +00:00
type-availability-policies/frontend feat(editor): Update UI with n8n rebrand (#40342) 2026-10-13 16:06:30 +00:00
README.md refactor(core): Extract Insights backend module package (#40261) 2026-10-06 13:05:38 +00:00

Modules

Feature modules carved out of packages/frontend/editor-ui. Each one is a workspace package at <name>/frontend: source-only (main: "src/index.ts", no dist), consumed by the editor-ui shell through Vite aliases.

Backend modules can be built workspace packages at <name>/backend. Add each packaged backend module to packages/cli/src/modules/modules.manifest.ts. The manifest uses lazy imports so a disabled module does not load its package. Backend modules that have not moved to a package still load from packages/cli/src/modules/<name>.

packages/modules itself stays tracked even when it holds nothing: turbo rejects a --filter whose directory does not exist.

CI splits the two halves by path. The frontend jobs select packages/modules/*/frontend. The backend jobs exclude that same path instead of all of packages/modules, so a <name>/backend package gets backend CI on the day it appears. Both filters live in the root test:ci:* scripts and in the two backend jobs in .github/workflows/test-unit-reusable.yml.