{"_id":"@bessantoy/n8n-nodes-glpi","_rev":"4-a6e0cd247c7ef2bea87cbbc1322c6295","name":"@bessantoy/n8n-nodes-glpi","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@bessantoy/n8n-nodes-glpi","version":"0.1.0","keywords":["n8n-community-node-package","glpi","itsm","helpdesk"],"author":{"name":"Anthony Bessieres","email":"anthony.bessieres@it-gouvernance.fr"},"license":"MIT","_id":"@bessantoy/n8n-nodes-glpi@0.1.0","maintainers":[{"name":"bessantoy","email":"bessantoy@gmail.com"}],"homepage":"https://github.com/bessantoy/n8n-nodes-glpi","bugs":{"url":"https://github.com/bessantoy/n8n-nodes-glpi/issues"},"n8n":{"nodes":["dist/nodes/Glpi/Glpi.node.js"],"credentials":["dist/credentials/GlpiOAuth2Api.credentials.js","dist/credentials/GlpiPasswordApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"c8368f49fb88465409906ffe5cb04329401e6c7e","tarball":"https://registry.npmjs.org/@bessantoy/n8n-nodes-glpi/-/n8n-nodes-glpi-0.1.0.tgz","fileCount":22,"integrity":"sha512-vxFCGIHrMkloDPbFVmfXpeT1PwUqDuQBQVg7HvgYIoA7kBbU5MCM77mVUweKnYvAE5rjsssb4o0WOJ922J33fw==","signatures":[{"sig":"MEYCIQDI5RVUQWu8KToPx7xqPH7zoaXhBIuL3vy7QKFS80ul6wIhAIZ08Ted4Bw6C/rbLCOM/J7FRVA8sk5BXOL+8aIEaPD3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":878663},"main":"index.js","engines":{"node":">=22.0.0"},"gitHead":"e832d50731d5b1e84f2619c904b1c046b766ed3f","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials scripts --write","lintfix":"eslint nodes credentials package.json --fix","generate:index":"node scripts/generate-endpoint-index.js","prepublishOnly":"npm run build && npm run validate:endpoints","validate:endpoints":"node scripts/validate-endpoint-update.js"},"_npmUser":{"name":"bessantoy","email":"bessantoy@gmail.com"},"repository":{"url":"git+https://github.com/bessantoy/n8n-nodes-glpi.git","type":"git"},"_npmVersion":"10.9.8","description":"Node n8n complet pour piloter l'API REST de GLPI (tickets, assets, changes, problems, projects, recherche, gestion de session, etc.)","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","eslint":"^8.57.0","prettier":"^3.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","n8n-workflow":"^1.60.0","@typescript-eslint/parser":"^7.0.0","eslint-plugin-n8n-nodes-base":"^1.16.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-glpi_0.1.0_1785241066372_0.8570674773288909","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bessantoy/n8n-nodes-glpi","version":"0.2.0","keywords":["n8n-community-node-package","glpi","itsm","helpdesk"],"author":{"name":"Anthony Bessieres","email":"anthony.bessieres@it-gouvernance.fr"},"license":"MIT","_id":"@bessantoy/n8n-nodes-glpi@0.2.0","maintainers":[{"name":"bessantoy","email":"bessantoy@gmail.com"}],"homepage":"https://github.com/bessantoy/n8n-nodes-glpi","bugs":{"url":"https://github.com/bessantoy/n8n-nodes-glpi/issues"},"n8n":{"nodes":["dist/nodes/Glpi/Glpi.node.js"],"credentials":["dist/credentials/GlpiOAuth2Api.credentials.js","dist/credentials/GlpiPasswordApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"b229d50fb2e1a9be59d65b87c373ec7abcd9ff01","tarball":"https://registry.npmjs.org/@bessantoy/n8n-nodes-glpi/-/n8n-nodes-glpi-0.2.0.tgz","fileCount":23,"integrity":"sha512-i3iZkF8503D4PqJYnG3wdItydLfd3wkyu7avegH+cyYjtAS2UrJzl5GIRwQWGJngr+2DBfXKAP6NrxPXp02p3Q==","signatures":[{"sig":"MEUCICnPlUtRtkXkFX0zQxdvkHW9Y55Z+HBzf11iGSrqohpAAiEAvgpcYFv4SiIDQBh0JtbeWBcbDJHOfdRbxkWmuURfJO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880383},"main":"index.js","engines":{"node":">=22.0.0"},"gitHead":"81da86d56e9a99097738d418796a78d00de0a82f","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials scripts --write","lintfix":"eslint nodes credentials package.json --fix","generate:index":"node scripts/generate-endpoint-index.js","prepublishOnly":"npm run build && npm run validate:endpoints","validate:endpoints":"node scripts/validate-endpoint-update.js"},"_npmUser":{"name":"bessantoy","email":"bessantoy@gmail.com"},"repository":{"url":"git+https://github.com/bessantoy/n8n-nodes-glpi.git","type":"git"},"_npmVersion":"10.9.8","description":"Node n8n complet pour piloter l'API REST de GLPI (tickets, assets, changes, problems, projects, recherche, gestion de session, etc.)","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","eslint":"^8.57.0","prettier":"^3.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","n8n-workflow":"^1.60.0","@typescript-eslint/parser":"^7.0.0","eslint-plugin-n8n-nodes-base":"^1.16.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-glpi_0.2.0_1785246979571_0.7001693996269542","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bessantoy/n8n-nodes-glpi","version":"0.3.0","keywords":["n8n-community-node-package","glpi","itsm","helpdesk","ai-agent","mcp"],"author":{"name":"Anthony Bessieres","email":"anthony.bessieres@it-gouvernance.fr"},"license":"MIT","_id":"@bessantoy/n8n-nodes-glpi@0.3.0","maintainers":[{"name":"bessantoy","email":"bessantoy@gmail.com"}],"homepage":"https://github.com/bessantoy/n8n-nodes-glpi","bugs":{"url":"https://github.com/bessantoy/n8n-nodes-glpi/issues"},"n8n":{"nodes":["dist/nodes/Glpi/Glpi.node.js","dist/nodes/GlpiFindEndpoint/GlpiFindEndpoint.node.js","dist/nodes/GlpiExecuteEndpoint/GlpiExecuteEndpoint.node.js"],"credentials":["dist/credentials/GlpiOAuth2Api.credentials.js","dist/credentials/GlpiPasswordApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"6102152ea5b05fcdbaf8f51a9e8946ff5197bf0b","tarball":"https://registry.npmjs.org/@bessantoy/n8n-nodes-glpi/-/n8n-nodes-glpi-0.3.0.tgz","fileCount":35,"integrity":"sha512-a3A4a8V2RJOsiFB+cUwLz+CuAnelWfWTMrd1pI7vkA7iTexKl5vJ6Y42OdOEMeZuMzixeQyAuVd3TXAT7grwJw==","signatures":[{"sig":"MEYCIQC2UTmT4Mwr90oFk4pmT4a6WwCLvr7eYmnvUF4mXPO6GwIhANaZ04g6+5lw7Y5GifGeoWPaVGql9cwVuaQIBUGPu8Xp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1195863},"main":"index.js","engines":{"node":">=22.0.0"},"gitHead":"28cc751053634724e4dcbbe5a62d46dff923f4d8","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials scripts --write","lintfix":"eslint nodes credentials package.json --fix","generate:index":"node scripts/generate-endpoint-index.js","prepublishOnly":"npm run build && npm run validate:endpoints","generate:schemas":"node scripts/generate-schemas-index.js","validate:endpoints":"node scripts/validate-endpoint-update.js"},"_npmUser":{"name":"bessantoy","email":"bessantoy@gmail.com"},"repository":{"url":"git+https://github.com/bessantoy/n8n-nodes-glpi.git","type":"git"},"_npmVersion":"10.9.8","description":"n8n community nodes for the GLPI REST API: a generic node covering every endpoint, plus AI Agent / MCP tools to search and call endpoints dynamically.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","eslint":"^8.57.0","prettier":"^3.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","n8n-workflow":"^1.60.0","@typescript-eslint/parser":"^7.0.0","eslint-plugin-n8n-nodes-base":"^1.16.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-glpi_0.3.0_1785406622023_0.7532138042134471","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@bessantoy/n8n-nodes-glpi@0.4.0","n8n":{"nodes":["dist/nodes/Glpi/Glpi.node.js","dist/nodes/GlpiFindEndpoint/GlpiFindEndpoint.node.js","dist/nodes/GlpiExecuteEndpoint/GlpiExecuteEndpoint.node.js"],"credentials":["dist/credentials/GlpiOAuth2Api.credentials.js","dist/credentials/GlpiPasswordApi.credentials.js"],"n8nNodesApiVersion":1},"bugs":{"url":"https://github.com/bessantoy/n8n-nodes-glpi/issues"},"dist":{"shasum":"1a5d499f70eba579b9a56f67fa584e713997ee84","tarball":"https://registry.npmjs.org/@bessantoy/n8n-nodes-glpi/-/n8n-nodes-glpi-0.4.0.tgz","fileCount":35,"integrity":"sha512-G99QEP9z7zTcLDb35VgW8BQBt0lIPAwCu9xN37NgHHX+VyboMVC/VipVL/jq9EvWHHxF0y7qfOr6Isv1O53zHg==","signatures":[{"sig":"MEUCIQCF32jb2zYaTNmFaILlKSBThIbqFvT7gJR+U7rbQp7P1AIgX1icrYFmEgHI31IgJ0WiZGstvui8wkNAZZWM3b8aaVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEcACxLtvjsLqjwfxb6PaHnLwZhMN6AjPNnLj+cf+5XyAiEApFD87bt0GViykQi7V0H43WJwXVIVns/T6vD5EZS2WkA="}],"unpackedSize":1196759},"main":"index.js","name":"@bessantoy/n8n-nodes-glpi","author":{"name":"Anthony Bessieres","email":"anthony.bessieres@it-gouvernance.fr"},"engines":{"node":">=22.0.0"},"gitHead":"bfb55d6db3f4dc96aa5c1db34daa80144405755b","license":"MIT","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials scripts --write","lintfix":"eslint nodes credentials package.json --fix","generate:index":"node scripts/generate-endpoint-index.js","prepublishOnly":"npm run build && npm run validate:endpoints","generate:schemas":"node scripts/generate-schemas-index.js","validate:endpoints":"node scripts/validate-endpoint-update.js"},"version":"0.4.0","_npmUser":{"name":"bessantoy","email":"bessantoy@gmail.com"},"homepage":"https://github.com/bessantoy/n8n-nodes-glpi","keywords":["n8n-community-node-package","glpi","itsm","helpdesk","ai-agent","mcp"],"repository":{"url":"git+https://github.com/bessantoy/n8n-nodes-glpi.git","type":"git"},"_npmVersion":"10.9.8","description":"n8n community nodes for the GLPI REST API: a generic node covering every endpoint, plus AI Agent / MCP tools to search and call endpoints dynamically.","directories":{},"maintainers":[{"name":"bessantoy","email":"bessantoy@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","eslint":"^8.57.0","prettier":"^3.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","n8n-workflow":"^1.60.0","@types/lodash":"^4.17.0","@typescript-eslint/parser":"^7.0.0","eslint-plugin-n8n-nodes-base":"^1.16.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-glpi_0.4.0_1788961496795_0.4132516458713731"}}},"time":{"created":"2026-07-28T12:17:46.131Z","modified":"2026-09-09T13:44:57.112Z","0.1.0":"2026-07-28T12:17:46.510Z","0.2.0":"2026-07-28T13:56:19.753Z","0.3.0":"2026-07-30T10:17:02.183Z","0.4.0":"2026-09-09T13:44:56.901Z"},"bugs":{"url":"https://github.com/bessantoy/n8n-nodes-glpi/issues"},"author":{"name":"Anthony Bessieres","email":"anthony.bessieres@it-gouvernance.fr"},"license":"MIT","homepage":"https://github.com/bessantoy/n8n-nodes-glpi","keywords":["n8n-community-node-package","glpi","itsm","helpdesk","ai-agent","mcp"],"repository":{"url":"git+https://github.com/bessantoy/n8n-nodes-glpi.git","type":"git"},"description":"n8n community nodes for the GLPI REST API: a generic node covering every endpoint, plus AI Agent / MCP tools to search and call endpoints dynamically.","maintainers":[{"name":"bessantoy","email":"bessantoy@gmail.com"}],"readme":"# n8n-nodes-glpi\n\n*[IT GOUVERNANCE](https://www.it-gouvernance.fr/)*\n\n*[Lire en français](README.fr.md)*\n\nThis package connects your [n8n](https://n8n.io) workflows to **GLPI**, the open source IT service and asset management tool (tickets, computers, users, projects, entities, etc.), via GLPI's REST API.\n\nIt provides two ways to use that API:\n- The **GLPI API** node, for manually built workflows: create a ticket, fetch a user, update a computer... Any action available in the GLPI API is reachable through two dropdowns — a **category**, then the precise **action** — displayed exactly as in GLPI's official API documentation. The fields to fill in (a ticket ID, the data to send, etc.) change automatically depending on the action you pick, with no need to hand-write JSON (unless you'd rather).\n- **GLPI: Find Endpoint** and **GLPI: Execute Endpoint**, for an AI Agent or MCP client: the agent describes what it wants in plain English, gets back the matching endpoint and its exact fields, then calls it — without knowing GLPI's API in advance. See [AI Agent / MCP Tools](#ai-agent--mcp-tools) below.\n\n<p align=\"center\">\n  <img src=\"docs/images/node-in-canvas.png\" alt=\"The GLPI API node in an n8n workflow\" width=\"480\">\n</p>\n\n## Table of Contents\n\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Authentication](#authentication)\n- [GLPI API Node — Usage](#glpi-api-node--usage)\n- [GLPI API Node — Examples](#glpi-api-node--examples)\n- [AI Agent / MCP Tools](#ai-agent--mcp-tools)\n- [Contributing](#contributing)\n\n## Prerequisites\n\n- A **GLPI** instance exposing the High-Level REST API (`/api.php/v2.3`, distinct from the older `/apirest.php`).\n- An OAuth2 client registered on the GLPI side (General setup > API > OAuth2 clients).\n\n## Installation\n\nFrom n8n: **Settings > Community Nodes > Install**, enter `@bessantoy/n8n-nodes-glpi`.\n\n## Authentication\n\nTwo credential types, selectable via the node's **Authentication** field:\n\n- **OAuth2 (Authorization Code)** — `GLPI OAuth2 API` credential. Fill in **GLPI Base URL**, **Client ID**/**Client Secret**, then connect via \"Connect my account\" (standard n8n mechanism).\n- **Password Grant** — `GLPI Password Grant API` credential, for unattended server-to-server use. Fill in **Base URL**, **Client ID/Secret**, **Username/Password**, **Scope**. The token is cached and refreshed automatically.\n\n**Context Options** (on every request): GLPI Entity, GLPI Profile, GLPI Entity Recursive, Accept Language → headers `GLPI-Entity`, `GLPI-Profile`, `GLPI-Entity-Recursive`, `Accept-Language`.\n\n## GLPI API Node — Usage\n\n1. **Category** — the actual GLPI category (the endpoint's OpenAPI tag), sorted alphabetically like the official docs.\n2. **Route** — method + path shown together (e.g. `GET /Assistance/Ticket/{id}`), exactly as in the docs.\n3. A field appears automatically for every `{placeholder}` in the route (e.g. **Asset Itemtype**, **Asset ID**), with a readable name — every field also accepts an n8n expression (`{{$json.ticket_id}}`).\n4. **Query Options** *(GET)*: Filter (RSQL), Sort, Start/Limit. **Return All** to paginate automatically.\n5. **Body** *(POST/PATCH)* — **Specify Body** field: either the free-form JSON editor, or a **Name/Value** list (like the native HTTP Request node) where numeric/boolean/JSON values are sent with their real type, and names support dot/bracket notation for nested fields (e.g. `default_entity.id`, `emails[0].email`).\n\n<p align=\"center\">\n  <img src=\"docs/images/node-parameters.png\" alt=\"Node parameters panel: Category, Route, and the automatically generated fields\" width=\"320\">\n</p>\n\n## GLPI API Node — Examples\n\n**Fetch a ticket**\n- Category: `Assistance` → Route: `GET /Assistance/Ticket/{id}` → field **ID**: `1234`\n\n**Create a ticket without writing JSON**\n- Category: `Assistance` → Route: `POST /Assistance/Ticket`\n- Specify Body: `Using Fields Below` → `name` = `Printer down`, `urgency` = `3` (sent as a number)\n\n**Endpoint with several parameters (install an OS on an asset)**\n- Category: `Assets` → Route: `POST /Assets/{asset_itemtype}/{asset_id}/OSInstallation`\n- Field **Asset Itemtype**: `Computer` · Field **Asset ID**: `1234`\n- Body: `{ \"operatingsystems_id\": 1 }`\n\n## AI Agent / MCP Tools\n\nTwo extra nodes, meant to be attached to an AI Agent or an MCP Server Trigger rather than wired by hand:\n\n<p align=\"center\">\n  <img src=\"docs/images/mcp-tools.png\" alt=\"GLPI: Find Endpoint and GLPI: Execute Endpoint attached as Tools on an MCP Server Trigger\" width=\"360\">\n</p>\n\n- **GLPI: Find Endpoint** — takes a plain-English request (`query`, e.g. \"create a ticket\") and returns the matching endpoint(s) with their exact body fields, searched from the bundled endpoint + schema indexes (no call to GLPI).\n- **GLPI: Execute Endpoint** — takes an exact `method` + `path` (as returned by Find Endpoint) plus optional `queryParams`/`body`, and calls GLPI. Shares the same **Authentication** credential as the GLPI API node.\n\nTypical flow: the agent calls Find Endpoint to discover the right route and its fields, then calls Execute Endpoint with the values it picked.\n\n## Contributing\n\nThis package is open source. For local development, updating the endpoint list on a new GLPI API version, or npm publishing, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nMIT\n\n*[IT GOUVERNANCE](https://www.it-gouvernance.fr/)*\n","readmeFilename":"README.md"}