{"_rev":"5-d36d942b33538a31ba12688a0d8e4aa3","time":{"created":"2025-09-11T09:20:17.158Z","modified":"2025-09-11T09:20:17.751Z","0.1.1":"2025-09-11T08:18:53.788Z","0.1.2":"2025-09-11T08:21:13.668Z","0.1.4":"2025-09-11T09:20:17.453Z"},"_id":"@cappern/node-red-infoblox","name":"@cappern/node-red-infoblox","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.4":{"name":"@cappern/node-red-infoblox","version":"0.1.4","description":"Node-RED nodes for Infoblox DDI (WAPI) integration.","main":"index.js","scripts":{"test":"mocha --timeout 8000","test:coverage":"nyc -r text-summary -r lcov mocha --timeout 8000","coverage":"npm run test:coverage"},"repository":{"type":"git","url":"git+https://github.com/cappern/node-red-infoblox.git"},"keywords":["node-red","node-red-node","infoblox","ddi","wapi","dns","ipam","dhcp"],"author":"","license":"AGPL-3.0-or-later","bugs":{"url":"https://github.com/cappern/node-red-infoblox/issues"},"homepage":"https://github.com/cappern/node-red-infoblox","node-red":{"version":">=2.0.0","nodes":{"infoblox-request":"nodes/node.js","infoblox-config":"nodes/config.js","infoblox-host":"nodes/host.js"}},"engines":{"node":">=20"},"dependencies":{"undici":"^7.16.0"},"devDependencies":{"chai":"^6.0.1","mocha":"^11.7.2","node-red":"^4.1.0","node-red-node-test-helper":"^0.3.5","nyc":"^17.1.0"},"_id":"@cappern/node-red-infoblox@0.1.4","_integrity":"sha512-07aHjilNWjeV13dszIUD7BQ2mt7eMx6pIp13dVZtrB2f53HV97LhwjqmJ9plnpL9riQpq5wbo/cfDYAGEukgKA==","_resolved":"/home/runner/work/node-red-infoblox/node-red-infoblox/cappern-node-red-infoblox-0.1.4.tgz","_from":"file:cappern-node-red-infoblox-0.1.4.tgz","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-07aHjilNWjeV13dszIUD7BQ2mt7eMx6pIp13dVZtrB2f53HV97LhwjqmJ9plnpL9riQpq5wbo/cfDYAGEukgKA==","shasum":"94c0dbdfda2a44b3f06671e54cc4af6eebe49593","tarball":"https://registry.npmjs.org/@cappern/node-red-infoblox/-/node-red-infoblox-0.1.4.tgz","fileCount":10,"unpackedSize":28751,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtzelg0MwB8NILaDf9qVHvawVzoogJRDTZk9djOlBDuQIhAMBlWDmM1Pya/4ZSd7oD9jrkiEWK73T72yhDaLap58cI"}]},"_npmUser":{"name":"cappern","email":"christoffer@cappelen.org"},"directories":{},"maintainers":[{"name":"cappern","email":"christoffer@cappelen.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-red-infoblox_0.1.4_1757582417248_0.8135368853955152"},"_hasShrinkwrap":false}},"maintainers":[{"name":"cappern","email":"christoffer@cappelen.org"}],"description":"Node-RED nodes for Infoblox DDI (WAPI) integration.","homepage":"https://github.com/cappern/node-red-infoblox","keywords":["node-red","node-red-node","infoblox","ddi","wapi","dns","ipam","dhcp"],"repository":{"type":"git","url":"git+https://github.com/cappern/node-red-infoblox.git"},"bugs":{"url":"https://github.com/cappern/node-red-infoblox/issues"},"license":"AGPL-3.0-or-later","readme":"# @cappern/node-red-infoblox\n[![CI](https://github.com/cappern/node-red-infoblox/actions/workflows/ci.yml/badge.svg)](https://github.com/cappern/node-red-infoblox/actions/workflows/ci.yml)\n[![Node-RED](https://img.shields.io/badge/Node--RED-Infoblox-blue)](https://nodered.org)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](./LICENSE)\n\nNode-RED nodes for interacting with Infoblox DDI via the Web API (WAPI).\n\n---\n\n## 🚀 Features\n\n- Infoblox config node with TLS, custom CA and timeout settings\n- Generic request node for any WAPI resource\n- Host-focused CRUD node for `record:host`\n- Clear Node-RED editor help and examples\n\n---\n\n## 📦 Installation\n\nFrom your Node-RED user directory (e.g. `~/.node-red` or `/data` in Docker):\n\n```bash\nnpm install @cappern/node-red-infoblox\n```\n\nRestart Node-RED and find the nodes in the palette under \"Infoblox\".\n\n---\n\n## 🔧 Usage\n\n1. Add an Infoblox config node and set:\n   - Base URL: e.g. `https://grid-master`\n   - WAPI Version: e.g. `2.12`\n   - Credentials: username/password (Basic auth)\n   - Verify TLS: uncheck for self-signed lab certs\n   - CA Certificate (PEM): optional custom CA/bundle to trust Infoblox\n   - Timeout: defaults to 30000 ms\n2. Use either node and select the config:\n   - Infoblox Request: call WAPI resources like `record:a`, `network`, `fixedaddress`\n   - Infoblox Host: simplified CRUD for `record:host`\n3. Deploy and send a message. On error, nodes set `msg.statusCode` and include response details in `msg.payload`.\n\nCommon message properties:\n\n```text\nmsg.resource  // e.g. \"record:a\" (Request node)\nmsg.method    // GET | POST | PUT | PATCH | DELETE (Request node)\nmsg.query     // object or querystring, e.g. { name: \"host.example.com\" }\nmsg.payload   // object for write operations\n\nmsg.operation // create | read | update | delete (Host node)\nmsg.hostname  // name for read/delete (Host node)\nmsg.ref       // _ref for update/delete (Host node)\n```\n\nExamples:\n\n```js\n// Request: list A records by name\nmsg.resource = \"record:a\";\nmsg.query = { name: \"host.example.com\" };\nreturn msg;\n```\n\n```js\n// Request: create an A record\nmsg.method = \"POST\";\nmsg.resource = \"record:a\";\nmsg.payload = { name: \"host.example.com\", ipv4addr: \"192.0.2.10\" };\nreturn msg;\n```\n\n```js\n// Host: create a host record\nmsg.operation = \"create\";\nmsg.payload = { name: \"host.example.com\", ipv4addrs: [{ ipv4addr: \"192.0.2.10\" }] };\nreturn msg;\n```\n\n```js\n// Host: update by _ref\nmsg.operation = \"update\";\nmsg.ref = \"record:host/ZG5zLmhvc3Qk...:host.example.com/default\";\nmsg.payload = { comment: \"updated via Node-RED\" };\nreturn msg;\n```\n\n---\n\n## 📜 License\n\nThis project is licensed under the [AGPL-3.0-or-later](./LICENSE).\n\n---\n\n## 🤝 Contributing\n\nPull requests and issues are welcome!\nCheck out the [issues page](https://github.com/cappern/node-red-infoblox/issues).\n\n","readmeFilename":"README.md"}