Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

The Tag Linter: How I Catch Untagged n8n Nodes Before They Reach Production

Описание и применение

Скрипт‑линтер обнаружил, что переименование узла в n8n приводит к потере политики тегов, оставляя эффектный узел без защиты и создавая риск дублирования уведомлений.

Задача

Renaming a node caused its policy tags to become stale, leaving an effectful node unprotected and risking duplicate alerts.

Результат

The linter identified 7 violations across 21 workflows, including 3 untagged effectful nodes, 2 stale entries, and 2 missing idempotent declarations, preventing potential duplicate alerts.

Рабочий процесс

  • Parse workflow JSON
  • Classify each node by heuristic (HTTP method, email, slack, etc.)
  • Verify every effectful node has a policy entry with kind and idempotent field
  • Check that every policy entry matches an existing node by UUID
  • Fail if heuristic says effectful but policy says pure
  • Warn on renamed nodes and update labels
  • Fail if effectful node has retry enabled without idempotent key

Доказательства

I renamed a node. That is the whole incident.

Источник

The node was an HTTP POST to a Discord webhook, added during a debugging session and left in place because the alerts turned out to be useful.

Источник

The linter is a small Node script, lint-node-tags.js, that runs inside the pre-publish gate... Three checks...

Источник

I ran it over 21 workflow files — the free templates in the repo plus my production set. Seven violations:

Источник

  • Дата записи: 2026-10-14T10:41:29.845Z