tag:github.com,2008:https://github.com/fleetbase/fleetbase/releases Release notes from fleetbase 2026-02-28T02:24:48Z tag:github.com,2008:Repository/540371158/v0.7.30 2026-02-28T02:25:21Z v0.7.30 <h1>πŸš€ Fleetbase v0.7.30 β€” 2026-02-28</h1> <blockquote> <p>"Extension discovery, driver vehicle validation, and CLI search"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <p>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 <code>flb search</code> command in the Fleetbase CLI.</p> <h3>πŸ”Œ Registry Bridge β€” Public Extension Discovery</h3> <p>The public extensions listing endpoint (<code>~registry/v1/extensions</code>) has been corrected and hardened. A dedicated <code>PublicRegistryExtension</code> API resource now sanitizes the response, stripping all sensitive fields before they leave the server. The <code>install_count</code> aggregation has been fixed to use <code>withCount('installs')</code> and the incorrect <code>author</code> relationship has been replaced with the proper <code>company</code> relationship. The endpoint returns a clean, flat array.</p> <h3>πŸš› FleetOps β€” Driver Vehicle Validation</h3> <p>A <code>TypeError</code> that occurred when creating a driver with a vehicle object sent from the frontend has been resolved. A new <code>ResolvableVehicle</code> validation rule accepts a <code>public_id</code> string (e.g., <code>vehicle_abc123</code>), a UUID string, or an object/array containing an <code>id</code>, <code>public_id</code>, or <code>uuid</code> key. Vehicle normalization has been added to both <code>createRecord()</code> and <code>updateRecord()</code> in <code>DriverController</code> so the correct vehicle UUID is always resolved before persistence.</p> <h3>πŸ” Fleetbase CLI β€” Extension Search Command</h3> <p>A new <code>flb search [query]</code> command (alias: <code>flb list-extensions</code>) 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 <code>--category</code>, <code>--free</code>, <code>--json</code>, <code>--simple</code>, and <code>--host</code>.</p> <hr> <h2>✨ New Features</h2> <ul> <li><strong>[fleetbase-cli]</strong> Added <code>flb search [query]</code> command (alias: <code>flb list-extensions</code>) for browsing available extensions</li> <li><strong>[fleetbase-cli]</strong> <code>--category</code> filter to narrow results by extension category</li> <li><strong>[fleetbase-cli]</strong> <code>--free</code> flag to list only free extensions</li> <li><strong>[fleetbase-cli]</strong> <code>--json</code> flag for machine-readable JSON output</li> <li><strong>[fleetbase-cli]</strong> <code>--simple</code> flag for plain-text terminal output</li> <li><strong>[fleetbase-cli]</strong> <code>--host</code> option to target self-hosted registry instances</li> </ul> <hr> <h2>πŸ› Bug Fixes</h2> <h3>FleetOps</h3> <ul> <li><strong>[fleetops]</strong> Fixed <code>TypeError</code> when creating a driver with a vehicle object sent from the frontend</li> <li><strong>[fleetops]</strong> Added <code>ResolvableVehicle</code> validation rule accepting <code>public_id</code>, UUID, or object with <code>id</code>/<code>public_id</code>/<code>uuid</code></li> <li><strong>[fleetops]</strong> Added vehicle normalization in <code>DriverController::createRecord()</code> and <code>updateRecord()</code></li> </ul> <h3>Registry Bridge</h3> <ul> <li><strong>[registry-bridge]</strong> Fixed <code>install_count</code> column error by switching to <code>withCount('installs')</code> eager load</li> <li><strong>[registry-bridge]</strong> Removed incorrect <code>author</code> relationship; replaced with correct <code>company</code> relationship</li> <li><strong>[registry-bridge]</strong> Removed sensitive data (internal UUIDs, Stripe IDs, private relationships) from public endpoint response</li> <li><strong>[registry-bridge]</strong> Public extensions endpoint now returns a plain array without a wrapping key</li> </ul> <hr> <h2>πŸ”§ Improvements</h2> <ul> <li><strong>[fleetbase-cli]</strong> Price display correctly converts cents to dollars in search results</li> <li><strong>[fleetbase-cli]</strong> Search results show both install formats: <code>flb install fleetbase/&lt;slug&gt;</code> and <code>flb install &lt;extension_id&gt;</code></li> <li><strong>[registry-bridge]</strong> Extension listing response is a clean, flat array for easier consumption by CLI and third-party tools</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>πŸ“¦ Component Versions</h2> <ul> <li><strong>fleetops</strong>: v0.6.37</li> <li><strong>registry-bridge</strong>: v0.1.7</li> <li><strong>fleetbase-cli</strong>: v0.0.5</li> </ul> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.29 2026-02-27T10:57:48Z v0.7.29 <h1>πŸš€ Fleetbase v0.7.29 β€” 2026-02-27</h1> <blockquote> <p>"Major security enhancements, analytics tracking, developer tools, and UX improvements"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <p>This release brings <strong>critical security patches</strong>, comprehensive <strong>analytics event tracking</strong> across the platform, enhanced <strong>developer account management</strong> for the extension marketplace, and several <strong>user experience improvements</strong> including accurate geolocation detection.</p> <h3>πŸ”’ Security Enhancements</h3> <p>Fleetbase v0.7.29 includes critical security fixes that strengthen tenant isolation and prevent unauthorized access. The <strong>core-api</strong> has been patched to address a systemic tenant isolation vulnerability (GHSA-3wj9-hh56-7fw7) with the introduction of a <code>CompanyScope</code> 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.</p> <h3>πŸ“Š Analytics &amp; Event Tracking</h3> <p>A comprehensive <strong>events service</strong> has been added to <strong>ember-core</strong>, providing centralized analytics tracking across all core services. The system emits both generic events (e.g., <code>resource.created</code>) and specific events (e.g., <code>order.created</code>) 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 <strong>FleetOps</strong>, 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.</p> <h3>πŸ› οΈ Developer Tools &amp; Marketplace</h3> <p>The <strong>registry-bridge</strong> now supports <strong>Registry Developer Accounts</strong> 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 <strong>fleetbase-cli</strong> has been significantly enhanced with new commands including <code>flb register</code> for developer account registration, <code>flb verify</code> for email verification, <code>flb resend-verification</code> for expired codes, and <code>flb install-fleetbase</code> for Docker-based installation with automatic repository cloning.</p> <h3>🌍 Geolocation &amp; UX Improvements</h3> <p>A critical bug affecting user onboarding has been fixed where the system was displaying the <strong>server's location</strong> instead of the <strong>user's actual location</strong>. The <strong>ember-core</strong> now implements frontend IP lookup using multiple geolocation APIs (geoiplookup.io and ipapi.co) with automatic fallback support and localStorage caching. The <strong>phone-input component</strong> in <strong>ember-ui</strong> has been updated to use this frontend IP lookup, ensuring accurate country code detection for phone number formatting. The <strong>IAM engine</strong> now features tabbed user type sections in the users management interface for better organization.</p> <h3>πŸ“ˆ Reporting &amp; Data Access</h3> <p><strong>FleetOps</strong> now exposes the <code>meta</code> column and <code>Transaction</code> 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.</p> <h3>🌐 Internationalization</h3> <p>Support for <strong>KZT (Kazakhstani Tenge)</strong> currency has been added across both <strong>core-api</strong> and <strong>ember-ui</strong>, expanding Fleetbase's international capabilities.</p> <hr> <h2>πŸ” Security Fixes</h2> <ul> <li><strong>[core-api]</strong> Patched critical tenant isolation vulnerability (GHSA-3wj9-hh56-7fw7) with CompanyScope global scope</li> <li><strong>[core-api]</strong> Removed hardcoded SMS auth bypass code, replaced with environment-driven bypass for non-production</li> <li><strong>[core-api]</strong> Fixed cross-tenant IDOR vulnerabilities with company-scoped authorization</li> <li><strong>[core-api]</strong> Enforced strong password policy across all validators</li> <li><strong>[core-api]</strong> Prevented user enumeration in login flow</li> <li><strong>[core-api]</strong> Restored authToken re-authentication with identity verification</li> </ul> <hr> <h2>✨ New Features</h2> <h3>Analytics &amp; Tracking</h3> <ul> <li><strong>[ember-core]</strong> Added centralized events service for analytics tracking across all core services</li> <li><strong>[ember-core]</strong> Event tracking in CRUD service (create, update, delete, bulk actions, import, export)</li> <li><strong>[ember-core]</strong> Dual event system (fires on both events service and universe service)</li> <li><strong>[fleetops]</strong> Added event tracking to 30 FleetOps controllers for event tracking</li> <li><strong>[fleetops]</strong> Import operations now return count of imported records in response</li> </ul> <h3>Developer Tools</h3> <ul> <li><strong>[registry-bridge]</strong> Registry Developer Account support for self-hosted instances</li> <li><strong>[registry-bridge]</strong> Universal Extension Marketplace backend with public extension listing endpoint</li> <li><strong>[registry-bridge]</strong> Stripe Connect account management for bank account updates</li> <li><strong>[registry-bridge]</strong> Email verification for developer accounts using VerificationCode model</li> <li><strong>[registry-bridge]</strong> Automatic registry token generation upon email verification</li> <li><strong>[fleetbase-cli]</strong> Added <code>flb register</code> command for Registry Developer Account registration</li> <li><strong>[fleetbase-cli]</strong> Added <code>flb verify</code> command for email verification</li> <li><strong>[fleetbase-cli]</strong> Added <code>flb resend-verification</code> command to request new verification codes</li> <li><strong>[fleetbase-cli]</strong> Added <code>flb install-fleetbase</code> command for Docker-based installation</li> <li><strong>[fleetbase-cli]</strong> Auto-clone Fleetbase repository if not present during installation</li> <li><strong>[fleetbase-cli]</strong> Support for <code>--host</code> parameter to work with self-hosted instances</li> </ul> <h3>Reporting &amp; Data</h3> <ul> <li><strong>[fleetops]</strong> Exposed meta column and Transaction relationships in Orders report schema for financial reporting</li> <li><strong>[core-api]</strong> User cache now includes updated_at timestamp for automatic cache busting</li> </ul> <h3>UI/UX</h3> <ul> <li><strong>[iam-engine]</strong> Added tabbed user type sections to users management interface</li> <li><strong>[iam-engine]</strong> Enhanced edit user interface with better validation and error handling</li> </ul> <h3>Internationalization</h3> <ul> <li><strong>[core-api]</strong> Added KZT (Kazakhstani Tenge) currency support</li> <li><strong>[ember-ui]</strong> Added support for KZT currency</li> </ul> <hr> <h2>πŸ› Bug Fixes</h2> <h3>Geolocation</h3> <ul> <li><strong>[ember-core]</strong> Implemented frontend IP lookup to get accurate user location (fixes onboarding showing server location)</li> <li><strong>[ember-core]</strong> Added lookup-user-ip utility with multi-API fallback support (geoiplookup.io and ipapi.co)</li> <li><strong>[ember-core]</strong> localStorage caching for IP lookup results (1 hour TTL)</li> <li><strong>[ember-core]</strong> Graceful fallback to browser timezone when geolocation APIs fail</li> <li><strong>[ember-ui]</strong> Updated phone-input component to use frontend IP lookup (fixes incorrect country code detection)</li> <li><strong>[ember-ui]</strong> Phone input now always initializes with US fallback if geolocation fails</li> </ul> <h3>Core Fixes</h3> <ul> <li><strong>[core-api]</strong> Verification codes now default to 'pending' status</li> <li><strong>[core-api]</strong> Fixed verification email HTML rendering (button component)</li> <li><strong>[core-api]</strong> Prevented empty email/phone on user update</li> <li><strong>[core-api]</strong> Resolved camelCase expansion methods from snake_case query params in Filter</li> <li><strong>[fleetops]</strong> Prevented duplicate driver creation when user_uuid already has a driver profile</li> <li><strong>[registry-bridge]</strong> Made developer account registration routes public (no auth required)</li> <li><strong>[registry-bridge]</strong> Polymorphic purchaser relationship for extension purchases (supports both Company and RegistryDeveloperAccount)</li> </ul> <hr> <h2>πŸ”§ Improvements</h2> <ul> <li><strong>[fleetops]</strong> Moved avatar management to FleetOps settings</li> <li><strong>[ember-ui]</strong> Faster phone input lookup (1 network hop vs 2, no backend dependency)</li> <li><strong>[fleetbase-cli]</strong> Better error handling and debugging for all commands</li> <li><strong>[fleetbase-cli]</strong> Skip interactive prompts when command-line options are provided</li> <li><strong>[ember-core]</strong> Standardized event naming with dot notation (e.g., resource.created, order.created)</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>πŸ“¦ Component Versions</h2> <ul> <li><strong>core-api</strong>: v1.6.36</li> <li><strong>fleetops</strong>: v0.6.36</li> <li><strong>registry-bridge</strong>: v0.1.6</li> <li><strong>iam-engine</strong>: v0.1.7</li> <li><strong>ember-core</strong>: v0.3.11, v0.3.12</li> <li><strong>ember-ui</strong>: v0.3.20, v0.3.21</li> <li><strong>fleetbase-cli</strong>: v0.0.4</li> </ul> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.28 2026-02-06T02:17:57Z v0.7.28 <h1>πŸš€ Fleetbase v0.7.28 β€” 2026-02-05</h1> <blockquote> <p>"Critical patch: eager load driver and vehicle in consumable orders query API"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li>Critical patch which fixes eager loading relationship when querying orders via the consumable API, this is done to handle the new <code>whenLoaded</code> resource conditional methods. <a href="https://github.com/fleetbase/fleetops/pull/203" data-hovercard-type="pull_request" data-hovercard-url="/fleetbase/fleetops/pull/203/hovercard">fleetbase/fleetops#203</a></li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.27 2026-02-05T02:59:13Z v0.7.27 <h1>πŸš€ Fleetbase v0.7.27 β€” 2026-02-05</h1> <blockquote> <p>"Improvements and patches"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li>Core now supports disabling cache in runtime for <code>HasApiModelCache</code> x <code>HasApiModelBehavior</code></li> <li>Added new <code>FileResolverService</code> to support file resolution from file resources, URL's, base64, and file uploads <a href="https://github.com/fleetbase/core-api/pull/187/commits/190c03d484648319f3d890439f74e45820f352fc">190c03d</a></li> <li><code>VerificationCode</code> model in core always throws SMS exceptions</li> <li>FleetOps: Patched proof of delivery component in order details</li> <li>FleetOps: Improved and patched service rate <code>getServicableForPlaces</code> which improved service quote performance</li> <li>FleetOps: Fix location GeoJSON Point casting for <code>location</code> properties - using the new <code>Utils::castPoint</code> utility <a href="https://github.com/fleetbase/fleetops/pull/202/commits/208151f37ece54bb23cfeeebdbb6fde1142908f7">208151f</a></li> <li>Storefront: Critical patch for QPay checkout workflow <a href="https://github.com/fleetbase/storefront/pull/66" data-hovercard-type="pull_request" data-hovercard-url="/fleetbase/storefront/pull/66/hovercard">storefront#66</a></li> <li>Storefront: Added new phone number verification endpoints for customers (<code>request-phone-verification</code> and <code>verify-phone-number</code>)</li> <li>Storefront: Fixed cart based service quotes</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.26 2026-01-16T08:19:36Z v0.7.26 <h1>πŸš€ Fleetbase v0.7.26 β€” 2025-01-16</h1> <blockquote> <p>"Improved Driver Validation + API improvements"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li>Improved driver creation validation for internal API</li> <li>Vehicle and Driver API use explicit <code>::create</code> method now</li> <li>Improved onboarding orchestrator framework and services for history and resume capability</li> <li>Upgraded Stripe SDK to v17</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.25 2025-12-29T13:02:48Z v0.7.25 <h1>πŸš€ Fleetbase v0.7.25 β€” 2025-12-29</h1> <blockquote> <p>"New SMS service to support multiple SMS providers + framework improvements"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li>Removed <code>window.Fleetbase</code> for improved frontend security</li> <li>Improved query optimizations</li> <li>Added new SMS service to support multiple SMS providers</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.24 2025-12-21T04:06:03Z v0.7.24 <h1>πŸš€ Fleetbase v0.7.24 β€” 2025-12-21</h1> <blockquote> <p>"Critical core-api patches for cache key generation"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <h3>Bug Fixes</h3> <ul> <li><strong>Fixed cache key collision bug</strong> - Different filter parameters (e.g., <code>type=customer</code> vs <code>type=contact</code>) now generate unique cache keys instead of returning wrong cached results</li> <li><strong>Fixed BadMethodCallException</strong> - Models without soft deletes (like Permission) no longer crash when calling <code>getDeletedAtColumn()</code></li> </ul> <h3>Improvements</h3> <ul> <li><strong>Added caching to Permission model</strong> - Permission queries now benefit from Redis caching for improved performance</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.23 2025-12-19T15:19:12Z v0.7.23 <h1>πŸš€ Fleetbase v0.7.23 β€” 2025-12-19</h1> <blockquote> <p>"🀯 Insane optimization and performance upgrades + horizontal scaling support πŸš€"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li>Major performance and optimization improvements which support horizontal scaling</li> <li>Ability to resize images on upload using resize parameters</li> <li>Several patches in FleetOps - fixed service rates and missing translations, improvements and patch to scheduler</li> <li>Added a new <code>LanguageService</code> available in ember-core</li> <li>Minor <code>@fleetbase/ember-ui</code> improvements</li> </ul> <h3>New Features</h3> <ul> <li><strong>Improved API performance</strong> with two-layer caching system (Redis + ETag validation) for user and organization data</li> <li><strong>Reduced bandwidth usage</strong> with automatic HTTP 304 Not Modified responses via new ValidateETag middleware</li> <li><strong>Faster page loads</strong> with intelligent cache invalidation that updates immediately when data changes</li> <li><strong>New UserCacheService class</strong> for centralized cache management across the application</li> <li><strong>Image resizing support</strong> for dynamic image dimensions via URL parameters</li> <li>Added <code>ApiModelCache</code> class - Provides intelligent Redis-based caching for API query results with automatic invalidation</li> <li>Added <code>HasApiModelCache</code> trait - Enables models to cache query results with a single method call</li> </ul> <h3>Performance Improvements</h3> <ul> <li>Optimized form data syncing to eliminate N+1 query problems, reducing database queries from N to 2 for relationship syncing</li> <li>Implemented cache stampede prevention to handle high concurrent load efficiently</li> <li>Added cache versioning system for automatic invalidation when data changes</li> </ul> <h3>Developer Experience</h3> <ul> <li>Added <code>X-Cache-Status</code> header to API responses for easy cache debugging (HIT/MISS visibility)</li> <li>Automatic multi-tenant cache key generation for company-scoped data isolation</li> <li>Graceful fallback to direct queries when cache is unavailable</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.22 2025-12-07T06:37:50Z v0.7.22 <h1>πŸš€ Fleetbase v0.7.22 β€” 2025-12-07</h1> <blockquote> <p>"Organizations can now set their own alpha-numeric sender ID for SMS"</p> </blockquote> <hr> <h2>✨ Highlights</h2> <ul> <li><strong>Custom Alphanumeric Sender ID for SMS:</strong><br> Organizations can now configure their own <strong>Alphanumeric Sender ID</strong> used when sending verification codes and other SMS notifications.<br> This feature improves brand recognition, enhances trust, and aligns outbound communication with each organization’s identity.<br> Supported in regions/carriers where alphanumeric senders are allowed (e.g., Mongolia and others).</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None πŸ™‚</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot] tag:github.com,2008:Repository/540371158/v0.7.21 2025-12-06T13:50:11Z v0.7.21 <h1>πŸš€ Fleetbase v0.7.21 β€” 2025-12-06</h1> <blockquote> <p>"5x faster css compiling and flawless builds."</p> </blockquote> <hr> <h2>✨ Highlights</h2> <h3>πŸ”§ Critical Production Build Fix</h3> <p>This release resolves a <strong>critical issue</strong> that prevented production builds from succeeding when using ember-ui in Ember Engines environments. All Fleetbase applications and engines should upgrade immediately.</p> <p><strong>What was broken:</strong><br> Production builds were failing with "Broken <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/import/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/import">@import</a> declaration" errors during CSS minification. Development builds worked fine, but production deployments were completely blocked.</p> <p><strong>What we fixed:</strong><br> Implemented a proper architectural solution that prevents Ember Engines from attempting to recompile ember-ui styles. The addon now correctly detects when it's being included by an engine and blocks both the style tree distribution and PostCSS configuration override.</p> <p><strong>The impact:</strong></p> <ul> <li>βœ… <strong>Production builds now succeed</strong> without CSS import errors</li> <li>βœ… <strong>5x faster builds</strong> β€” CSS is compiled once in the host app instead of being reprocessed by each engine</li> <li>βœ… <strong>4x smaller bundles</strong> β€” Eliminated CSS duplication across engine vendor files (reduced from ~3MB to ~750KB in typical setups)</li> <li>βœ… <strong>Consistent styling</strong> β€” All engines now use the same compiled CSS from the host application</li> </ul> <p><strong>Technical details:</strong><br> The fix adds engine detection to both the <code>treeForStyles</code> and <code>included</code> hooks, ensuring that ember-ui styles are compiled exclusively in the host application and inherited by all engines. This follows the proper Ember Engines architecture pattern for shared addon styles.</p> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Breaking Changes</h2> <ul> <li>None β€” This is a fully backward-compatible patch that only changes internal build behavior</li> </ul> <hr> <h2>πŸ”§ Upgrade Steps</h2> <h3>For System</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Pull latest version git pull origin main --no-rebase # Update docker docker compose pull docker compose down &amp;&amp; docker compose up -d # Run deploy script docker compose exec application bash -c &quot;./deploy.sh&quot;"><pre><span class="pl-c"><span class="pl-c">#</span> Pull latest version</span> git pull origin main --no-rebase <span class="pl-c"><span class="pl-c">#</span> Update docker</span> docker compose pull docker compose down <span class="pl-k">&amp;&amp;</span> docker compose up -d <span class="pl-c"><span class="pl-c">#</span> Run deploy script</span> docker compose <span class="pl-c1">exec</span> application bash -c <span class="pl-s"><span class="pl-pds">"</span>./deploy.sh<span class="pl-pds">"</span></span></pre></div> <h3>For Extension Developers</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Update ember-ui pnpm upgrade @fleetbase/ember-ui@^0.3.14 @fleetbase/ember-core@^0.3.8 # Reinstall dependencies pnpm install"><pre><span class="pl-c"><span class="pl-c">#</span> Update ember-ui</span> pnpm upgrade @fleetbase/ember-ui@^0.3.14 @fleetbase/ember-core@^0.3.8 <span class="pl-c"><span class="pl-c">#</span> Reinstall dependencies</span> pnpm install</pre></div> <h3>Verification</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Verify production build succeeds pnpm build --environment production # Check bundle sizes (should see significant reduction) ls -lh dist/assets/vendor*.css ls -lh dist/engines-dist/*/assets/engine-vendor*.css"><pre><span class="pl-c"><span class="pl-c">#</span> Verify production build succeeds</span> pnpm build --environment production <span class="pl-c"><span class="pl-c">#</span> Check bundle sizes (should see significant reduction)</span> ls -lh dist/assets/vendor<span class="pl-k">*</span>.css ls -lh dist/engines-dist/<span class="pl-k">*</span>/assets/engine-vendor<span class="pl-k">*</span>.css</pre></div> <hr> <h2>πŸ“¦ What Changed</h2> <h3>Fixed</h3> <ul> <li><strong>Critical</strong>: Production build failures in Ember Engines environments with "Broken <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/import/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/import">@import</a> declaration" errors</li> <li>CSS duplication across engine bundles causing bloated file sizes</li> <li>PostCSS configuration conflicts between host app and engines</li> </ul> <h3>Changed</h3> <ul> <li>Added <code>treeForStyles</code> hook with engine detection to prevent style tree distribution to engines</li> <li>Added engine detection guard in <code>included</code> hook to prevent <code>postcssOptions</code> override</li> <li>Improved CSS import path resolution in PostCSS configuration</li> </ul> <h3>Performance</h3> <ul> <li>Reduced build time by 5x through single CSS compilation</li> <li>Reduced total CSS bundle size by 4x through elimination of duplication</li> <li>Improved caching efficiency with shared vendor.css</li> </ul> <hr> <h2>Need help?</h2> <p>Join the discussion on <a href="https://github.com/fleetbase/ember-ui/discussions">GitHub Discussions</a> or drop by <a href="https://discord.com/invite/HnTqQ6zAVn" rel="nofollow">#fleetbase on Discord</a></p> github-actions[bot]