n8n/packages/cli/test
Garrit Franke 35fe5daef1
perf(editor): gate node search behind a per-user rate limit and process-wide concurrency cap
Ports the multi-tenant containment from #30294:

- GET /workflows/search-nodes is rate limited per user (120/min); the
  client debounces its keystrokes, which no human can sustain past this
  ceiling.
- The service runs at most one scan per process (pLimit(1)) with a short
  queue of 4, shedding excess with 429. A per-user rate limit cannot
  bound load on a shared database: #30294 measured 66x (SQLite) / 56x
  (Postgres) workflow-list degradation from 20 users each inside their
  own limit; capped at one concurrent scan the same scenario measured
  ~1.3x. In multi-main setups the ceiling is per instance, which is the
  intent: it bounds what a single process can demand of the shared DB.

The command-bar composable already treats a failed request as empty
results, so a shed search degrades gracefully client-side.

Verified: service unit 19/19, integration 23/23 (new shed test) on both
SQLite and Postgres 16; controller unit 11/11; typecheck + lint clean.
2026-08-12 16:36:53 +02:00
..
integration perf(editor): gate node search behind a per-user rate limit and process-wide concurrency cap 2026-08-12 16:36:53 +02:00
migration feat(core): Add Discord as an agent chat channel (#35331) 2026-08-06 06:09:43 +00:00
shared test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00
unit fix(core): Handle errors from triggered and polled workflow executions (#35689) 2026-08-06 13:07:01 +00:00
extend-expect.ts test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00
global-setup.ts chore: Remove references to Jest (#33282) 2026-07-01 09:03:25 +00:00
setup-mocks.ts test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00
setup-test-folder.ts chore: Initial V2 changes (#22553) 2025-12-01 20:44:59 +02:00
setup-testcontainers.ts test: Migrate cli package from Jest to Vitest (#31804) 2026-06-29 21:19:56 +03:00