Files
stack/packages/mosaic/framework/tools/glpi
jason.woltje e1d3891bd1
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
fix(glpi): accept partial content in list wrappers
Accept HTTP 206 responses from ranged GLPI list endpoints while preserving failures for genuine error statuses. Add red-first regression coverage across ticket, computer, and user lists.

Closes #807

Co-Authored-By: OpenAI GPT <noreply@openai.com>
2026-07-16 17:31:44 -05:00
..

GLPI Tool Suite

Manage GLPI IT service management (tickets, computers/assets, users).

Prerequisites

  • jq and curl installed
  • GLPI credentials in ~/.config/mosaic/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

# 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