fleetbase/core-api
Core API package for Fleetbase, the open-source logistics and fleet management platform. It provides the REST API foundation—routes, controllers, resources, authentication, and extension points—for building dispatch, tracking, and fleet operations services on Laravel.
Find::httpFilterForModel() cached its answer per model class for the life of the process, so under Octane the first controller to list a model set the filter for everyone. Concretely: Fleet-Ops' order filter was applied to Storefront's order lists, so a network's orders page listed every order in the company. If you run console + Storefront/Fleet-Ops together on Octane, this is a live cross-tenant visibility bug — treat it as an incident-review item (scope of exposure, whether customer notification is warranted), not just a dependency chore.off, log, enforce), token TTL, allowed origins and publisher origin via int/v1/settings/socket, with fallback to environment when unset and every save written to the activity log. This is what makes a staged rollout decision practical: turn on log mode to measure impact without rejecting connections, then move to enforce — no restart, no redeploy, no engineer in the loop. The SOCKETCLUSTER_AUTH_KEY remains env-only and is never stored or returned, and enabling the switch without a key is refused, so the security-critical secret does not leak into the admin surface.driver.{public_id} and driver.{uuid}, matching the {type}.{id} convention clients actually subscribe to. driverAssigned.* still publishes but is deprecated. Any driver-facing app, partner integration, or webhook subscriber built on driverAssigned.* needs a migration item on the roadmap; the deprecation is your notice window, not a break.parent_uuid on internal Category responses. A flat category list can now build a tree client-side, which is the enabler for Storefront's nested product categories. Cheap, additive unblock for a merchandising/catalogue roadmap item.VerificationCode::generateSmsVerificationFor() accepts a phone option so a code is sent to the number being verified, with the SMS guard counting and tracing the send against it. This remains a hard dependency for the Storefront phone-change endpoint (fleetbase/storefront v0.4.25 requires fleetbase/core-api ^1.6.70), and it closed a silent failure where a subject with no phone got a success response and no text.Adopt (and in the two fixes below, prioritise) when:
log → enforce rollout, per-environment origins, and an audit trail of who changed what.{type}.{id} channel convention that were missing driver-assigned events — and subscribers still on driverAssigned.* that need a deprecation migration.deploy.sh already running cache:clear.Look elsewhere or scope carefully when:
fleetbase/core-api 1.6.70 and cannot upgrade — the Storefront phone-change endpoint will not work.fleetbase/fleetbase v0.7.70 — it will keep reading its own environment and simply won't pick up console-managed settings; the admin UI would then be misleading, so upgrade both or neither.For executives: v1.6.71 is a low-cost, no-migration upgrade that closes two real data-integrity defects. First, an order-list filter was being cached per model and leaking across apps under Octane — a network's orders page could list every order in the company. Second, live and test-mode data were sharing API cache entries, so a test-mode console could be served live data. Both are trust-and-compliance issues with a straightforward remedy: upgrade on the next dependency pass, and review exposure scope given the first one. Alongside the fixes, realtime channel authentication moves into the admin console (switch, mode, token TTL, allowed origins) with an activity-log audit trail and no restart required, which lets us stage realtime enforcement safely instead of flipping it in an env file. One deprecation to note: driverAssigned.* events are superseded by driver.{id}, so any partner or in-house client on the old channel needs a scheduled migration.
For engineering: Upgrade is additive — no upgrade steps. Five changes to know:
Find::httpFilterForModel() and Find::httpRequestForModel() are now keyed by the model's own filter/request class, and convention-discovered filters are picked per request audience. Fixes the Fleet-Ops filter bleeding into Storefront order lists under Octane (#315).{api_query}:mysql:… / {api_query}:sandbox:…), isolating live from sandbox list, model and relationship caches (#312). Old entries keep old keys and expire within TTL; deploy.sh already clears cache.GET/POST int/v1/settings/socket and signed GET int/v1/socket/config (#314). Values fall back to environment when unset; SOCKETCLUSTER_AUTH_KEY stays env-only and enabling the switch without it is refused; saves are activity-logged. Requires socket server fleetbase/fleetbase v0.7.70+ to consume the signed config at runtime.driver.{public_id} and driver.{uuid}; driverAssigned.* still publishes but is deprecated (#311). Update client subscriptions and add a deprecation note to any integration docs.parent_uuid (#316) — additive, no client breakage.Recommended actions: upgrade in the next routine pass but flag #315 for a security/exposure review first; add regression coverage for cross-app filter resolution under Octane and for live-vs-sandbox cache key separation; and carry forward the outstanding v1.6.70 test gap on the "subject has no phone" verification path, which previously reported success without delivering a code.
How can I help you explore Laravel packages today?