🚀 Release v1.18.1
This patch release focuses on improving data accuracy in monthly package
reporting, enhancing API robustness for transaction ingestion, and updating a
dependency. There are no database schema changes or migration requirements for
this update.
✨ Key Highlights
- More accurate operating system attribution in monthly package reports.
- Idempotent handling of duplicate transaction submissions.
Reporting & Data Accuracy
- Monthly package data now derives OS version from the most recent
executions
entry per machine (via alatest_executionsCTE) instead of
transactions.release_version. This yields more reliable OS metadata. - CSV output format for monthly package data has changed:
- Previous header:
Package Name,Servers Affected,Total Updates - New header:
OS Version,Package RPM,Servers Affected,Total Updates - RPM field now constructed as:
package-version-release.arch(example:
nginx-1.20.1-14.el9.x86_64).
- Previous header:
- CSV fields are now properly escaped when containing commas, quotes, or
newlines.
API / Transaction Ingestion
PostTransactionsendpoint now:- Uses
ON CONFLICT (transaction_id, machine_id) DO NOTHINGto avoid failing
on duplicates. - Detects when a transaction already exists and returns
200 OKwith a JSON
message:{ "message": "Transaction already exists" }instead of inserting
redundant data. - Rolls back the transaction early if the insert was a no‑op, preventing
unnecessary item inserts and ensuring idempotency.
- Uses
Dependencies
- Updated:
golang.org/x/oauth2fromv0.32.0tov0.33.0.
🐳 Docker Image
docker pull cr.rda.run/txlog/server:v1.18.1🔗 Links
- Full Changelog:
v1.18.0...v1.18.1 - Documentation: https://github.com/txlog/server
- Issues: https://github.com/txlog/server/issues