Skip to main content

N8n

@sntxrr/n8nv2026.10.14.1· MIT(was none)· 12d agoBEHAVIORS
01README

Read a running n8n deployment and report how far its pinned version has drifted behind the channel n8n itself calls stable, and which active workflows have no usable error workflow attached. All three methods are strictly read-only — this extension never upgrades n8n, edits a workflow, touches a credential, or restarts a container; it tells you an update exists and stops there. audit_error_workflows takes an optional n8n API key (used by no other method), because n8n has no instance-wide default error workflow and only the authenticated public API discloses each workflow's settings.errorWorkflow; it flags missing or wrong handlers and a handler that is inactive or archived, and never attaches one. drift takes the running version as an argument rather than reading it, because n8n does not disclose one: its /rest/settings answers 200 unauthenticated but with settingsMode: public, a reduced payload carrying no version field at all, and versionCli reaches authenticated callers only — so the version comes from the pinned image tag on the host, which is what the deployment actually is rather than what a process predating the current pin believes itself to be. The upgrade target is npm's dist-tag, never the newest published release: n8n ships its in-progress minor into the same GitHub release namespace flagged prerelease: true and promotes that line later, so on 2026-09-05 the newest release was 2.38.3 while stable was 2.37.10, and the 2.37 line had itself been prerelease through 2.37.6. GitHub releases are still read, but only to enumerate the stable releases that were missed and to link the notes, since the prerelease flag is the historical record of which line was stable when and dist-tags do not retain it. Image existence is verified against registry-1.docker.io rather than the docker.n8n.io mirror the pin names: that mirror 404s its own token endpoint, delegates auth to Docker Hub, and then answers 429 to every manifest request for tags that exist and tags that do not alike, so it cannot return a usable answer — and a 429 is raised as indeterminate rather than folded into absent, which would suppress every update forever while the check looked healthy. An exhausted GitHub rate limit, an unreachable registry, and an unparseable running version are all raised as errors rather than reported as a reassuring current.

02Release Notes

Declare SPDX license (MIT) in manifest.

03Behaviors1
@sntxrr/n8n/instancev2026.10.05.1n8n_instance.ts

Global Arguments

ArgumentTypeDescription
baseUrlstringBase URL of the n8n instance, e.g. http://192.0.2.10:5678. Used only
npmPackage?stringnpm package whose dist-tags define the release channels. Override only
channel?stringWhich npm dist-tag is authoritative for what should be running.
githubRepo?stringGitHub `owner/repo` used to enumerate missed releases and link notes.
githubToken?stringOptional GitHub token, purely to raise the API rate limit. Needs no
imageRepository?stringFully qualified image the deployment actually pulls. Reported in
verifyRegistry?stringRegistry host that existence is actually checked against. Must answer
verifyRepository?stringRepository path within `verifyRegistry`, serving the same images as
timeoutMs?numberAbort each HTTP call after this long. A drift check must never hang a
apiKey?stringn8n public API key, sent as X-N8N-API-KEY. Used ONLY by
fn sync()
Probe the instance's /healthz and its pre-login /rest/settings, recording liveness and the auth surface. Unauthenticated and read-only.
fn drift(runningVersion: string, pageSize?: number, verifyImage?: boolean)
Compare a running n8n version against the npm channel n8n treats as stable, enumerate the stable releases in between, and confirm the target image is actually pullable.
ArgumentTypeDescription
runningVersionstringVersion currently deployed, e.g. 2.25.7. Read this from the pinned
pageSize?numberHow many recent releases to examine when enumerating what was
verifyImage?booleanConfirm the target tag resolves in the registry before reporting
fn audit_error_workflows(handlerWorkflowId: string, pageSize?: number)
List active, non-archived workflows through the public API and flag any whose settings.errorWorkflow is missing, names a workflow other than the expected handler, or names a handler that is inactive, archived or gone. Read-only: it never attaches a handler.
ArgumentTypeDescription
handlerWorkflowIdstringId of the error workflow every active workflow should name. It is
pageSize?numberWorkflows per page of the public API list.

Resources

instance(infinite)— What the instance discloses before login: liveness and the auth surface. Deliberately not the version -- n8n does not disclose one unauthenticated.
drift(infinite)— Comparison of the running version against the authoritative npm channel.
errorWorkflowAudit(infinite)— Active workflows that would fail silently because no usable error workflow is attached.
04Previous Versions2
2026.10.05.1

Modified 1 behaviors

2026.09.05.1
05Stats
A
100 / 100
Downloads
31
Archive size
25.6 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License2/2earned
  • Verified public repository2/2earned
06Platforms
07Labels