Compare commits

...

5 Commits

Author SHA1 Message Date
Ronald A. Richardson
0bcd9ec165 fix: always generate extension loader files even when no extensions are installed
When no extensions are installed, generateExtensionFiles() previously
returned early after cleaning up the app/extensions directory. This left
the directory absent, causing a fatal module resolution error at runtime:

  Error: Could not find module `@fleetbase/console/extensions`
  imported from `@fleetbase/ember-core/services/universe/extension-manager`

The extension-manager service in @fleetbase/ember-core has a hard static
import:

  import { getExtensionLoader } from '@fleetbase/console/extensions';

Ember's module resolver maps this to app/extensions/index.js. Because
that file was never created in the zero-extension scenario, the entire
application failed to boot.

Changes:
- Remove the early return when extensions.length === 0.
- Restructure generateExtensionFiles() so that generateExtensionLoaders(),
  generateRouter(), and generateExtensionsManifest() are always called,
  regardless of whether any extensions are discovered.
- generateExtensionShims() is still only called when extensions > 0, as
  there are no shim files to write in the empty case.
- When no extensions are found, generateExtensionLoaders() writes an
  app/extensions/index.js with an empty EXTENSION_LOADERS = {} object,
  satisfying the module dependency without registering any loaders.
- generateExtensionsManifest() writes public/extensions.json with an
  empty array [], which is the correct state for zero extensions.

Additionally, add null-guards to the recast AST visitor inside
generateRouter() to prevent a potential TypeError when traversing call
expressions whose callee is not a MemberExpression (e.g. bare require()
or import() calls that have no .property).
2026-02-28 03:44:37 -05:00
Ron
29c23e373f Merge pull request #508 from fleetbase/dev-v0.7.30
Some checks are pending
Fleetbase CI / Build and Start Docker Services (push) Waiting to run
v0.7.30 <> Patches extensions endpoint + fleetops #507
2026-02-28 10:24:05 +08:00
Ronald A. Richardson
e09ed5e85c docs: correct v0.7.30 release notes and README CLI section
- Scope RELEASE.md to only the three in-scope changes:
  registry-bridge public endpoint fix, fleetops driver vehicle
  validation, and fleetbase-cli flb search command
- Remove internals/account deletion content (not open source scope)
- Fix README: remove 'without authentication' from flb search description
- Condense Browsing Extensions section to minimal code block
2026-02-27 21:03:27 -05:00
Ronald A. Richardson
17a6ad34d8 docs: add v0.7.30 release notes and flb search to README
- Add RELEASE.md for v0.7.30 documenting:
  - FleetOps ResolvableVehicle fix (driver creation TypeError)
  - Registry Bridge public extensions endpoint sanitization
  - Fleetbase CLI flb search/list-extensions command
  - Internals 14-day account deletion grace period
  - PurgeSuspendedOrganizations canceled-only fix
  - WarnSuspendedOrganizations auto-clear on reactivation
- Add flb search [query] to README CLI commands table
- Add Browsing Extensions section with usage examples
2026-02-27 20:57:27 -05:00
Ronald A. Richardson
269175ff51 v0.7.30 <> Patches extensions endpoint + fleetops #507 2026-02-28 09:53:46 +08:00
10 changed files with 96 additions and 148 deletions

View File

@@ -191,6 +191,7 @@ npm install -g @fleetbase/cli
|---------|-------------|
| `flb install-fleetbase` | Install Fleetbase using Docker with interactive setup |
| `flb set-auth <token>` | Set your registry authentication token for installing extensions |
| `flb search [query]` | Search and browse available extensions |
| `flb install <extension>` | Install an extension to your Fleetbase instance |
| `flb uninstall <extension>` | Uninstall an extension from your instance |
| `flb register` | Register a Registry Developer Account |
@@ -204,6 +205,16 @@ npm install -g @fleetbase/cli
Extensions are modular components that enhance the functionality of your Fleetbase instance. They allow you to add new features, customize existing behavior, or integrate with external systems.
### Browsing Extensions
```bash
flb search # list all extensions
flb search fleet # search by keyword
flb search --category logistics
flb search --free
flb search --json # machine-readable output
```
### Installing Extensions
To install extensions on a self-hosted instance:

View File

@@ -1,114 +1,58 @@
# 🚀 Fleetbase v0.7.29 — 2026-02-27
# 🚀 Fleetbase v0.7.30 — 2026-02-28
> "Major security enhancements, analytics tracking, developer tools, and UX improvements"
> "Extension discovery, driver vehicle validation, and CLI search"
---
## ✨ Highlights
This release brings **critical security patches**, comprehensive **analytics event tracking** across the platform, enhanced **developer account management** for the extension marketplace, and several **user experience improvements** including accurate geolocation detection.
This release includes two bug fixes and one new feature: a corrected public extension discovery endpoint in the Registry Bridge, a driver vehicle validation patch in FleetOps, and a new `flb search` command in the Fleetbase CLI.
### 🔒 Security Enhancements
### 🔌 Registry Bridge — Public Extension Discovery
Fleetbase v0.7.29 includes critical security fixes that strengthen tenant isolation and prevent unauthorized access. The **core-api** has been patched to address a systemic tenant isolation vulnerability (GHSA-3wj9-hh56-7fw7) with the introduction of a `CompanyScope` global scope that enforces proper tenant boundaries. Additional security improvements include removal of hardcoded authentication bypasses, enforcement of strong password policies across all validators, and prevention of user enumeration in login flows. Cross-tenant IDOR vulnerabilities have been resolved with company-scoped authorization checks throughout the API.
The public extensions listing endpoint (`~registry/v1/extensions`) has been corrected and hardened. A dedicated `PublicRegistryExtension` API resource now sanitizes the response, stripping all sensitive fields before they leave the server. The `install_count` aggregation has been fixed to use `withCount('installs')` and the incorrect `author` relationship has been replaced with the proper `company` relationship. The endpoint returns a clean, flat array.
### 📊 Analytics & Event Tracking
### 🚛 FleetOps — Driver Vehicle Validation
A comprehensive **events service** has been added to **ember-core**, providing centralized analytics tracking across all core services. The system emits both generic events (e.g., `resource.created`) and specific events (e.g., `order.created`) using a standardized dot notation naming convention. Event tracking has been integrated into CRUD operations (create, update, delete, bulk actions, import, export) and resource actions across the platform. In **FleetOps**, 30 controllers now emit analytics events, and import operations return accurate counts of imported records. The dual event system fires on both the events service and universe service, enabling cross-engine communication for analytics integrations like PostHog.
A `TypeError` that occurred when creating a driver with a vehicle object sent from the frontend has been resolved. A new `ResolvableVehicle` validation rule accepts a `public_id` string (e.g., `vehicle_abc123`), a UUID string, or an object/array containing an `id`, `public_id`, or `uuid` key. Vehicle normalization has been added to both `createRecord()` and `updateRecord()` in `DriverController` so the correct vehicle UUID is always resolved before persistence.
### 🛠️ Developer Tools & Marketplace
### 🔍 Fleetbase CLI — Extension Search Command
The **registry-bridge** now supports **Registry Developer Accounts** for self-hosted instances, enabling developers to publish and monetize extensions through a centralized marketplace. The Universal Extension Marketplace backend provides a public extension listing endpoint with 15-minute caching for performance. Stripe Connect account management has been added, allowing developers to update bank account details after initial onboarding. The **fleetbase-cli** has been significantly enhanced with new commands including `flb register` for developer account registration, `flb verify` for email verification, `flb resend-verification` for expired codes, and `flb install-fleetbase` for Docker-based installation with automatic repository cloning.
### 🌍 Geolocation & UX Improvements
A critical bug affecting user onboarding has been fixed where the system was displaying the **server's location** instead of the **user's actual location**. The **ember-core** now implements frontend IP lookup using multiple geolocation APIs (geoiplookup.io and ipapi.co) with automatic fallback support and localStorage caching. The **phone-input component** in **ember-ui** has been updated to use this frontend IP lookup, ensuring accurate country code detection for phone number formatting. The **IAM engine** now features tabbed user type sections in the users management interface for better organization.
### 📈 Reporting & Data Access
**FleetOps** now exposes the `meta` column and `Transaction` relationships in the Orders report schema, enabling users to query and report on order metadata, custom fields, and financial data including transaction amounts, line items, and aggregates. This resolves a significant limitation where critical financial data was previously inaccessible in reports.
### 🌐 Internationalization
Support for **KZT (Kazakhstani Tenge)** currency has been added across both **core-api** and **ember-ui**, expanding Fleetbase's international capabilities.
---
## 🔐 Security Fixes
- **[core-api]** Patched critical tenant isolation vulnerability (GHSA-3wj9-hh56-7fw7) with CompanyScope global scope
- **[core-api]** Removed hardcoded SMS auth bypass code, replaced with environment-driven bypass for non-production
- **[core-api]** Fixed cross-tenant IDOR vulnerabilities with company-scoped authorization
- **[core-api]** Enforced strong password policy across all validators
- **[core-api]** Prevented user enumeration in login flow
- **[core-api]** Restored authToken re-authentication with identity verification
A new `flb search [query]` command (alias: `flb list-extensions`) lets developers and administrators browse all available extensions directly from the terminal. Results are displayed in a formatted, colour-coded table showing the extension name, category, publisher, version, price, and supported install formats. Filtering options include `--category`, `--free`, `--json`, `--simple`, and `--host`.
---
## ✨ New Features
### Analytics & Tracking
- **[ember-core]** Added centralized events service for analytics tracking across all core services
- **[ember-core]** Event tracking in CRUD service (create, update, delete, bulk actions, import, export)
- **[ember-core]** Dual event system (fires on both events service and universe service)
- **[fleetops]** Added event tracking to 30 FleetOps controllers for event tracking
- **[fleetops]** Import operations now return count of imported records in response
### Developer Tools
- **[registry-bridge]** Registry Developer Account support for self-hosted instances
- **[registry-bridge]** Universal Extension Marketplace backend with public extension listing endpoint
- **[registry-bridge]** Stripe Connect account management for bank account updates
- **[registry-bridge]** Email verification for developer accounts using VerificationCode model
- **[registry-bridge]** Automatic registry token generation upon email verification
- **[fleetbase-cli]** Added `flb register` command for Registry Developer Account registration
- **[fleetbase-cli]** Added `flb verify` command for email verification
- **[fleetbase-cli]** Added `flb resend-verification` command to request new verification codes
- **[fleetbase-cli]** Added `flb install-fleetbase` command for Docker-based installation
- **[fleetbase-cli]** Auto-clone Fleetbase repository if not present during installation
- **[fleetbase-cli]** Support for `--host` parameter to work with self-hosted instances
### Reporting & Data
- **[fleetops]** Exposed meta column and Transaction relationships in Orders report schema for financial reporting
- **[core-api]** User cache now includes updated_at timestamp for automatic cache busting
### UI/UX
- **[iam-engine]** Added tabbed user type sections to users management interface
- **[iam-engine]** Enhanced edit user interface with better validation and error handling
### Internationalization
- **[core-api]** Added KZT (Kazakhstani Tenge) currency support
- **[ember-ui]** Added support for KZT currency
- **[fleetbase-cli]** Added `flb search [query]` command (alias: `flb list-extensions`) for browsing available extensions
- **[fleetbase-cli]** `--category` filter to narrow results by extension category
- **[fleetbase-cli]** `--free` flag to list only free extensions
- **[fleetbase-cli]** `--json` flag for machine-readable JSON output
- **[fleetbase-cli]** `--simple` flag for plain-text terminal output
- **[fleetbase-cli]** `--host` option to target self-hosted registry instances
---
## 🐛 Bug Fixes
### Geolocation
- **[ember-core]** Implemented frontend IP lookup to get accurate user location (fixes onboarding showing server location)
- **[ember-core]** Added lookup-user-ip utility with multi-API fallback support (geoiplookup.io and ipapi.co)
- **[ember-core]** localStorage caching for IP lookup results (1 hour TTL)
- **[ember-core]** Graceful fallback to browser timezone when geolocation APIs fail
- **[ember-ui]** Updated phone-input component to use frontend IP lookup (fixes incorrect country code detection)
- **[ember-ui]** Phone input now always initializes with US fallback if geolocation fails
### FleetOps
- **[fleetops]** Fixed `TypeError` when creating a driver with a vehicle object sent from the frontend
- **[fleetops]** Added `ResolvableVehicle` validation rule accepting `public_id`, UUID, or object with `id`/`public_id`/`uuid`
- **[fleetops]** Added vehicle normalization in `DriverController::createRecord()` and `updateRecord()`
### Core Fixes
- **[core-api]** Verification codes now default to 'pending' status
- **[core-api]** Fixed verification email HTML rendering (button component)
- **[core-api]** Prevented empty email/phone on user update
- **[core-api]** Resolved camelCase expansion methods from snake_case query params in Filter
- **[fleetops]** Prevented duplicate driver creation when user_uuid already has a driver profile
- **[registry-bridge]** Made developer account registration routes public (no auth required)
- **[registry-bridge]** Polymorphic purchaser relationship for extension purchases (supports both Company and RegistryDeveloperAccount)
### Registry Bridge
- **[registry-bridge]** Fixed `install_count` column error by switching to `withCount('installs')` eager load
- **[registry-bridge]** Removed incorrect `author` relationship; replaced with correct `company` relationship
- **[registry-bridge]** Removed sensitive data (internal UUIDs, Stripe IDs, private relationships) from public endpoint response
- **[registry-bridge]** Public extensions endpoint now returns a plain array without a wrapping key
---
## 🔧 Improvements
- **[fleetops]** Moved avatar management to FleetOps settings
- **[ember-ui]** Faster phone input lookup (1 network hop vs 2, no backend dependency)
- **[fleetbase-cli]** Better error handling and debugging for all commands
- **[fleetbase-cli]** Skip interactive prompts when command-line options are provided
- **[ember-core]** Standardized event naming with dot notation (e.g., resource.created, order.created)
- **[fleetbase-cli]** Price display correctly converts cents to dollars in search results
- **[fleetbase-cli]** Search results show both install formats: `flb install fleetbase/<slug>` and `flb install <extension_id>`
- **[registry-bridge]** Extension listing response is a clean, flat array for easier consumption by CLI and third-party tools
---
@@ -136,13 +80,9 @@ docker compose exec application bash -c "./deploy.sh"
## 📦 Component Versions
- **core-api**: v1.6.36
- **fleetops**: v0.6.36
- **registry-bridge**: v0.1.6
- **iam-engine**: v0.1.7
- **ember-core**: v0.3.11, v0.3.12
- **ember-ui**: v0.3.20, v0.3.21
- **fleetbase-cli**: v0.0.4
- **fleetops**: v0.6.37
- **registry-bridge**: v0.1.7
- **fleetbase-cli**: v0.0.5
---

View File

@@ -21,8 +21,8 @@
"php": ">=8.0 <=8.2.30",
"appstract/laravel-opcache": "^4.0",
"fleetbase/core-api": "^1.6.37",
"fleetbase/fleetops-api": "^0.6.36",
"fleetbase/registry-bridge": "^0.1.6",
"fleetbase/fleetops-api": "^0.6.37",
"fleetbase/registry-bridge": "^0.1.7",
"fleetbase/storefront-api": "^0.4.13",
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^10.0",

42
api/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "6327bc3172d3e92c060c576df8b57919",
"content-hash": "784bd052687a49a240afcf2a8b3a651e",
"packages": [
{
"name": "appstract/laravel-opcache",
@@ -124,16 +124,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.371.2",
"version": "3.371.3",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec"
"reference": "d300ec1c861e52dc8f17ca3d75dc754da949f065"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec",
"reference": "32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d300ec1c861e52dc8f17ca3d75dc754da949f065",
"reference": "d300ec1c861e52dc8f17ca3d75dc754da949f065",
"shasum": ""
},
"require": {
@@ -197,11 +197,11 @@
"authors": [
{
"name": "Amazon Web Services",
"homepage": "http://aws.amazon.com"
"homepage": "https://aws.amazon.com"
}
],
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
"homepage": "http://aws.amazon.com/sdkforphp",
"homepage": "https://aws.amazon.com/sdk-for-php",
"keywords": [
"amazon",
"aws",
@@ -215,9 +215,9 @@
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.371.2"
"source": "https://github.com/aws/aws-sdk-php/tree/3.371.3"
},
"time": "2026-02-26T19:06:10+00:00"
"time": "2026-02-27T19:05:40+00:00"
},
{
"name": "aws/aws-sdk-php-laravel",
@@ -2323,16 +2323,16 @@
},
{
"name": "fleetbase/fleetops-api",
"version": "0.6.36",
"version": "0.6.37",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/fleetops.git",
"reference": "2a6178e011ed2aad1fe3e5cb67308455c48e1cca"
"reference": "071a0f06fbe60b7a98fb84686112cc0cd2c3018c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/2a6178e011ed2aad1fe3e5cb67308455c48e1cca",
"reference": "2a6178e011ed2aad1fe3e5cb67308455c48e1cca",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/071a0f06fbe60b7a98fb84686112cc0cd2c3018c",
"reference": "071a0f06fbe60b7a98fb84686112cc0cd2c3018c",
"shasum": ""
},
"require": {
@@ -2407,9 +2407,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/fleetops/issues",
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.36"
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.37"
},
"time": "2026-02-27T07:56:16+00:00"
"time": "2026-02-28T01:43:39+00:00"
},
{
"name": "fleetbase/laravel-mysql-spatial",
@@ -2479,16 +2479,16 @@
},
{
"name": "fleetbase/registry-bridge",
"version": "0.1.6",
"version": "0.1.7",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/registry-bridge.git",
"reference": "3e6ba698f5015616ec88c336fe66e98701442ad2"
"reference": "52441e2b2c56d74afb02a216f962cd712c356efd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/registry-bridge/zipball/3e6ba698f5015616ec88c336fe66e98701442ad2",
"reference": "3e6ba698f5015616ec88c336fe66e98701442ad2",
"url": "https://api.github.com/repos/fleetbase/registry-bridge/zipball/52441e2b2c56d74afb02a216f962cd712c356efd",
"reference": "52441e2b2c56d74afb02a216f962cd712c356efd",
"shasum": ""
},
"require": {
@@ -2555,9 +2555,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/registry-bridge/issues",
"source": "https://github.com/fleetbase/registry-bridge/tree/v0.1.6"
"source": "https://github.com/fleetbase/registry-bridge/tree/v0.1.7"
},
"time": "2026-02-27T07:58:45+00:00"
"time": "2026-02-28T01:41:56+00:00"
},
{
"name": "fleetbase/storefront-api",

View File

@@ -59,27 +59,24 @@ module.exports = {
const extensions = await this.getExtensions();
if (extensions.length === 0) {
console.log('[Fleetbase] No extensions found');
return;
if (extensions.length > 0) {
console.log(`[Fleetbase] Discovered ${extensions.length} extension(s)`);
extensions.forEach((ext) => {
console.log(`[Fleetbase] - ${ext.name} (v${ext.version})`);
});
console.log('');
// Generate extension shims (only needed when extensions are present)
this.generateExtensionShims(extensions);
} else {
console.log('[Fleetbase] No extensions found — generating empty extension loader to satisfy module dependencies.');
}
console.log(`[Fleetbase] Discovered ${extensions.length} extension(s)`);
extensions.forEach((ext) => {
console.log(`[Fleetbase] - ${ext.name} (v${ext.version})`);
});
console.log('');
// Generate extension shims
this.generateExtensionShims(extensions);
// Generate extension loaders
// Always generate loaders, router, and manifest so that
// @fleetbase/console/extensions (app/extensions/index.js) always exists
// and the build does not fail when zero extensions are installed.
this.generateExtensionLoaders(extensions);
// Generate router
this.generateRouter(extensions);
// Generate manifest
this.generateExtensionsManifest(extensions);
},
@@ -227,7 +224,7 @@ export default getExtensionLoader;
recast.visit(ast, {
visitCallExpression(path) {
if (path.value.type === 'CallExpression' && path.value.callee.property.name === 'route' && path.value.arguments[0].value === 'console') {
if (path.value.type === 'CallExpression' && path.value.callee.property && path.value.callee.property.name === 'route' && path.value.arguments[0] && path.value.arguments[0].value === 'console') {
let functionExpression;
// Find the function expression
@@ -270,7 +267,7 @@ export default getExtensionLoader;
}
}
if (path.value.type === 'CallExpression' && path.value.callee.property.name === 'map') {
if (path.value.type === 'CallExpression' && path.value.callee.property && path.value.callee.property.name === 'map') {
let functionExpression;
path.value.arguments.forEach((arg) => {

View File

@@ -1,6 +1,6 @@
{
"name": "@fleetbase/console",
"version": "0.7.29",
"version": "0.7.30",
"private": true,
"description": "Modular logistics and supply chain operating system (LSOS)",
"repository": "https://github.com/fleetbase/fleetbase",
@@ -37,10 +37,10 @@
"@fleetbase/ember-core": "^0.3.12",
"@fleetbase/ember-ui": "^0.3.21",
"@fleetbase/fleetops-data": "^0.1.25",
"@fleetbase/fleetops-engine": "^0.6.36",
"@fleetbase/fleetops-engine": "^0.6.37",
"@fleetbase/iam-engine": "^0.1.7",
"@fleetbase/leaflet-routing-machine": "^3.2.17",
"@fleetbase/registry-bridge-engine": "^0.1.6",
"@fleetbase/registry-bridge-engine": "^0.1.7",
"@fleetbase/storefront-engine": "^0.4.13",
"@formatjs/intl-datetimeformat": "^6.18.2",
"@formatjs/intl-numberformat": "^8.15.6",

20
console/pnpm-lock.yaml generated
View File

@@ -29,8 +29,8 @@ importers:
specifier: ^0.1.25
version: 0.1.25(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(webpack@5.105.0)
'@fleetbase/fleetops-engine':
specifier: ^0.6.36
version: 0.6.36(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
specifier: ^0.6.37
version: 0.6.37(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
'@fleetbase/iam-engine':
specifier: ^0.1.7
version: 0.1.7(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
@@ -38,8 +38,8 @@ importers:
specifier: ^3.2.17
version: 3.2.17
'@fleetbase/registry-bridge-engine':
specifier: ^0.1.6
version: 0.1.6(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
specifier: ^0.1.7
version: 0.1.7(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
'@fleetbase/storefront-engine':
specifier: ^0.4.13
version: 0.4.13(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)
@@ -1544,8 +1544,8 @@ packages:
resolution: {integrity: sha512-uCX/qB4ANDGNN+EM1vdsVc4inprGEwj1dT0G5OTYKsFaHL3CWOeXsOg8qSa5EDClqxIodadx6stB+dSwrhYowg==}
engines: {node: '>= 18'}
'@fleetbase/fleetops-engine@0.6.36':
resolution: {integrity: sha512-Segq0+W5VHDcjxJ2DL5mbWSsY0Zp6f+jrlE2+Ub6EUJ5BFiqg1vR6NsypiC+uZCSqI8PjHzekIaZSQaJzv/N1g==}
'@fleetbase/fleetops-engine@0.6.37':
resolution: {integrity: sha512-bmhT26lloVFUJNq8hSzHNL/3C7bONdsCT9qNrD1sFKpKQLA5c7Jsti4pWkb+95sqIuqiYZ7ccfyoOXzGUr7MIA==}
engines: {node: '>= 18'}
peerDependencies:
ember-engines: ^0.9.0
@@ -1563,8 +1563,8 @@ packages:
'@fleetbase/leaflet-routing-machine@3.2.17':
resolution: {integrity: sha512-2S/XLPzf25ZKV7cFJwfeu4voYQboF9JiDfpRUTrif4XCfgdrQ2Zim7O5iTpoNv2l8Ne8D+Ed7BGJsKWjJFLcsw==}
'@fleetbase/registry-bridge-engine@0.1.6':
resolution: {integrity: sha512-FmmVQfMMGy1xzmLfVDpLaOg/mf0hfwfL3k+Ae9+QOl+s0GLGzaKX6K/lxviHP/DotzEJEtsuNGZ5jpA+mjzAow==}
'@fleetbase/registry-bridge-engine@0.1.7':
resolution: {integrity: sha512-z6bA8/DeJ/lTVyjO24W2ltt0C6/GwM9lHO17DwDlyxBh6o6t8htd/PvQap8qcys7tOZXVXu7i4ufkdvb6DwbyQ==}
engines: {node: '>= 18'}
peerDependencies:
ember-engines: ^0.9.0
@@ -10774,7 +10774,7 @@ snapshots:
- utf-8-validate
- webpack
'@fleetbase/fleetops-engine@0.6.36(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)':
'@fleetbase/fleetops-engine@0.6.37(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)':
dependencies:
'@babel/core': 7.29.0
'@fleetbase/ember-core': 0.3.12(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(webpack@5.105.0)
@@ -10889,7 +10889,7 @@ snapshots:
'@mapbox/polyline': 0.2.0
osrm-text-instructions: 0.13.4
'@fleetbase/registry-bridge-engine@0.1.6(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)':
'@fleetbase/registry-bridge-engine@0.1.7(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(@glimmer/component@1.1.2(@babel/core@7.29.0))(@glimmer/tracking@1.1.2)(ember-engines@0.9.0(@ember/legacy-built-in-components@0.4.2(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(postcss@8.5.6)(rollup@2.79.2)(tracked-built-ins@3.4.0(@babel/core@7.29.0))(webpack@5.105.0)':
dependencies:
'@babel/core': 7.29.0
'@fleetbase/ember-core': 0.3.12(@ember/string@3.1.1)(@ember/test-helpers@3.3.1(@babel/core@7.29.0)(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(webpack@5.105.0))(ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0)))(ember-source@5.4.1(@babel/core@7.29.0)(@glimmer/component@1.1.2(@babel/core@7.29.0))(rsvp@4.8.5)(webpack@5.105.0))(eslint@8.57.1)(webpack@5.105.0)

View File

@@ -75,7 +75,7 @@ ENV QUEUE_CONNECTION=redis
ENV CADDYFILE_PATH=/fleetbase/Caddyfile
ENV CONSOLE_PATH=/fleetbase/console
ENV OCTANE_SERVER=frankenphp
ENV FLEETBASE_VERSION=0.7.29
ENV FLEETBASE_VERSION=0.7.30
# Set environment
ARG ENVIRONMENT=production