Repository navigation
1.1.0
Bud TMP v1.1.0
This release adds Cloudron packaging and first-run
setup, per-station enrolment keys, custom runs, PDF reports, and a link from
every run back to its Bloom suite.
Added
- Cloudron package — runs under Cloudron's read-only root filesystem with data and generated secrets in
/app/data; PostgreSQL and local-storage addons, optional mail;minBoxVersion9.1.0; CI smoke-tests the image against the Cloudron contract. - First-run setup —
GET /api/setup/statusandPOST /api/setupcreate the first administrator, hand over the runner registration key, and confirm by email. - Per-station enrolment keys — minted on the Test Stations page, pinned to the first station that registers, shown once, stored as a SHA-256 digest. Stations are named at mint time and renamable.
- Custom runs — a test catalogue and Custom Run screen; a selection spanning two stations becomes one queued run per station; a station polls
POST /api/runners/claim-runand executes the selected tests. - Run ↔ Bloom link — a run links back to the Bloom test suite holding its synced test cases, shown on the run detail, the run list and the dashboard.
- Dashboard filters — by time range, Test Station and suite, plus run search and a location filter.
- PDF reports —
GET /api/reports/test-runs.pdf(dashboard selection) andGET /api/reports/test-runs/{run_id}.pdf(single run), with download buttons on both screens. - Run artifacts — list and download a run's files; the upload allowlist adds CSV, SVG, PDF, pcap/pcapng, gzip, tar, GIF and WebP (HTML stays refused).
- Release pipeline — tested images are promoted by digest to
v1.1.0/1.1.0/1.1/1/stable; a published version is never overwritten; an SBOM is attached.
Changed
- Destructive actions (removing a station, revoking a key) confirm in a dialog; station row actions moved to a
…menu, keys added with+. RUNNER_API_KEYremoved from.env.exampleand the README; theteststationstable and its endpoints removed; ALM renamed PLM.- Transactional mail uses Bud's own colours; the frontend is split by route.
- Coverage measures threads and greenlets; the CI gate is 85%.
- Dependency updates — React 19, React Router 8, Node 24, and pinned backend dependencies; the audit carries no exception.
Fixed
- Constraint violations answer 409/422 with the request id; unhandled errors return the request id in the body.
- Run list search and the location filter apply on the server;
latest_per_suiteuses a window function. - Summary tiles count test cases and assertions separately; counters exclude runs in progress.
- Cloudron mail uses the STARTTLS port; delivery failures return 503 naming host, port and TLS mode.
Security
- Revoking an invitation revokes its link.
- Result uploads authenticate with the station's own key;
get_uploader_entityno longer reads the request body.
Upgrade notes
- Stations enrolled before 1.1.0 re-register once against a key minted by an administrator;
RUNNER_API_KEYis no longer read.
Full changelog: https://github.com/MbedLabs/bud/blob/main/docs/CHANGELOG.md