diff --git a/.github/workflows/ember.yml b/.github/workflows/ember.yml index 7d1b52c34..df7d1fa1b 100644 --- a/.github/workflows/ember.yml +++ b/.github/workflows/ember.yml @@ -2,11 +2,11 @@ name: Ember.js CI on: push: - branches: [ main ] + branches: [ main, 'dev-v*' ] tags: - 'v*' pull_request: - branches: [ main ] + branches: [ main, 'dev-v*' ] env: NODE_VERSION: 22.x diff --git a/.github/workflows/postman.yml b/.github/workflows/postman.yml index 820bb0159..04fc271e7 100644 --- a/.github/workflows/postman.yml +++ b/.github/workflows/postman.yml @@ -4,22 +4,33 @@ name: API Contract (Postman) # collection against the live API. Delegates to the reusable workflow in # fleetbase/fleetbase. Requires org secrets POSTMAN_API_KEY + _GITHUB_AUTH_TOKEN # (inherited); no-ops until POSTMAN_API_KEY is set. -# TODO: change @dev-v0.7.53 to @main once that branch is merged. +# +# Deliberately unpinned. The reusable workflow defaults to booting fleetbase/fleetbase@main +# against fleetbase/fleetbase-api:latest, so every release is picked up automatically and +# there is no ref here to remember to bump. Each run records the image digest it actually +# resolved in its job summary, so a result stays traceable. To reproduce an older run: +# +# with: +# fleetbase-ref: v0.7.53 +# api-image: fleetbase/fleetbase-api:v0.7.53 on: push: - branches: [main] + branches: [main, 'dev-v*'] pull_request: - branches: [main] + branches: [main, 'dev-v*'] workflow_dispatch: - permissions: contents: read jobs: contract: - uses: fleetbase/fleetbase/.github/workflows/api-contract.yml@dev-v0.7.53 + uses: fleetbase/fleetbase/.github/workflows/api-contract.yml@main with: collections: "Fleetbase API" build-from-source: false + # Without this the run tests the version of fleetbase/fleetops-api baked into the + # published image, not the branch under review. The workflow checks this + # repository out at the commit under test and swaps it into the container. + overlay-package: fleetbase/fleetops-api secrets: inherit diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index a47be23db..736f25296 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -2,11 +2,11 @@ name: PHP CI on: push: - branches: [ main ] + branches: [ main, 'dev-v*' ] tags: - 'v*' pull_request: - branches: [ main ] + branches: [ main, 'dev-v*' ] jobs: build: diff --git a/RELEASE.md b/RELEASE.md index 035f4ca38..29af9ef76 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,13 +1,34 @@ -> v0.6.59 ~ "RELEASE_NOTES_PLACEHOLDER — replace this line with the release title" +> v0.6.60 ~ "Closes an authentication bypass, and clears a run of API 500s" --- ## Highlights +A security fix and a broad sweep of public API defects surfaced by running the official Postman collection against a live stack. Several endpoints answered `500` where a `404` or `422` belonged, and a few were unreachable entirely. -RELEASE_NOTES_PLACEHOLDER +--- +## Security +- **Closed a verify-code authentication bypass in the driver flow.** Please upgrade. +- The non-production verification-code bypass is now scoped to explicitly designated review accounts, so a bypass code alone is not enough — the identity has to be on the allowlist too. + +--- +## Bug Fixes +- **Driver `register-device` was unreachable on both driver routes.** Laravel never injects a class-typed parameter that declares a default, so the injected request was always null. +- **Geofence driver history asked for a UUID the API never issues.** It now resolves the driver by the public id callers actually hold. +- **`/from-qr` returned a 500**, and the QR code's content is now published in debug mode so the flow can be exercised. +- **Fuel reports could not be created without a location**, and could not be updated. +- **A sensor could not be created at all** — `last_position` had no default. +- **Customer signup with a place failed** — the Place location now defaults. +- Unknown onboard organization answers `404` instead of `500`. +- Duplicate part SKU and fuel transaction answer `422` instead of `500`. +- Restored the vehicle maintenance schedule workflows. -Describe what changed in this release. The first line above must name the version -being released, and both placeholder markers must be gone, or the release workflow -refuses to tag. +--- +## Testing +- Coverage restored to 100% across the QR, geofence, driver auth, customer request and navigator changes. + +--- +## Continuous Integration +- The server, Ember and Postman workflows now run on `dev-v*` release branches. +- The contract run tests this branch's API code rather than the published package. --- ## Need help? diff --git a/addon/components/vehicle/details/schedules.hbs b/addon/components/vehicle/details/schedules.hbs index 5fc3f0b4e..859a72873 100644 --- a/addon/components/vehicle/details/schedules.hbs +++ b/addon/components/vehicle/details/schedules.hbs @@ -33,8 +33,8 @@
No maintenance schedules for this vehicle.
- +