v2.2.0
What's new
This release adds drift detection — read-only endpoints that diff BridgePort's stored view of a service, server, or environment against what's actually running on the host — and promotes the Go HTTP client to a standalone, importable module so external tooling can consume it directly. No database migrations; nothing to do on upgrade beyond pulling the new image.
Features
Drift detection endpoints (#218)
Three new read-only endpoints surface where BridgePort's database has diverged from the live host — handy after an upgrade, an out-of-band change, or a post-incident sweep, without SSHing in and eyeballing each service by hand.
GET /api/services/:id/drift— per-deployment diff (keyed by server) of compose path & content, image digest, exposed ports, attached config-file content, and managed env vars.GET /api/servers/:id/drift— every deployment on one server.GET /api/environments/:envId/drift— environment-wide roll-up, per service and per server.- Each field reports
match: booleanwithexpected/actualwhen it differs. Comparisons that can't be resolved cleanly (e.g. digest-mode caveats, operator-maintained or shared compose files) returnmatch: nullwith areasonrather than a false-positive mismatch.
Safe by construction: the host is only ever read (docker inspect + file reads, never mutating commands), the endpoints are viewer-accessible (no operator/admin gate), and no secrets leak — compose/config drift compares redacted-text checksums and env drift returns only BridgePort-managed key names, never decrypted values.
Importable Go client module (#217)
The typed Go HTTP client (previously locked inside cli/internal/api) is now a standalone, versioned module at github.com/bridgeinpt/bridgeport/client, so other tooling — most immediately the planned Terraform provider — can import it instead of forking and hand-chasing API changes.
- Self-contained module (stdlib + testify-for-tests only), so
go get github.com/bridgeinpt/bridgeport/client@<tag>works for external consumers. - The CLI now consumes the extracted module; its long-broken module path is fixed (
bridgeport-cli→github.com/bridgeinpt/bridgeport/cli). No CLI behavior change. - Client
README.md(install, bearer auth,*APIErrorhandling, worked example) and aCONTRIBUTING.mdsection documenting theclient/vX.Y.Zmulti-module tagging convention.
The client module is versioned independently of the platform — see the note below about its client/ tag.
API changes
Added
GET /api/services/:id/drift,GET /api/servers/:id/drift,GET /api/environments/:envId/drift— read-only drift reports, viewer-accessible. (#218)
No deprecations or removals.
Under the hood
- Go toolchain (Docker base image) —
golang1.26-alpine → 1.26.4-alpine (#219)
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgEyiv4hf6iBgr34ICjN6HnEP/vs
Yr31eNU5HhdkQaYd4AAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQKz9Rl99zkk+CwZFqzUaCeVgDT6GpinTALIbgBKU4AzU0tDv8OjoMPOJ1tP5umAPef
StcKA/HFGqAnzuI91uBQw=
-----END SSH SIGNATURE-----