{"_id":"@ejazdoinger/n8n-nodes-asc-self-healing","name":"@ejazdoinger/n8n-nodes-asc-self-healing","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"@ejazdoinger/n8n-nodes-asc-self-healing","version":"1.1.0","description":"ASC Self-Healing: n8n community node that posts the standard error contract to your Generalized Error Handler webhook.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/optimu16/ascv3.git","directory":"n8n-nodes-asc-self-healing"},"homepage":"https://github.com/optimu16/ascv3/tree/master/n8n-nodes-asc-self-healing#readme","bugs":{"url":"https://github.com/optimu16/ascv3/issues"},"engines":{"node":">=18.0.0"},"keywords":["n8n-community-node-package","n8n","error-handling","self-healing","automation"],"author":{"name":"ASC"},"scripts":{"clean":"rimraf dist","copy:assets":"copyfiles -u 1 \"src/**/*.svg\" \"src/**/*.node.json\" dist","build":"npm run clean && tsc -p tsconfig.json && npm run copy:assets","prepublishOnly":"npm run build","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\"","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/AscSelfHealingHandlerApi.credentials.js"],"nodes":["dist/nodes/AscSelfHealingReport/AscSelfHealingReport.node.js"]},"peerDependencies":{"n8n-workflow":"^1.0.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","copyfiles":"^2.4.1","eslint":"^8.56.0","jest":"^29.7.0","n8n-workflow":"^1.82.0","prettier":"^3.2.0","rimraf":"^5.0.10","ts-jest":"^29.1.1","typescript":"^5.7.3"},"_id":"@ejazdoinger/n8n-nodes-asc-self-healing@1.1.0","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/CavVR42vgFSKP2bJ2k2CCleBrZ2X9tlbQxJ/dr7xgQqzxhKrgQbUU6SMv288O0ikyWOg5s0OpqoAMkJ6o0urA==","shasum":"c4f268aea9d7f0209dc1c452eb7ea8108658a2e8","tarball":"https://registry.npmjs.org/@ejazdoinger/n8n-nodes-asc-self-healing/-/n8n-nodes-asc-self-healing-1.1.0.tgz","fileCount":13,"unpackedSize":42098,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYF+RC1rb1Yah6EBpHb1uGPomd2F4dH/L8fRPDjzOQFgIhAJ83EyYWlIyPBWOdAKsvBxdOKn8Zw+MY6kQ7VxrVa/ga"}]},"_npmUser":{"name":"ejazdoinger","email":"ejaz@doingerp.com"},"directories":{},"maintainers":[{"name":"ejazdoinger","email":"ejaz@doingerp.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-asc-self-healing_1.1.0_1778490119298_0.23785304084242687"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T09:01:59.165Z","1.1.0":"2026-05-11T09:01:59.462Z","modified":"2026-05-11T09:01:59.711Z"},"maintainers":[{"name":"ejazdoinger","email":"ejaz@doingerp.com"}],"description":"ASC Self-Healing: n8n community node that posts the standard error contract to your Generalized Error Handler webhook.","homepage":"https://github.com/optimu16/ascv3/tree/master/n8n-nodes-asc-self-healing#readme","keywords":["n8n-community-node-package","n8n","error-handling","self-healing","automation"],"repository":{"type":"git","url":"git+https://github.com/optimu16/ascv3.git","directory":"n8n-nodes-asc-self-healing"},"author":{"name":"ASC"},"bugs":{"url":"https://github.com/optimu16/ascv3/issues"},"license":"MIT","readme":"# ASC Self-Healing (n8n custom node)\n\nThis directory is a standard **n8n community node package**. TypeScript sources live in `src/`; **n8n loads compiled files from `dist/`**, which you must generate before install.\n\n## Build (maintainers / from Git)\n\nFrom this folder, with **Node.js 18+**:\n\n```bash\nnpm install\nnpm run build\n```\n\nThis runs `tsc` and copies `*.svg` and `*.node.json` into `dist/`. The `dist/` directory is not committed; `npm run prepublishOnly` runs the same build when publishing to npm.\n\n## Publish to npm (for client installs from the registry)\n\nAnyone with an [npmjs.com](https://www.npmjs.com/) account and publish rights can ship this package so the client runs **`npm install n8n-nodes-asc-self-healing`** inside n8n’s nodes folder (see [Manual installation](https://docs.n8n.io/integrations/community-nodes/installation/manual-install/)) or installs it from the n8n UI community nodes list once it is public.\n\n1. **One-time:** [create an npm account](https://www.npmjs.com/signup), enable 2FA if required by your org, then `npm login`.\n2. From **`n8n-nodes-asc-self-healing/`** (this folder, not the monorepo root):\n\n```bash\nnpm install\nnpm publish --dry-run\nnpm publish --access public\n```\n\nUse `--dry-run` first to confirm the packed tarball only contains `dist/` (and `package.json`, `README.md`, `LICENSE` if present).\n\n`prepublishOnly` runs **`npm run build`** automatically before publish, so `dist/` is included per the `\"files\": [\"dist\"]` field.\n\n**Scoped name (optional):** If you prefer `@your-org/n8n-nodes-asc-self-healing`, rename `name` in `package.json`, add `\"publishConfig\": { \"access\": \"public\" }`, and tell clients to install that full scoped name.\n\n**After publish:** bump `version` in `package.json` (semver) for each release, then `npm publish` again.\n\n## Install on the n8n server\n\nRequirements: same machine (or image) as n8n, **Node.js 18+**, and network access from n8n to itself for retries if you use relative webhook paths.\n\n1. Copy the entire `n8n-nodes-asc-self-healing` folder to the server (for example next to your n8n data directory).\n2. Install dependencies (devDependencies are required on the machine that runs the TypeScript build):\n\n```bash\nnpm install\n```\n\n3. Compile and copy static assets:\n\n```bash\nnpm run build\n```\n\n4. Optional — drop build-only packages while keeping `dist/`:\n\n```bash\nnpm prune --omit=dev\n```\n\n(`n8n-workflow` is a peer dependency; n8n already ships a compatible version at runtime.)\n\n5. Register the package with n8n using **one** of the methods described in the official docs: [Install community nodes](https://docs.n8n.io/integrations/community-nodes/installation/) (local package / `N8N_COMMUNITY_PACKAGES` / custom extensions directory, depending on how you host n8n).\n\n6. Restart n8n. In the editor, search for **ASC Self-Healing: Report Error**.\n\n## Client / Ops handoff (no n8n admin UI)\n\nIf the client will **not** use the n8n UI to install community nodes, they can still load this package from the **same machine or container** that runs n8n using **npm link** (symlink) or **`npm install` from a tarball**. This needs **shell access** to the n8n host (or `docker exec`), not n8n “admin” in the browser.\n\n**Package name** (from `package.json`, used with `npm link`): `n8n-nodes-asc-self-healing`\n\n**Source:** clone the delivery repo and use this folder, e.g.  \n`https://github.com/optimu16/ascv3.git` → directory `n8n-nodes-asc-self-healing/`.\n\n### Option A — `npm link` (what they asked for)\n\nOfficial reference: [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) (same pattern on a server).\n\n1. On a shell that can reach the n8n data directory, clone or copy the repo, then:\n\n```bash\ncd n8n-nodes-asc-self-healing\nnpm install\nnpm run build\nnpm link\n```\n\n2. Inside the environment where n8n runs, use n8n’s **custom nodes** directory (create it if missing). Typical paths:\n\n   - Bare install: `~/.n8n/custom`\n   - Official Docker image (user `node`): `/home/node/.n8n/custom`\n\n   If `custom` does not exist, create it and initialize once:\n\n```bash\nmkdir -p ~/.n8n/custom\ncd ~/.n8n/custom\nnpm init -y\n```\n\n3. Link the global package into that directory (name must match `package.json`):\n\n```bash\nnpm link n8n-nodes-asc-self-healing\n```\n\n4. **Restart n8n**. In the editor, search for **ASC Self-Healing: Report Error** (search by **node display name**, not the long package name).\n\nDocker example (adjust container name):\n\n```bash\ndocker exec -it n8n sh\ncd /home/node/.n8n/custom && npm link n8n-nodes-asc-self-healing\n```\n\n> **Note:** `npm link` registers a **global** symlink on that machine. The account that runs `npm link` in the package directory must be the same environment where `npm link n8n-nodes-asc-self-healing` runs inside `custom`, or use a single CI-built image that bakes in the built `dist/` and runs step 2–3 in the image layer.\n\n### Option B — Tarball (no global link)\n\nGood when you must not use global npm links.\n\n```bash\ncd n8n-nodes-asc-self-healing\nnpm install && npm run build && npm pack\n```\n\nSend the generated `n8n-nodes-asc-self-healing-1.0.0.tgz`. On the server, from n8n’s nodes folder (see [Manual installation](https://docs.n8n.io/integrations/community-nodes/installation/manual-install/)):\n\n```bash\nmkdir -p ~/.n8n/nodes\ncd ~/.n8n/nodes\nnpm install /path/to/n8n-nodes-asc-self-healing-1.0.0.tgz\n```\n\nThen restart n8n.\n\n## Use in a workflow\n\n1. On a risky node: **On Error → Continue (using error output)**.\n2. Connect the **red** output to **ASC Self-Healing: Report Error**.\n3. **Handler URL** = full URL of your imported **Generalized Error Handler** webhook (example: `https://YOUR-N8N-HOST/webhook/error-handler`).\n4. **Trigger Node Name** = exact name of the node whose JSON contains the business payload (e.g. your Webhook node name).\n\nOptional: **Retry Webhook Path**, healing metadata, and **ASC Self-Healing Handler API** credential if the handler URL is protected with Bearer auth.\n\n## Contract\n\nThe node sends the same JSON shape as the legacy snippet (`contract_version`: `error-handler-snippet-v3`; `contract_source`: `asc_self_healing_node`).\n","readmeFilename":"README.md","_rev":"1-d1e524bad3951d19b771c6cd3b0cac45"}