Firmware

The firmware catalogue and the installed BIOS and BMC versions.

10 endpoints

Firmware catalogue

#

GET/api/v1/firmware/catalog

Admin only

Example

curl "https://panel.example.com/api/v1/firmware/catalog" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Add a catalogue entry

#

POST/api/v1/firmware/catalog

Admin only

match is a case-insensitive piece of the BIOS family/version plus server model (BIOS) or of the BMC model (BMC); the longest match wins.

Request body

  • componentstringrequired

    one of bios, bmc

  • matchstringrequired

    min. 2 chars, max. 100 chars

  • latestVersionstringrequired

    min. 1 chars, max. 100 chars

  • releaseDatestring | null

    max. 40 chars

  • urlstring

    max. 1000 chars, default ""

  • imageUrlstring

    max. 1000 chars, default ""

  • notesstring

    max. 2000 chars, default ""

Example

curl -X POST "https://panel.example.com/api/v1/firmware/catalog" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"component":"bios","match":"P89","latestVersion":"P89 v3.40","releaseDate":"2024-08-29","url":"https://support.example.com/p89","notes":""}'

Update a catalogue entry

#

PATCH/api/v1/firmware/catalog/{id}

Admin only

Path parameters

  • id integer> 0

Request body

  • componentstring

    one of bios, bmc

  • matchstring

    min. 2 chars, max. 100 chars

  • latestVersionstring

    min. 1 chars, max. 100 chars

  • releaseDatestring | null

    max. 40 chars

  • urlstring

    max. 1000 chars

  • imageUrlstring

    max. 1000 chars

  • notesstring

    max. 2000 chars

Example

curl -X PATCH "https://panel.example.com/api/v1/firmware/catalog/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"component":"bios","match":"match","latestVersion":"latestVersion"}'

Delete a catalogue entry

#

DELETE/api/v1/firmware/catalog/{id}

Admin only

Path parameters

  • id integer> 0

Example

curl -X DELETE "https://panel.example.com/api/v1/firmware/catalog/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Firmware overview

#

GET/api/v1/firmware/overview

Admin only

Every server with installed and newest versions and its state, catalogue usage, and suggestions for hardware without an entry.

Example

curl "https://panel.example.com/api/v1/firmware/overview" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Read firmware from the BMCs

#

POST/api/v1/firmware/refresh

Admin only

Runs in the background and returns 202 with the number of servers.

Request body

  • serverIdsinteger[]

    max. 1000 items

Example

curl -X POST "https://panel.example.com/api/v1/firmware/refresh" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Firmware version changes and update jobs of all servers

#

GET/api/v1/firmware/history

Admin only

Firmware changes of all servers, newest first: every version a server reported (from the BMC or hardware collect) with the version it replaced (from: null = first reading), and the firmware update jobs with their result.

Query parameters

  • limit integer≥ 1, ≤ 1000, default 200

Example

curl "https://panel.example.com/api/v1/firmware/history" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Update all outdated servers of a catalogue entry (one job per server)

#

POST/api/v1/firmware/catalog/{id}/rollout

Admin onlyNeeds confirm with the hostname

Update every server that a catalogue entry marks as outdated (or only the given ones) to the entry's version: one firmware_update job per server (protected servers, maintenance, dry-run and the per-server job lock apply; refused servers are listed in skipped). Confirm by typing the entry's "Applies to" (e.g. iLO 4).

Path parameters

  • id integer> 0

Request body

  • serverIdsinteger[]

    min. 1 items, max. 500 items

  • confirmstringrequired

    max. 100 chars

Example

curl -X POST "https://panel.example.com/api/v1/firmware/catalog/42/rollout" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm":"web-01"}'

Update BIOS or BMC firmware

#

POST/api/v1/servers/{id}/firmware/update

Admin onlyNeeds confirm with the hostname

Update BIOS or BMC firmware through the BMC (Redfish SimpleUpdate). Without imageUrl the catalogue entry that matches the server provides image and target version.

Path parameters

  • id integer> 0

Request body

  • componentstringrequired

    one of bios, bmc

  • imageUrlstring

    max. 1000 chars, pattern ^https?:\/\/

  • versionstring

    max. 100 chars

  • forceboolean

    default false

  • confirmstring

    max. 253 chars

Example

curl -X POST "https://panel.example.com/api/v1/servers/42/firmware/update" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"component":"bios"}'

Firmware state of a server

#

GET/api/v1/servers/{id}/firmware

Installed BIOS and BMC versions, the newest catalogue version and state (current, outdated, unknown), plus the version history.

Path parameters

  • id integer> 0

Example

curl "https://panel.example.com/api/v1/servers/42/firmware" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"