End-of-life data
on your HaloPSA assets
What it does
Once a day it reads each asset's operating system and the software rows on its Software tab, matches them to endoflife.ai lifecycle data for 700+ products, and writes the answer back onto the asset. The asset shows its worst row; a detail field lists every operating system and software row with its own verdict.
Nothing is guessed. A title we do not track is reported as not tracked, and an operating system recorded too loosely to name a release, such as a bare "Windows 10", is reported as needs a more specific version instead of being given a date that might be wrong.
The twelve fields
Set it up
The full guide, with every command and option, is the README in the repository: github.com/endoflife-ai/halo-integration. In short:
Step 1
In Halo, under Configuration → Integrations → Halo API → Applications, register an application with the Client Credentials method and five permissions: read:assets, edit:assets, read:tickets, edit:tickets, read:customers.
Step 2
Create the twelve fields once under Configuration → Asset Management → Asset Fields (type Text). Creating a field is configuration, so through the API it needs Halo's admin API permission; the recommended path keeps the application to the five permissions above and the setup script only attaches the fields to your asset types.
Step 3
Put the client ID, client secret and your endoflife.ai API key in halo.env, attach the fields, then preview before anything is written.
git clone https://github.com/endoflife-ai/halo-integration cd halo-integration node setup-fields.mjs node sync.mjs --dry-run --report run.json node sync.mjs --tickets --ticket-type <id>
Schedule the last line once a day. Only changed values are written, and a ticket is never opened twice for the same asset and release.
Fits inside your Halo limits
Halo allows a fixed number of API calls per five minutes for each tenant host, shared by every integration calling it. This one stays well below that ceiling, pauses when it reaches its own lower limit, and backs off when Halo asks, so your RMM sync and other integrations keep their headroom. A run costs about one call per asset plus one write per fifty changed assets.
Not on HaloPSA?
The same data runs our Dynatrace, Datadog and Grafana integrations and the developer API.
All integrations Developer API Risk Score methodology