# GLPI Tool Suite Manage GLPI IT service management (tickets, computers/assets, users). ## Prerequisites - `jq` and `curl` installed - GLPI credentials in `~/src/jarvis-brain/credentials.json` (or `$MOSAIC_CREDENTIALS_FILE`) - Required fields: `glpi.url`, `glpi.app_token`, `glpi.user_token` ## Authentication GLPI uses a two-step auth flow: 1. `session-init.sh` exchanges app_token + user_token for a session_token 2. All subsequent calls use the session_token + app_token The session token is cached at `~/.cache/mosaic/glpi-session` and auto-refreshed when expired. ## Scripts | Script | Purpose | |--------|---------| | `session-init.sh` | Initialize and cache API session | | `computer-list.sh` | List computers/IT assets | | `ticket-list.sh` | List tickets (filter by status) | | `ticket-create.sh` | Create a new ticket | | `user-list.sh` | List users | ## Common Options - `-f json` — JSON output (default: table) - `-l limit` — Result count (default: 50) - `-h` — Show help ## API Reference - Base URL: `https://help.uscllc.com/apirest.php` - Auth headers: `App-Token` + `Session-Token` - Pattern: RESTful item-based (`/ItemType/{id}`) ## Examples ```bash # List all tickets ~/.config/mosaic/tools/glpi/ticket-list.sh # List only open tickets ~/.config/mosaic/tools/glpi/ticket-list.sh -s new # Create a ticket ~/.config/mosaic/tools/glpi/ticket-create.sh -t "Server down" -c "Web server unresponsive" -p 4 # List computers as JSON ~/.config/mosaic/tools/glpi/computer-list.sh -f json ```