Software - edmozley/freeitsm GitHub Wiki
Software
Folder: software/
Colour: Indigo #5c6bc0
Software inventory tracking across the estate, plus a licence management database.
Inventory
Software inventory data is collected via the external API (api/external/software-inventory/submit/ or the more comprehensive api/external/system-info/submit/). Both endpoints authenticate with an API key generated at Software → Settings → API Keys.
The typical collection path is the PowerShell agent (scripts/Invoke-AssetInventory.ps1) — it enumerates installed software from the registry and posts to the system-info endpoint, which in turn updates the software inventory tables.
Dashboard (software/dashboard/)
Customisable Chart.js widget dashboard.
- Widget types: version distribution per application, top installed applications, publisher distribution
- Chart types: bar, pie, doughnut
- Drill-down: click any chart segment to see the underlying machines / details in a modal
- Cog icon for inline widget editing (open a modal to edit properties without leaving the dashboard)
- Drag-and-drop reordering
- Widget library for creating, editing, duplicating, and deleting widget definitions
Licences (software/licences/)
Software licence management database — record licences against applications in the software inventory.
Licence types
- Per User
- Per Device
- Site
- Concurrent
- Subscription
- Other
Tracked fields
- Licence key (encrypted at rest)
- Cost
- Renewal date — colour-coded warnings (overdue / approaching / OK)
- Portal URL (for the vendor's renewal/admin portal)
- Vendor contact
- Notes
- Status (Active / Expired / Cancelled)
Listing
Searchable and sortable table with status badges. CSV export of all licence data for spreadsheet analysis.
Settings
- API Keys: generate and revoke keys for the external software-inventory submission API and the browser extension
- Rate limit configurable in System Settings (default 60 requests/min per key)
Help
Interactive guide at software/help.php covering software inventory, dashboard widgets, licence management, data collection, settings.
Key Tables
| Table | Purpose |
|---|---|
software_inventory |
One row per machine × installed application |
software_licences |
Licence records |
apikeys |
Generated API keys with usage tracking. ⚠️ Note the spelling: apikeys, not api_keys, which is the separate REST API v1 key store behind System → API. Two different key systems, and only this one authenticates the inventory agent |