Compare commits

..

2 Commits

Author SHA1 Message Date
Ron
41bc6e39a7 Merge pull request #380 from fleetbase/dev-v0.6.9
Some checks failed
Fleetbase CI / Build and Start Docker Services (push) Has been cancelled
Enhancements and bug fixes for order workflow, labels, notifications,…
2025-05-01 12:15:36 +08:00
Ronald A. Richardson
5dbe2fb5bb Enhancements and bug fixes for order workflow, labels, notifications, and route optimization
- Added support for downloading labels and barcodes per package
- Fixed proof of delivery behavior to ensure accurate completion records
- Updated waypoint activity flow to rely on the `complete` flag
- Added support for setting waypoints as either pickup or dropoff
- Enabled sending notifications to order customer, driver, and facilitator
- Added events and notifications for `order.completed` and `order.failed` states
- Fixed route optimization logic and minor issues during order creation
- Normalized `meta` response structure to always return an object (never array)
- Patched issue with order config: deleting custom field categories no longer breaks config
2025-05-01 12:08:27 +08:00
9 changed files with 1607 additions and 1824 deletions

View File

@@ -10,8 +10,8 @@
"require": {
"php": "^8.0",
"appstract/laravel-opcache": "^4.0",
"fleetbase/core-api": "^1.6.2",
"fleetbase/fleetops-api": "^0.6.5",
"fleetbase/core-api": "^1.6.3",
"fleetbase/fleetops-api": "^0.6.6",
"fleetbase/registry-bridge": "^0.0.18",
"fleetbase/storefront-api": "^0.3.30",
"guzzlehttp/guzzle": "^7.0.1",

312
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": "bb6eab21f021f9b5e431c49ec8707efa",
"content-hash": "d0598e86fcf54f96cff7bc8b5cd75715",
"packages": [
{
"name": "appstract/laravel-opcache",
@@ -124,16 +124,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.342.26",
"version": "3.343.1",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "99f6f8521117534990e608e040b083015465c49c"
"reference": "b24383b59b0fc039cecffe0bd7453ae514b22ed5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/99f6f8521117534990e608e040b083015465c49c",
"reference": "99f6f8521117534990e608e040b083015465c49c",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b24383b59b0fc039cecffe0bd7453ae514b22ed5",
"reference": "b24383b59b0fc039cecffe0bd7453ae514b22ed5",
"shasum": ""
},
"require": {
@@ -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.342.26"
"source": "https://github.com/aws/aws-sdk-php/tree/3.343.1"
},
"time": "2025-04-11T18:10:41+00:00"
"time": "2025-04-30T18:21:17+00:00"
},
{
"name": "aws/aws-sdk-php-laravel",
@@ -2124,16 +2124,16 @@
},
{
"name": "edamov/pushok",
"version": "0.18.0",
"version": "0.18.1",
"source": {
"type": "git",
"url": "https://github.com/edamov/pushok.git",
"reference": "52dae5b5b2dc47e5aa5a2919e4696874fc2bb153"
"reference": "f404cbcb5479b88d2d121ef174e34862491ffc42"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/edamov/pushok/zipball/52dae5b5b2dc47e5aa5a2919e4696874fc2bb153",
"reference": "52dae5b5b2dc47e5aa5a2919e4696874fc2bb153",
"url": "https://api.github.com/repos/edamov/pushok/zipball/f404cbcb5479b88d2d121ef174e34862491ffc42",
"reference": "f404cbcb5479b88d2d121ef174e34862491ffc42",
"shasum": ""
},
"require": {
@@ -2183,9 +2183,9 @@
],
"support": {
"issues": "https://github.com/edamov/pushok/issues",
"source": "https://github.com/edamov/pushok/tree/0.18.0"
"source": "https://github.com/edamov/pushok/tree/0.18.1"
},
"time": "2025-02-03T11:39:35+00:00"
"time": "2025-04-24T20:54:55+00:00"
},
{
"name": "egulias/email-validator",
@@ -2436,16 +2436,16 @@
},
{
"name": "fleetbase/core-api",
"version": "1.6.2",
"version": "1.6.3",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/core-api.git",
"reference": "416078f32a44929429b5c8d7cc8b52ba9800dede"
"reference": "54b79c77391295767af64c2917d155ad2823a631"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/416078f32a44929429b5c8d7cc8b52ba9800dede",
"reference": "416078f32a44929429b5c8d7cc8b52ba9800dede",
"url": "https://api.github.com/repos/fleetbase/core-api/zipball/54b79c77391295767af64c2917d155ad2823a631",
"reference": "54b79c77391295767af64c2917d155ad2823a631",
"shasum": ""
},
"require": {
@@ -2530,22 +2530,22 @@
],
"support": {
"issues": "https://github.com/fleetbase/core-api/issues",
"source": "https://github.com/fleetbase/core-api/tree/v1.6.2"
"source": "https://github.com/fleetbase/core-api/tree/v1.6.3"
},
"time": "2025-04-11T04:14:44+00:00"
"time": "2025-05-01T03:46:23+00:00"
},
{
"name": "fleetbase/fleetops-api",
"version": "0.6.5",
"version": "0.6.6",
"source": {
"type": "git",
"url": "https://github.com/fleetbase/fleetops.git",
"reference": "267edc52ded0e506bcc0a9979ba529f4320317fa"
"reference": "b5bb38e4e04cd4a46313bd10835b61d380ab932c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/267edc52ded0e506bcc0a9979ba529f4320317fa",
"reference": "267edc52ded0e506bcc0a9979ba529f4320317fa",
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/b5bb38e4e04cd4a46313bd10835b61d380ab932c",
"reference": "b5bb38e4e04cd4a46313bd10835b61d380ab932c",
"shasum": ""
},
"require": {
@@ -2619,9 +2619,9 @@
],
"support": {
"issues": "https://github.com/fleetbase/fleetops/issues",
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.5"
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.6"
},
"time": "2025-04-14T07:53:25+00:00"
"time": "2025-05-01T03:47:49+00:00"
},
{
"name": "fleetbase/laravel-mysql-spatial",
@@ -3100,22 +3100,22 @@
},
{
"name": "geocoder-php/chain-provider",
"version": "4.5.0",
"version": "4.6.0",
"source": {
"type": "git",
"url": "https://github.com/geocoder-php/chain-provider.git",
"reference": "ebcae03b9cc6f8dd1ebebf48f8105103e28b9152"
"reference": "38e03ddb2c16ac3c964072f4f9d06837164341df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/geocoder-php/chain-provider/zipball/ebcae03b9cc6f8dd1ebebf48f8105103e28b9152",
"reference": "ebcae03b9cc6f8dd1ebebf48f8105103e28b9152",
"url": "https://api.github.com/repos/geocoder-php/chain-provider/zipball/38e03ddb2c16ac3c964072f4f9d06837164341df",
"reference": "38e03ddb2c16ac3c964072f4f9d06837164341df",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"php": "^8.0",
"psr/log": "^1.0|^2.0|^3.0",
"willdurand/geocoder": "^4.0"
"willdurand/geocoder": "^4.0|^5.0"
},
"provide": {
"geocoder-php/provider-implementation": "1.0"
@@ -3153,22 +3153,22 @@
"description": "Geocoder chain adapter",
"homepage": "http://geocoder-php.org/Geocoder/",
"support": {
"source": "https://github.com/geocoder-php/chain-provider/tree/4.5.0"
"source": "https://github.com/geocoder-php/chain-provider/tree/4.6.0"
},
"time": "2022-07-30T12:09:30+00:00"
"time": "2025-04-15T13:24:32+00:00"
},
{
"name": "geocoder-php/common-http",
"version": "4.6.0",
"version": "4.7.0",
"source": {
"type": "git",
"url": "https://github.com/geocoder-php/php-common-http.git",
"reference": "d8c22a66120daed35ba8017467bc1ebfec28a63e"
"reference": "4209be6c31946ed5a658f6240ab21faaf5413f61"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/geocoder-php/php-common-http/zipball/d8c22a66120daed35ba8017467bc1ebfec28a63e",
"reference": "d8c22a66120daed35ba8017467bc1ebfec28a63e",
"url": "https://api.github.com/repos/geocoder-php/php-common-http/zipball/4209be6c31946ed5a658f6240ab21faaf5413f61",
"reference": "4209be6c31946ed5a658f6240ab21faaf5413f61",
"shasum": ""
},
"require": {
@@ -3176,7 +3176,7 @@
"php-http/discovery": "^1.17",
"psr/http-client-implementation": "^1.0",
"psr/http-factory-implementation": "^1.0",
"willdurand/geocoder": "^4.0"
"willdurand/geocoder": "^4.0|^5.0"
},
"require-dev": {
"nyholm/psr7": "^1.0",
@@ -3215,36 +3215,35 @@
"http geocoder"
],
"support": {
"source": "https://github.com/geocoder-php/php-common-http/tree/4.6.0"
"source": "https://github.com/geocoder-php/php-common-http/tree/4.7.0"
},
"time": "2023-12-28T10:51:54+00:00"
"time": "2025-04-15T12:38:11+00:00"
},
{
"name": "geocoder-php/geo-plugin-provider",
"version": "4.3.0",
"version": "4.4.0",
"source": {
"type": "git",
"url": "https://github.com/geocoder-php/geo-plugin-provider.git",
"reference": "fcb8fd60bb6324be305a90deae59497b928ccbd3"
"reference": "0fffb478260d8c3ec6cb5388a67d0684b006191a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/geocoder-php/geo-plugin-provider/zipball/fcb8fd60bb6324be305a90deae59497b928ccbd3",
"reference": "fcb8fd60bb6324be305a90deae59497b928ccbd3",
"url": "https://api.github.com/repos/geocoder-php/geo-plugin-provider/zipball/0fffb478260d8c3ec6cb5388a67d0684b006191a",
"reference": "0fffb478260d8c3ec6cb5388a67d0684b006191a",
"shasum": ""
},
"require": {
"geocoder-php/common-http": "^4.0",
"igorw/get-in": "^1.0",
"php": "^7.4 || ^8.0",
"willdurand/geocoder": "^4.0"
"php": "^8.0",
"willdurand/geocoder": "^4.0|^5.0"
},
"provide": {
"geocoder-php/provider-implementation": "1.0"
},
"require-dev": {
"geocoder-php/provider-integration-tests": "^1.0",
"php-http/curl-client": "^2.2",
"geocoder-php/provider-integration-tests": "^1.6.3",
"php-http/message": "^1.0",
"phpunit/phpunit": "^9.5"
},
@@ -3275,35 +3274,34 @@
"description": "Geocoder GeoPlugin adapter",
"homepage": "http://geocoder-php.org/Geocoder/",
"support": {
"source": "https://github.com/geocoder-php/geo-plugin-provider/tree/4.3.0"
"source": "https://github.com/geocoder-php/geo-plugin-provider/tree/4.4.0"
},
"time": "2022-07-30T10:48:32+00:00"
"time": "2025-04-15T13:24:32+00:00"
},
{
"name": "geocoder-php/google-maps-places-provider",
"version": "1.4.1",
"version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/geocoder-php/google-maps-places-provider.git",
"reference": "9ef702663c80c85bbb4b51bbf10566ced26ddb62"
"reference": "eff3ced1b249d6a18418c47b3d7c90517879e0b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/geocoder-php/google-maps-places-provider/zipball/9ef702663c80c85bbb4b51bbf10566ced26ddb62",
"reference": "9ef702663c80c85bbb4b51bbf10566ced26ddb62",
"url": "https://api.github.com/repos/geocoder-php/google-maps-places-provider/zipball/eff3ced1b249d6a18418c47b3d7c90517879e0b0",
"reference": "eff3ced1b249d6a18418c47b3d7c90517879e0b0",
"shasum": ""
},
"require": {
"geocoder-php/common-http": "^4.0",
"php": "^7.4 || ^8.0",
"willdurand/geocoder": "^4.0"
"php": "^8.0",
"willdurand/geocoder": "^4.0|^5.0"
},
"provide": {
"geocoder-php/provider-implementation": "1.0"
},
"require-dev": {
"geocoder-php/provider-integration-tests": "^1.0",
"php-http/curl-client": "^2.2",
"geocoder-php/provider-integration-tests": "^1.6.3",
"php-http/message": "^1.0",
"phpunit/phpunit": "^9.5"
},
@@ -3334,35 +3332,34 @@
"description": "Geocoder Google Maps Places adapter",
"homepage": "http://geocoder-php.org/Geocoder/",
"support": {
"source": "https://github.com/geocoder-php/google-maps-places-provider/tree/1.4.1"
"source": "https://github.com/geocoder-php/google-maps-places-provider/tree/1.5.0"
},
"time": "2023-07-09T14:05:05+00:00"
"time": "2025-04-15T13:24:32+00:00"
},
{
"name": "geocoder-php/google-maps-provider",
"version": "4.7.1",
"version": "4.8.0",
"source": {
"type": "git",
"url": "https://github.com/geocoder-php/google-maps-provider.git",
"reference": "ee0dbc229380903043542ae2a79b4518b9f0df17"
"reference": "587aac3647ebd2ce2090b613fc56c753b9dee9a7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/geocoder-php/google-maps-provider/zipball/ee0dbc229380903043542ae2a79b4518b9f0df17",
"reference": "ee0dbc229380903043542ae2a79b4518b9f0df17",
"url": "https://api.github.com/repos/geocoder-php/google-maps-provider/zipball/587aac3647ebd2ce2090b613fc56c753b9dee9a7",
"reference": "587aac3647ebd2ce2090b613fc56c753b9dee9a7",
"shasum": ""
},
"require": {
"geocoder-php/common-http": "^4.0",
"php": "^7.4 || ^8.0",
"willdurand/geocoder": "^4.0"
"php": "^8.0",
"willdurand/geocoder": "^4.0|^5.0"
},
"provide": {
"geocoder-php/provider-implementation": "1.0"
},
"require-dev": {
"geocoder-php/provider-integration-tests": "^1.0",
"php-http/curl-client": "^2.2",
"geocoder-php/provider-integration-tests": "^1.6.3",
"php-http/message": "^1.0",
"phpunit/phpunit": "^9.5"
},
@@ -3393,9 +3390,9 @@
"description": "Geocoder GoogleMaps adapter",
"homepage": "http://geocoder-php.org/Geocoder/",
"support": {
"source": "https://github.com/geocoder-php/google-maps-provider/tree/4.7.1"
"source": "https://github.com/geocoder-php/google-maps-provider/tree/4.8.0"
},
"time": "2023-04-14T11:13:20+00:00"
"time": "2025-04-15T13:24:32+00:00"
},
{
"name": "giggsey/libphonenumber-for-php",
@@ -3645,16 +3642,16 @@
},
{
"name": "google/auth",
"version": "v1.46.0",
"version": "v1.47.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "7fafae99a41984cbfb92508174263cf7bf3049b9"
"reference": "d6389aae7c009daceaa8da9b7942d8df6969f6d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/7fafae99a41984cbfb92508174263cf7bf3049b9",
"reference": "7fafae99a41984cbfb92508174263cf7bf3049b9",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/d6389aae7c009daceaa8da9b7942d8df6969f6d9",
"reference": "d6389aae7c009daceaa8da9b7942d8df6969f6d9",
"shasum": ""
},
"require": {
@@ -3700,9 +3697,9 @@
"support": {
"docs": "https://cloud.google.com/php/docs/reference/auth/latest",
"issues": "https://github.com/googleapis/google-auth-library-php/issues",
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.46.0"
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.47.0"
},
"time": "2025-02-12T22:21:37+00:00"
"time": "2025-04-15T21:47:20+00:00"
},
{
"name": "google/cloud-core",
@@ -3772,16 +3769,16 @@
},
{
"name": "google/cloud-storage",
"version": "v1.47.0",
"version": "v1.48.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-cloud-php-storage.git",
"reference": "c8f130fab6a48dad9c486e93a07cd26123d006bb"
"reference": "e2d7a59290ab7fb69208c45058efa3946edbb793"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/c8f130fab6a48dad9c486e93a07cd26123d006bb",
"reference": "c8f130fab6a48dad9c486e93a07cd26123d006bb",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/e2d7a59290ab7fb69208c45058efa3946edbb793",
"reference": "e2d7a59290ab7fb69208c45058efa3946edbb793",
"shasum": ""
},
"require": {
@@ -3823,22 +3820,22 @@
],
"description": "Cloud Storage Client for PHP",
"support": {
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.47.0"
"source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.48.0"
},
"time": "2025-03-21T22:19:41+00:00"
"time": "2025-04-18T20:49:28+00:00"
},
{
"name": "google/common-protos",
"version": "4.11.0",
"version": "4.12.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/common-protos-php.git",
"reference": "2554ed1f09aa20faae7b71b590e7063df97ff670"
"reference": "96f6873c65fb0289fcdb6ac3d5239f9c9e5750b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/2554ed1f09aa20faae7b71b590e7063df97ff670",
"reference": "2554ed1f09aa20faae7b71b590e7063df97ff670",
"url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/96f6873c65fb0289fcdb6ac3d5239f9c9e5750b0",
"reference": "96f6873c65fb0289fcdb6ac3d5239f9c9e5750b0",
"shasum": ""
},
"require": {
@@ -3882,9 +3879,9 @@
"google"
],
"support": {
"source": "https://github.com/googleapis/common-protos-php/tree/v4.11.0"
"source": "https://github.com/googleapis/common-protos-php/tree/v4.12.0"
},
"time": "2025-02-18T19:46:55+00:00"
"time": "2025-04-18T20:49:28+00:00"
},
{
"name": "google/gax",
@@ -5802,16 +5799,16 @@
},
{
"name": "laravel/octane",
"version": "v2.9.0",
"version": "v2.9.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/octane.git",
"reference": "8288269fab27a6163a2f2bd4f3115bd057432bcd"
"reference": "445002b2551c837d60cda4324259063c356dfb56"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/octane/zipball/8288269fab27a6163a2f2bd4f3115bd057432bcd",
"reference": "8288269fab27a6163a2f2bd4f3115bd057432bcd",
"url": "https://api.github.com/repos/laravel/octane/zipball/445002b2551c837d60cda4324259063c356dfb56",
"reference": "445002b2551c837d60cda4324259063c356dfb56",
"shasum": ""
},
"require": {
@@ -5888,7 +5885,7 @@
"issues": "https://github.com/laravel/octane/issues",
"source": "https://github.com/laravel/octane"
},
"time": "2025-04-04T02:30:58+00:00"
"time": "2025-04-13T21:10:35+00:00"
},
{
"name": "laravel/prompts",
@@ -6280,16 +6277,16 @@
},
{
"name": "league/commonmark",
"version": "2.6.1",
"version": "2.6.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad"
"reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad",
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/06c3b0bf2540338094575612f4a1778d0d2d5e94",
"reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94",
"shasum": ""
},
"require": {
@@ -6383,7 +6380,7 @@
"type": "tidelift"
}
],
"time": "2024-12-29T14:10:59+00:00"
"time": "2025-04-18T21:09:27+00:00"
},
{
"name": "league/config",
@@ -9652,16 +9649,16 @@
},
{
"name": "predis/predis",
"version": "v2.3.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/predis/predis.git",
"reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9"
"reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/predis/predis/zipball/bac46bfdb78cd6e9c7926c697012aae740cb9ec9",
"reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9",
"url": "https://api.github.com/repos/predis/predis/zipball/f49e13ee3a2a825631562aa0223ac922ec5d058b",
"reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b",
"shasum": ""
},
"require": {
@@ -9670,6 +9667,7 @@
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.3",
"phpstan/phpstan": "^1.9",
"phpunit/phpcov": "^6.0 || ^8.0",
"phpunit/phpunit": "^8.0 || ^9.4"
},
"suggest": {
@@ -9692,7 +9690,7 @@
"role": "Maintainer"
}
],
"description": "A flexible and feature-complete Redis client for PHP.",
"description": "A flexible and feature-complete Redis/Valkey client for PHP.",
"homepage": "http://github.com/predis/predis",
"keywords": [
"nosql",
@@ -9701,7 +9699,7 @@
],
"support": {
"issues": "https://github.com/predis/predis/issues",
"source": "https://github.com/predis/predis/tree/v2.3.0"
"source": "https://github.com/predis/predis/tree/v2.4.0"
},
"funding": [
{
@@ -9709,7 +9707,7 @@
"type": "github"
}
],
"time": "2024-11-21T20:00:02+00:00"
"time": "2025-04-30T15:16:02+00:00"
},
{
"name": "psr/cache",
@@ -10865,16 +10863,16 @@
},
{
"name": "sentry/sentry",
"version": "4.10.0",
"version": "4.11.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
"reference": "2af937d47d8aadb8dab0b1d7b9557e495dd12856"
"reference": "ebf67deb9902b6da58a4b3383cbd12fed3f4f555"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/2af937d47d8aadb8dab0b1d7b9557e495dd12856",
"reference": "2af937d47d8aadb8dab0b1d7b9557e495dd12856",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/ebf67deb9902b6da58a4b3383cbd12fed3f4f555",
"reference": "ebf67deb9902b6da58a4b3383cbd12fed3f4f555",
"shasum": ""
},
"require": {
@@ -10938,7 +10936,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
"source": "https://github.com/getsentry/sentry-php/tree/4.10.0"
"source": "https://github.com/getsentry/sentry-php/tree/4.11.0"
},
"funding": [
{
@@ -10950,7 +10948,7 @@
"type": "custom"
}
],
"time": "2024-11-06T07:44:19+00:00"
"time": "2025-04-14T09:04:23+00:00"
},
{
"name": "sentry/sentry-laravel",
@@ -11513,16 +11511,16 @@
},
{
"name": "spatie/laravel-sluggable",
"version": "3.7.4",
"version": "3.7.5",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-sluggable.git",
"reference": "bd320144bc5d473ebc41da927bd1c0bae2cb169c"
"reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/bd320144bc5d473ebc41da927bd1c0bae2cb169c",
"reference": "bd320144bc5d473ebc41da927bd1c0bae2cb169c",
"url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/e4fdd519e043a2af02b52eec2c3be2dd2e262e27",
"reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27",
"shasum": ""
},
"require": {
@@ -11560,7 +11558,7 @@
"spatie"
],
"support": {
"source": "https://github.com/spatie/laravel-sluggable/tree/3.7.4"
"source": "https://github.com/spatie/laravel-sluggable/tree/3.7.5"
},
"funding": [
{
@@ -11568,24 +11566,24 @@
"type": "github"
}
],
"time": "2025-02-28T13:41:46+00:00"
"time": "2025-04-24T09:21:00+00:00"
},
{
"name": "spomky-labs/pki-framework",
"version": "1.2.2",
"version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/pki-framework.git",
"reference": "5ac374c3e295c8b917208ff41b4d30f76668478c"
"reference": "5ff1dcc21e961b60149a80e77f744fc047800b31"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/5ac374c3e295c8b917208ff41b4d30f76668478c",
"reference": "5ac374c3e295c8b917208ff41b4d30f76668478c",
"url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/5ff1dcc21e961b60149a80e77f744fc047800b31",
"reference": "5ff1dcc21e961b60149a80e77f744fc047800b31",
"shasum": ""
},
"require": {
"brick/math": "^0.10|^0.11|^0.12",
"brick/math": "^0.10|^0.11|^0.12|^0.13",
"ext-mbstring": "*",
"php": ">=8.1"
},
@@ -11600,7 +11598,7 @@
"phpstan/phpstan-deprecation-rules": "^1.0|^2.0",
"phpstan/phpstan-phpunit": "^1.1|^2.0",
"phpstan/phpstan-strict-rules": "^1.3|^2.0",
"phpunit/phpunit": "^10.1|^11.0",
"phpunit/phpunit": "^10.1|^11.0|^12.0",
"rector/rector": "^1.0|^2.0",
"roave/security-advisories": "dev-latest",
"symfony/string": "^6.4|^7.0",
@@ -11665,7 +11663,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/pki-framework/issues",
"source": "https://github.com/Spomky-Labs/pki-framework/tree/1.2.2"
"source": "https://github.com/Spomky-Labs/pki-framework/tree/1.2.3"
},
"funding": [
{
@@ -11677,7 +11675,7 @@
"type": "patreon"
}
],
"time": "2025-01-03T09:35:48+00:00"
"time": "2025-04-25T15:57:13+00:00"
},
{
"name": "sqids/sqids",
@@ -15278,16 +15276,16 @@
},
{
"name": "vlucas/phpdotenv",
"version": "v5.6.1",
"version": "v5.6.2",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
"reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
"reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
"reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
"reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
"shasum": ""
},
"require": {
@@ -15346,7 +15344,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
"source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
"source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
},
"funding": [
{
@@ -15358,7 +15356,7 @@
"type": "tidelift"
}
],
"time": "2024-07-20T21:52:34+00:00"
"time": "2025-04-30T23:37:27+00:00"
},
{
"name": "voku/portable-ascii",
@@ -15879,20 +15877,20 @@
},
{
"name": "hamcrest/hamcrest-php",
"version": "v2.0.1",
"version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/hamcrest/hamcrest-php.git",
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
"reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487",
"reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487",
"shasum": ""
},
"require": {
"php": "^5.3|^7.0|^8.0"
"php": "^7.4|^8.0"
},
"replace": {
"cordoval/hamcrest-php": "*",
@@ -15900,8 +15898,8 @@
"kodova/hamcrest-php": "*"
},
"require-dev": {
"phpunit/php-file-iterator": "^1.4 || ^2.0",
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
"phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0",
"phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"extra": {
@@ -15924,9 +15922,9 @@
],
"support": {
"issues": "https://github.com/hamcrest/hamcrest-php/issues",
"source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
"source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1"
},
"time": "2020-07-09T08:09:16+00:00"
"time": "2025-04-30T06:54:44+00:00"
},
{
"name": "kitloong/laravel-migrations-generator",
@@ -16005,16 +16003,16 @@
},
{
"name": "laravel/sail",
"version": "v1.41.0",
"version": "v1.42.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
"reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec"
"reference": "2edaaf77f3c07a4099965bb3d7dfee16e801c0f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec",
"reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec",
"url": "https://api.github.com/repos/laravel/sail/zipball/2edaaf77f3c07a4099965bb3d7dfee16e801c0f6",
"reference": "2edaaf77f3c07a4099965bb3d7dfee16e801c0f6",
"shasum": ""
},
"require": {
@@ -16064,7 +16062,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
"time": "2025-01-24T15:45:36+00:00"
"time": "2025-04-29T14:26:46+00:00"
},
{
"name": "mockery/mockery",
@@ -16151,16 +16149,16 @@
},
{
"name": "myclabs/deep-copy",
"version": "1.13.0",
"version": "1.13.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
"reference": "024473a478be9df5fdaca2c793f2232fe788e414"
"reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414",
"reference": "024473a478be9df5fdaca2c793f2232fe788e414",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c",
"reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c",
"shasum": ""
},
"require": {
@@ -16199,7 +16197,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
"source": "https://github.com/myclabs/DeepCopy/tree/1.13.0"
"source": "https://github.com/myclabs/DeepCopy/tree/1.13.1"
},
"funding": [
{
@@ -16207,7 +16205,7 @@
"type": "tidelift"
}
],
"time": "2025-02-12T12:17:51+00:00"
"time": "2025-04-29T12:36:36+00:00"
},
{
"name": "myclabs/php-enum",
@@ -17826,16 +17824,16 @@
},
{
"name": "spatie/backtrace",
"version": "1.7.1",
"version": "1.7.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/backtrace.git",
"reference": "0f2477c520e3729de58e061b8192f161c99f770b"
"reference": "9807de6b8fecfaa5b3d10650985f0348b02862b2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/backtrace/zipball/0f2477c520e3729de58e061b8192f161c99f770b",
"reference": "0f2477c520e3729de58e061b8192f161c99f770b",
"url": "https://api.github.com/repos/spatie/backtrace/zipball/9807de6b8fecfaa5b3d10650985f0348b02862b2",
"reference": "9807de6b8fecfaa5b3d10650985f0348b02862b2",
"shasum": ""
},
"require": {
@@ -17873,7 +17871,7 @@
"spatie"
],
"support": {
"source": "https://github.com/spatie/backtrace/tree/1.7.1"
"source": "https://github.com/spatie/backtrace/tree/1.7.2"
},
"funding": [
{
@@ -17885,7 +17883,7 @@
"type": "other"
}
],
"time": "2024-12-02T13:28:15+00:00"
"time": "2025-04-28T14:55:53+00:00"
},
{
"name": "spatie/error-solutions",

View File

@@ -1,6 +1,6 @@
{
"name": "@fleetbase/console",
"version": "0.6.8",
"version": "0.6.9",
"private": true,
"description": "Modular logistics and supply chain operating system (LSOS)",
"repository": "https://github.com/fleetbase/fleetbase",
@@ -33,7 +33,7 @@
"@fleetbase/ember-core": "latest",
"@fleetbase/ember-ui": "latest",
"@fleetbase/fleetops-data": "latest",
"@fleetbase/fleetops-engine": "^0.6.5",
"@fleetbase/fleetops-engine": "^0.6.6",
"@fleetbase/iam-engine": "^0.1.3",
"@fleetbase/leaflet-routing-machine": "^3.2.16",
"@fleetbase/registry-bridge-engine": "^0.0.18",

2886
console/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2
# Base stage
FROM dunglas/frankenphp:1.5.0-php8.2-bookworm as base
FROM dunglas/frankenphp:1.5.0-php8.2-bookworm AS base
# Install packages
RUN apt-get update && apt-get install -y git bind9-utils mycli nodejs npm nano \
@@ -62,10 +62,10 @@ COPY --from=ghcr.io/springload/ssm-parent:1.8 /usr/bin/ssm-parent /sbin/ssm-pare
# Create the pnpm directory and set the PNPM_HOME environment variable
RUN mkdir -p ~/.pnpm
ENV PNPM_HOME /root/.pnpm
ENV PNPM_HOME=/root/.pnpm
# Add the pnpm global bin to the PATH
ENV PATH /root/.pnpm/bin:$PATH
ENV PATH=/root/.pnpm/bin:$PATH
# Set some build ENV variables
ENV LOG_CHANNEL=stdout
@@ -123,7 +123,7 @@ RUN chmod -R 755 /fleetbase/api/storage
RUN chmod +x /fleetbase/api/deploy.sh
# Scheduler base stage
FROM base as scheduler-base
FROM base AS scheduler-base
# Install go-crond
RUN curl -L https://github.com/webdevops/go-crond/releases/download/23.12.0/go-crond.linux.amd64 > /usr/local/bin/go-crond && chmod +x /usr/local/bin/go-crond
@@ -131,31 +131,31 @@ COPY docker/crontab ./crontab
RUN chmod 0600 ./crontab
# Scheduler dev stage
FROM scheduler-base as scheduler-dev
FROM scheduler-base AS scheduler-dev
ENTRYPOINT []
CMD ["go-crond", "--verbose", "root:./crontab"]
# Scheduler stage
FROM scheduler-base as scheduler
FROM scheduler-base AS scheduler
ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--"]
CMD ["go-crond", "--verbose", "root:./crontab"]
# Events stage
FROM base as events
FROM base AS events
ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--", "docker-php-entrypoint"]
CMD ["php", "artisan", "queue:work"]
# Events stage
FROM base as events-dev
FROM base AS events-dev
ENTRYPOINT []
CMD ["php", "artisan", "queue:work"]
# Application dev stage
FROM base as app-dev
FROM base AS app-dev
ENTRYPOINT ["docker-php-entrypoint"]
CMD ["sh", "-c", "php artisan octane:frankenphp --max-requests=250 --port=8000 --host=0.0.0.0 --watch"]
# Application stage
FROM base as app
FROM base AS app
ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--", "docker-php-entrypoint"]
CMD ["sh", "-c", "php artisan octane:frankenphp --max-requests=250 --port=8000 --host=0.0.0.0"]

View File

@@ -1,154 +0,0 @@
# syntax = docker/dockerfile:1.2
# Base stage
FROM dunglas/frankenphp:1.5.0-php8.2-bookworm AS base
# Install packages
RUN apt-get update && apt-get install -y git bind9-utils mycli nodejs npm nano mariadb-server redis-server \
&& mkdir -p /root/.ssh \
&& ssh-keyscan github.com >> /root/.ssh/known_hosts
# Install PHP Extensions
RUN install-php-extensions \
pdo_mysql \
gd \
bcmath \
redis \
intl \
zip \
gmp \
apcu \
opcache \
memcached \
imagick \
# geos \
sockets \
pcntl \
@composer
# Install build dependencies for GEOS
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
pkg-config \
libgeos-dev \
libgeos++-dev \
autoconf \
build-essential \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Download, extract, compile, and enable the php-geos extension
RUN curl -fsSL -o php-geos.zip \
https://github.com/libgeos/php-geos/archive/dfe1ab17b0f155cc315bc13c75689371676e02e1.zip \
&& unzip php-geos.zip \
&& rm php-geos.zip \
&& cd php-geos-* \
&& ./autogen.sh \
&& ./configure \
&& make -j"$(nproc)" install \
&& docker-php-ext-enable geos \
&& cd .. \
&& rm -rf php-geos-*
# Update PHP configurations
RUN sed -e 's/^expose_php.*/expose_php = Off/' "$PHP_INI_DIR/php.ini-production" > "$PHP_INI_DIR/php.ini" \
&& sed -i -e 's/^upload_max_filesize.*/upload_max_filesize = 600M/' -e 's/^post_max_size.*/post_max_size = 0/' \
-e 's/^memory_limit.*/memory_limit = 600M/' "$PHP_INI_DIR/php.ini"
# Install global node modules
RUN npm install -g chokidar pnpm socketcluster ember-cli npm-cli-login
# Create application directory
RUN mkdir -p /fleetbase
# Setup Console
COPY --chown=www-data:www-data ./console /fleetbase/console
WORKDIR /fleetbase/console
RUN pnpm install && pnpm build
# Setup SocketCluster
RUN socketcluster create /fleetbase/socketcluster
# Install ssm-parent
COPY --from=ghcr.io/springload/ssm-parent:1.8 /usr/bin/ssm-parent /sbin/ssm-parent
# Create the pnpm directory and set the PNPM_HOME environment variable
RUN mkdir -p ~/.pnpm
ENV PNPM_HOME=/root/.pnpm
# Add the pnpm global bin to the PATH
ENV PATH=/root/.pnpm/bin:$PATH
# Set some build ENV variables
ENV LOG_CHANNEL=stdout
ENV CACHE_DRIVER=null
ENV BROADCAST_DRIVER=socketcluster
ENV QUEUE_CONNECTION=redis
ENV CADDYFILE_PATH=/fleetbase/Caddyfile
ENV CONSOLE_PATH=/fleetbase/console
ENV OCTANE_SERVER=frankenphp
ENV DB_CONNECTION=mysql
ENV DB_HOST=127.0.0.1
ENV DB_PORT=3306
ENV DB_DATABASE=fleetbase
ENV DB_USERNAME=root
ENV DB_PASSWORD=secret
ENV REDIS_HOST=127.0.0.1
ENV REDIS_PORT=6379
ENV REDIS_CLIENT=phpredis
# Set environment
ARG ENVIRONMENT=production
ENV APP_ENV=$ENVIRONMENT
# Setup github auth
ARG GITHUB_AUTH_KEY
# Copy Caddyfile
COPY --chown=www-data:www-data ./Caddyfile $CADDYFILE_PATH
# Create /fleetbase directory and set correct permissions
RUN mkdir -p /fleetbase/api && mkdir -p /fleetbase/console && chown -R www-data:www-data /fleetbase
# Set working directory
WORKDIR /fleetbase/api
# Prepare composer cache directory
RUN mkdir -p /var/www/.cache/composer && chown -R www-data:www-data /var/www/.cache/composer
# Optimize Composer Dependency Installation
COPY --chown=www-data:www-data ./api/composer.json ./api/composer.lock /fleetbase/api/
# Pre-install Composer dependencies
RUN su www-data -s /bin/sh -c "composer install --no-scripts --optimize-autoloader --no-dev --no-cache"
# Setup application
COPY --chown=www-data:www-data ./api /fleetbase/api
# Dump autoload
RUN su www-data -s /bin/sh -c "composer dumpautoload"
# Setup composer root directory
RUN mkdir -p /root/.composer
RUN mkdir -p /fleetbase/api/.composer && chown www-data:www-data /fleetbase/api/.composer
# Setup logging
RUN mkdir -p /fleetbase/api/storage/logs/ && touch /fleetbase/api/storage/logs/laravel-$(date +'%Y-%m-%d').log
RUN chown -R www-data:www-data /fleetbase/api/storage
RUN chmod -R 755 /fleetbase/api/storage
# Set permissions and run deploy script
RUN chmod +x /fleetbase/api/deploy.sh
# RUN sh ./fleetbase/api/deploy.sh
# Install go-crond
RUN curl -L https://github.com/webdevops/go-crond/releases/download/23.12.0/go-crond.linux.amd64 > /usr/local/bin/go-crond && chmod +x /usr/local/bin/go-crond
COPY docker/crontab ./crontab
RUN chmod 0600 ./crontab
# Expose ports
EXPOSE 8000 4200 3800 3306 6379
# Execute
COPY ./docker/fullstack-entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,47 +0,0 @@
#!/usr/bin/env bash
set -e
echo "🚀 Fleetbase Fullstack Container Starting..."
# Graceful shutdown handler
trap 'echo "🛑 Caught termination signal, shutting down..."; kill $(jobs -p); wait' SIGTERM SIGINT
echo "🔧 Starting MySQL service..."
service mysql start
echo "🗄️ Configuring MySQL database and user..."
mysql --user=root <<-EOSQL
CREATE DATABASE IF NOT EXISTS fleetbase;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secret';
FLUSH PRIVILEGES;
EOSQL
echo "🧠 Waiting for MySQL to become ready..."
until mysqladmin ping --silent; do
echo "⏳ Waiting for MySQL..."
sleep 1
done
echo "✅ MySQL is ready."
echo "🔧 Starting Redis service..."
service redis-server start
echo "🧠 Waiting for Redis to become ready..."
until redis-cli ping | grep -q PONG; do
echo "⏳ Waiting for Redis..."
sleep 1
done
echo "✅ Redis is ready."
echo "📡 Launching SocketCluster on port 3800..."
node /fleetbase/socketcluster/index.js &
echo "🖥️ Serving Ember frontend on port 4200..."
npx serve -l 4200 /fleetbase/console/dist &
echo "📦 Running Fleetbase deploy script..."
sh /fleetbase/api/deploy.sh
echo "🧬 Starting Laravel API (FrankenPHP Octane) on port 8000..."
cd /fleetbase/api
exec php artisan octane:frankenphp --port=8000 --host=0.0.0.0