From 8ac2f643539eb3d5aa42a90de3a6ed4bdbe59d81 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 11:58:08 +0200 Subject: [PATCH 1/6] fix: function storage metrics --- Dockerfile | 4 ++-- app/controllers/api/project.php | 3 ++- phpunit.xml | 2 +- src/Appwrite/Utopia/Response/Model/UsageProject.php | 10 ++++++++-- tests/e2e/General/UsageTest.php | 6 +++--- .../Services/Projects/ProjectsConsoleClientTest.php | 6 +++--- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4dc996fe89..dc334e53d0 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM composer:2.0 as composer +FROM composer:2.0 AS composer ARG TESTING=false ENV TESTING=$TESTING @@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM appwrite/base:0.9.2 as final +FROM appwrite/base:0.9.2 AS final LABEL maintainer="team@appwrite.io" diff --git a/app/controllers/api/project.php b/app/controllers/api/project.php index a4444b1716..49c902d65b 100644 --- a/app/controllers/api/project.php +++ b/app/controllers/api/project.php @@ -272,7 +272,8 @@ App::get('/v1/project/usage') 'usersTotal' => $total[METRIC_USERS], 'bucketsTotal' => $total[METRIC_BUCKETS], 'filesStorageTotal' => $total[METRIC_FILES_STORAGE], - 'functionsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE] + $total[METRIC_BUILDS_STORAGE], + 'buildsStorageTotal' => $total[METRIC_BUILDS_STORAGE], + 'deploymentsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE], 'executionsBreakdown' => $executionsBreakdown, 'executionsMbSecondsBreakdown' => $executionsMbSecondsBreakdown, 'buildsMbSecondsBreakdown' => $buildsMbSecondsBreakdown, diff --git a/phpunit.xml b/phpunit.xml index 90ebd4225f..e772866051 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -6,7 +6,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" + stopOnFailure="true" > diff --git a/src/Appwrite/Utopia/Response/Model/UsageProject.php b/src/Appwrite/Utopia/Response/Model/UsageProject.php index 8448951886..1128c0d578 100644 --- a/src/Appwrite/Utopia/Response/Model/UsageProject.php +++ b/src/Appwrite/Utopia/Response/Model/UsageProject.php @@ -40,9 +40,15 @@ class UsageProject extends Model 'default' => 0, 'example' => 0, ]) - ->addRule('functionsStorageTotal', [ + ->addRule('buildsStorageTotal', [ 'type' => self::TYPE_INTEGER, - 'description' => 'Total aggregated sum of functions storage size (in bytes).', + 'description' => 'Total aggregated sum of builds storage size (in bytes).', + 'default' => 0, + 'example' => 0, + ]) + ->addRule('deploymentsStorageTotal', [ + 'type' => self::TYPE_INTEGER, + 'description' => 'Total aggregated sum of deployments storage size (in bytes).', 'default' => 0, 'example' => 0, ]) diff --git a/tests/e2e/General/UsageTest.php b/tests/e2e/General/UsageTest.php index 32e9eb6454..910c0e3824 100644 --- a/tests/e2e/General/UsageTest.php +++ b/tests/e2e/General/UsageTest.php @@ -143,7 +143,7 @@ class UsageTest extends Scope ); $this->assertEquals(200, $response['headers']['status-code']); - $this->assertEquals(18, count($response['body'])); + $this->assertEquals(19, count($response['body'])); $this->validateDates($response['body']['network']); $this->validateDates($response['body']['requests']); $this->validateDates($response['body']['users']); @@ -324,7 +324,7 @@ class UsageTest extends Scope ] ); - $this->assertEquals(18, count($response['body'])); + $this->assertEquals(19, count($response['body'])); $this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']); $this->validateDates($response['body']['requests']); @@ -545,7 +545,7 @@ class UsageTest extends Scope ] ); - $this->assertEquals(18, count($response['body'])); + $this->assertEquals(19, count($response['body'])); $this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals(1, count($response['body']['network'])); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']); diff --git a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php index c41d861f1d..fa6154063b 100644 --- a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php +++ b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php @@ -474,7 +474,7 @@ class ProjectsConsoleClientTest extends Scope ]); $this->assertEquals(200, $response['headers']['status-code']); - $this->assertEquals(8, count($response['body'])); + $this->assertEquals(9, count($response['body'])); $this->assertNotEmpty($response['body']); $this->assertIsArray($response['body']['requests']); $this->assertIsArray($response['body']['network']); @@ -484,8 +484,8 @@ class ProjectsConsoleClientTest extends Scope $this->assertIsNumeric($response['body']['bucketsTotal']); $this->assertIsNumeric($response['body']['usersTotal']); $this->assertIsNumeric($response['body']['filesStorageTotal']); - $this->assertIsNumeric($response['body']['deploymentStorageTotal']); - + $this->assertIsNumeric($response['body']['buildsStorageTotal']); + $this->assertIsNumeric($response['body']['deploymentsStorageTotal']); /** * Test for FAILURE From 7c4a954166ec8e1ba3756bbb985a0678cb1326ba Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 12:00:17 +0200 Subject: [PATCH 2/6] chore: generate specs --- app/config/specs/open-api3-1.6.x-console.json | 19 ++++++++++--------- app/config/specs/open-api3-1.6.x-server.json | 6 ------ .../specs/open-api3-latest-console.json | 19 ++++++++++--------- app/config/specs/open-api3-latest-server.json | 6 ------ app/config/specs/swagger2-1.6.x-console.json | 19 ++++++++++--------- app/config/specs/swagger2-1.6.x-server.json | 6 ------ app/config/specs/swagger2-latest-console.json | 19 ++++++++++--------- app/config/specs/swagger2-latest-server.json | 6 ------ phpunit.xml | 2 +- .../Projects/ProjectsConsoleClientTest.php | 8 ++++---- 10 files changed, 45 insertions(+), 65 deletions(-) diff --git a/app/config/specs/open-api3-1.6.x-console.json b/app/config/specs/open-api3-1.6.x-console.json index 48c37c9393..7ea59065e6 100644 --- a/app/config/specs/open-api3-1.6.x-console.json +++ b/app/config/specs/open-api3-1.6.x-console.json @@ -9451,9 +9451,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10099,9 +10096,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -37378,9 +37372,15 @@ "x-example": 0, "format": "int32" }, - "functionsStorageTotal": { + "buildsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", "x-example": 0, "format": "int32" }, @@ -37481,7 +37481,8 @@ "databasesTotal", "usersTotal", "filesStorageTotal", - "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", "bucketsTotal", "executionsMbSecondsTotal", "buildsMbSecondsTotal", diff --git a/app/config/specs/open-api3-1.6.x-server.json b/app/config/specs/open-api3-1.6.x-server.json index ef41688ca8..b19e6c7e20 100644 --- a/app/config/specs/open-api3-1.6.x-server.json +++ b/app/config/specs/open-api3-1.6.x-server.json @@ -8559,9 +8559,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -8973,9 +8970,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 48c37c9393..7ea59065e6 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -9451,9 +9451,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10099,9 +10096,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -37378,9 +37372,15 @@ "x-example": 0, "format": "int32" }, - "functionsStorageTotal": { + "buildsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", "x-example": 0, "format": "int32" }, @@ -37481,7 +37481,8 @@ "databasesTotal", "usersTotal", "filesStorageTotal", - "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", "bucketsTotal", "executionsMbSecondsTotal", "buildsMbSecondsTotal", diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index ef41688ca8..b19e6c7e20 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -8559,9 +8559,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -8973,9 +8970,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-1.6.x-console.json b/app/config/specs/swagger2-1.6.x-console.json index 4b2bdc0c4d..4cd2a65aac 100644 --- a/app/config/specs/swagger2-1.6.x-console.json +++ b/app/config/specs/swagger2-1.6.x-console.json @@ -9573,9 +9573,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10240,9 +10237,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -37933,9 +37927,15 @@ "x-example": 0, "format": "int32" }, - "functionsStorageTotal": { + "buildsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", "x-example": 0, "format": "int32" }, @@ -38045,7 +38045,8 @@ "databasesTotal", "usersTotal", "filesStorageTotal", - "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", "bucketsTotal", "executionsMbSecondsTotal", "buildsMbSecondsTotal", diff --git a/app/config/specs/swagger2-1.6.x-server.json b/app/config/specs/swagger2-1.6.x-server.json index af6274226f..1e94841e6a 100644 --- a/app/config/specs/swagger2-1.6.x-server.json +++ b/app/config/specs/swagger2-1.6.x-server.json @@ -8683,9 +8683,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -9120,9 +9117,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 4b2bdc0c4d..4cd2a65aac 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -9573,9 +9573,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10240,9 +10237,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -37933,9 +37927,15 @@ "x-example": 0, "format": "int32" }, - "functionsStorageTotal": { + "buildsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", "x-example": 0, "format": "int32" }, @@ -38045,7 +38045,8 @@ "databasesTotal", "usersTotal", "filesStorageTotal", - "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", "bucketsTotal", "executionsMbSecondsTotal", "buildsMbSecondsTotal", diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index af6274226f..1e94841e6a 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -8683,9 +8683,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -9120,9 +9117,6 @@ "python-3.11", "python-3.12", "python-ml-3.11", - "deno-1.21", - "deno-1.24", - "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/phpunit.xml b/phpunit.xml index e772866051..90ebd4225f 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -6,7 +6,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="true" + stopOnFailure="false" > diff --git a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php index fa6154063b..0c2534a5b9 100644 --- a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php +++ b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php @@ -474,7 +474,7 @@ class ProjectsConsoleClientTest extends Scope ]); $this->assertEquals(200, $response['headers']['status-code']); - $this->assertEquals(9, count($response['body'])); + $this->assertEquals(8, count($response['body'])); $this->assertNotEmpty($response['body']); $this->assertIsArray($response['body']['requests']); $this->assertIsArray($response['body']['network']); @@ -484,8 +484,8 @@ class ProjectsConsoleClientTest extends Scope $this->assertIsNumeric($response['body']['bucketsTotal']); $this->assertIsNumeric($response['body']['usersTotal']); $this->assertIsNumeric($response['body']['filesStorageTotal']); - $this->assertIsNumeric($response['body']['buildsStorageTotal']); - $this->assertIsNumeric($response['body']['deploymentsStorageTotal']); + $this->assertIsNumeric($response['body']['deploymentStorageTotal']); + /** * Test for FAILURE @@ -3793,4 +3793,4 @@ class ProjectsConsoleClientTest extends Scope return $data; } -} +} \ No newline at end of file From 4112880330bd10a72f673996e12567b683dffd08 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 12:03:18 +0200 Subject: [PATCH 3/6] chore: run formatter --- tests/e2e/Services/Projects/ProjectsConsoleClientTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php index 0c2534a5b9..c41d861f1d 100644 --- a/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php +++ b/tests/e2e/Services/Projects/ProjectsConsoleClientTest.php @@ -3793,4 +3793,4 @@ class ProjectsConsoleClientTest extends Scope return $data; } -} \ No newline at end of file +} From b3ea0bbb6bea8fedb2d2c3cf655973ff051ba35e Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 12:04:56 +0200 Subject: [PATCH 4/6] chore: update compose lock file --- composer.lock | 245 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 164 insertions(+), 81 deletions(-) diff --git a/composer.lock b/composer.lock index aac1554dbf..147800df32 100644 --- a/composer.lock +++ b/composer.lock @@ -1130,20 +1130,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -1190,7 +1190,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -1206,24 +1206,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -1270,7 +1270,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -1286,7 +1286,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "thecodingmachine/safe", @@ -2993,16 +2993,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "0.39.19", + "version": "0.39.21", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "d5653a2f744d2c297d44f99ff68bfc26c1a3b804" + "reference": "9754b190d33aaad56fdb8defc94f90248184c5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/d5653a2f744d2c297d44f99ff68bfc26c1a3b804", - "reference": "d5653a2f744d2c297d44f99ff68bfc26c1a3b804", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/9754b190d33aaad56fdb8defc94f90248184c5ac", + "reference": "9754b190d33aaad56fdb8defc94f90248184c5ac", "shasum": "" }, "require": { @@ -3011,12 +3011,12 @@ "ext-mbstring": "*", "matthiasmullie/minify": "1.3.*", "php": ">=8.0", - "twig/twig": "v3.8.*" + "twig/twig": "3.14.*" }, "require-dev": { - "brianium/paratest": "v7.4.*", - "phpunit/phpunit": "10.5.*", - "squizlabs/php_codesniffer": "3.9.*" + "brianium/paratest": "7.*", + "phpunit/phpunit": "11.*", + "squizlabs/php_codesniffer": "3.*" }, "type": "library", "autoload": { @@ -3038,22 +3038,22 @@ "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "support": { "issues": "https://github.com/appwrite/sdk-generator/issues", - "source": "https://github.com/appwrite/sdk-generator/tree/0.39.19" + "source": "https://github.com/appwrite/sdk-generator/tree/0.39.21" }, - "time": "2024-08-30T12:04:18+00:00" + "time": "2024-09-10T08:49:29+00:00" }, { "name": "doctrine/annotations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7", + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7", "shasum": "" }, "require": { @@ -3065,10 +3065,10 @@ "require-dev": { "doctrine/cache": "^2.0", "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.0", + "phpstan/phpstan": "^1.10.28", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^5.4 || ^6", - "vimeo/psalm": "^4.10" + "symfony/cache": "^5.4 || ^6.4 || ^7", + "vimeo/psalm": "^4.30 || ^5.14" }, "suggest": { "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" @@ -3114,9 +3114,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/2.0.1" + "source": "https://github.com/doctrine/annotations/tree/2.0.2" }, - "time": "2023-02-02T22:02:53+00:00" + "time": "2024-09-05T10:17:24+00:00" }, { "name": "doctrine/deprecations", @@ -3564,16 +3564,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.1.0", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", "shasum": "" }, "require": { @@ -3616,9 +3616,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" }, - "time": "2024-07-01T20:03:41+00:00" + "time": "2024-09-15T16:40:33+00:00" }, { "name": "phar-io/manifest", @@ -4185,16 +4185,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.0", + "version": "1.30.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" + "reference": "51b95ec8670af41009e2b2b56873bad96682413e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", + "reference": "51b95ec8670af41009e2b2b56873bad96682413e", "shasum": "" }, "require": { @@ -4226,9 +4226,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" }, - "time": "2024-08-29T09:54:52+00:00" + "time": "2024-09-07T20:13:05+00:00" }, { "name": "phpunit/php-code-coverage", @@ -4756,16 +4756,16 @@ }, { "name": "psr/log", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "79dff0b268932c640297f5208d6298f71855c03e" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", - "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -4800,9 +4800,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2024-08-21T13:31:24+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "sebastian/cli-parser", @@ -6222,20 +6222,20 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -6281,7 +6281,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -6297,24 +6297,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -6359,7 +6359,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -6375,24 +6375,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -6440,7 +6440,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -6456,7 +6456,83 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", @@ -6790,30 +6866,37 @@ }, { "name": "twig/twig", - "version": "v3.8.0", + "version": "v3.14.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { "Twig\\": "src/" } @@ -6846,7 +6929,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + "source": "https://github.com/twigphp/Twig/tree/v3.14.0" }, "funding": [ { @@ -6858,7 +6941,7 @@ "type": "tidelift" } ], - "time": "2023-11-21T18:54:41+00:00" + "time": "2024-09-09T17:55:12+00:00" }, { "name": "webmozart/glob", From a5516765b3d29ed17cd765c2a9fc78eef0346943 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 12:43:59 +0200 Subject: [PATCH 5/6] fix: architecture agnostic runtimes in cli --- app/cli.php | 8 +++++++- app/config/specs/open-api3-1.6.x-console.json | 6 ++++++ app/config/specs/open-api3-1.6.x-server.json | 6 ++++++ app/config/specs/open-api3-latest-console.json | 6 ++++++ app/config/specs/open-api3-latest-server.json | 6 ++++++ app/config/specs/swagger2-1.6.x-console.json | 6 ++++++ app/config/specs/swagger2-1.6.x-server.json | 6 ++++++ app/config/specs/swagger2-latest-console.json | 6 ++++++ app/config/specs/swagger2-latest-server.json | 6 ++++++ 9 files changed, 55 insertions(+), 1 deletion(-) diff --git a/app/cli.php b/app/cli.php index 9a022eaacc..ecff5180a2 100644 --- a/app/cli.php +++ b/app/cli.php @@ -1,12 +1,12 @@ getAll(supported: false)); + +// require controllers after overwriting runtimes +require_once __DIR__ . '/controllers/general.php'; + Authorization::disable(); CLI::setResource('register', fn () => $register); diff --git a/app/config/specs/open-api3-1.6.x-console.json b/app/config/specs/open-api3-1.6.x-console.json index 7ea59065e6..99fd60228a 100644 --- a/app/config/specs/open-api3-1.6.x-console.json +++ b/app/config/specs/open-api3-1.6.x-console.json @@ -9451,6 +9451,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10096,6 +10099,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/open-api3-1.6.x-server.json b/app/config/specs/open-api3-1.6.x-server.json index b19e6c7e20..ef41688ca8 100644 --- a/app/config/specs/open-api3-1.6.x-server.json +++ b/app/config/specs/open-api3-1.6.x-server.json @@ -8559,6 +8559,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -8970,6 +8973,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 7ea59065e6..99fd60228a 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -9451,6 +9451,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10096,6 +10099,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index b19e6c7e20..ef41688ca8 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -8559,6 +8559,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -8970,6 +8973,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-1.6.x-console.json b/app/config/specs/swagger2-1.6.x-console.json index 4cd2a65aac..b1a45d3288 100644 --- a/app/config/specs/swagger2-1.6.x-console.json +++ b/app/config/specs/swagger2-1.6.x-console.json @@ -9573,6 +9573,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10237,6 +10240,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-1.6.x-server.json b/app/config/specs/swagger2-1.6.x-server.json index 1e94841e6a..af6274226f 100644 --- a/app/config/specs/swagger2-1.6.x-server.json +++ b/app/config/specs/swagger2-1.6.x-server.json @@ -8683,6 +8683,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -9117,6 +9120,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 4cd2a65aac..b1a45d3288 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -9573,6 +9573,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -10237,6 +10240,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 1e94841e6a..af6274226f 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -8683,6 +8683,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", @@ -9117,6 +9120,9 @@ "python-3.11", "python-3.12", "python-ml-3.11", + "deno-1.21", + "deno-1.24", + "deno-1.35", "deno-1.40", "dart-2.15", "dart-2.16", From c5dae9f0183bfcf0ac702909a3ac9990fb4d4796 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 16 Sep 2024 13:49:13 +0200 Subject: [PATCH 6/6] fix: backwards compatibility --- app/config/specs/open-api3-1.6.x-console.json | 7 +++++++ app/config/specs/open-api3-latest-console.json | 7 +++++++ app/config/specs/swagger2-1.6.x-console.json | 7 +++++++ app/config/specs/swagger2-latest-console.json | 7 +++++++ app/controllers/api/project.php | 1 + src/Appwrite/Utopia/Response/Model/UsageProject.php | 6 ++++++ tests/e2e/General/UsageTest.php | 6 +++--- 7 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/config/specs/open-api3-1.6.x-console.json b/app/config/specs/open-api3-1.6.x-console.json index 99fd60228a..07749889d8 100644 --- a/app/config/specs/open-api3-1.6.x-console.json +++ b/app/config/specs/open-api3-1.6.x-console.json @@ -37378,6 +37378,12 @@ "x-example": 0, "format": "int32" }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "Total aggregated sum of builds storage size (in bytes).", @@ -37487,6 +37493,7 @@ "databasesTotal", "usersTotal", "filesStorageTotal", + "functionsStorageTotal", "buildsStorageTotal", "deploymentsStorageTotal", "bucketsTotal", diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 99fd60228a..07749889d8 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -37378,6 +37378,12 @@ "x-example": 0, "format": "int32" }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "Total aggregated sum of builds storage size (in bytes).", @@ -37487,6 +37493,7 @@ "databasesTotal", "usersTotal", "filesStorageTotal", + "functionsStorageTotal", "buildsStorageTotal", "deploymentsStorageTotal", "bucketsTotal", diff --git a/app/config/specs/swagger2-1.6.x-console.json b/app/config/specs/swagger2-1.6.x-console.json index b1a45d3288..51935a5e01 100644 --- a/app/config/specs/swagger2-1.6.x-console.json +++ b/app/config/specs/swagger2-1.6.x-console.json @@ -37933,6 +37933,12 @@ "x-example": 0, "format": "int32" }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "Total aggregated sum of builds storage size (in bytes).", @@ -38051,6 +38057,7 @@ "databasesTotal", "usersTotal", "filesStorageTotal", + "functionsStorageTotal", "buildsStorageTotal", "deploymentsStorageTotal", "bucketsTotal", diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index b1a45d3288..51935a5e01 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -37933,6 +37933,12 @@ "x-example": 0, "format": "int32" }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "buildsStorageTotal": { "type": "integer", "description": "Total aggregated sum of builds storage size (in bytes).", @@ -38051,6 +38057,7 @@ "databasesTotal", "usersTotal", "filesStorageTotal", + "functionsStorageTotal", "buildsStorageTotal", "deploymentsStorageTotal", "bucketsTotal", diff --git a/app/controllers/api/project.php b/app/controllers/api/project.php index 49c902d65b..d885e980df 100644 --- a/app/controllers/api/project.php +++ b/app/controllers/api/project.php @@ -272,6 +272,7 @@ App::get('/v1/project/usage') 'usersTotal' => $total[METRIC_USERS], 'bucketsTotal' => $total[METRIC_BUCKETS], 'filesStorageTotal' => $total[METRIC_FILES_STORAGE], + 'functionsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE] + $total[METRIC_BUILDS_STORAGE], 'buildsStorageTotal' => $total[METRIC_BUILDS_STORAGE], 'deploymentsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE], 'executionsBreakdown' => $executionsBreakdown, diff --git a/src/Appwrite/Utopia/Response/Model/UsageProject.php b/src/Appwrite/Utopia/Response/Model/UsageProject.php index 1128c0d578..2703691238 100644 --- a/src/Appwrite/Utopia/Response/Model/UsageProject.php +++ b/src/Appwrite/Utopia/Response/Model/UsageProject.php @@ -40,6 +40,12 @@ class UsageProject extends Model 'default' => 0, 'example' => 0, ]) + ->addRule('functionsStorageTotal', [ + 'type' => self::TYPE_INTEGER, + 'description' => 'Total aggregated sum of functions storage size (in bytes).', + 'default' => 0, + 'example' => 0, + ]) ->addRule('buildsStorageTotal', [ 'type' => self::TYPE_INTEGER, 'description' => 'Total aggregated sum of builds storage size (in bytes).', diff --git a/tests/e2e/General/UsageTest.php b/tests/e2e/General/UsageTest.php index 910c0e3824..d3623acffc 100644 --- a/tests/e2e/General/UsageTest.php +++ b/tests/e2e/General/UsageTest.php @@ -143,7 +143,7 @@ class UsageTest extends Scope ); $this->assertEquals(200, $response['headers']['status-code']); - $this->assertEquals(19, count($response['body'])); + $this->assertEquals(20, count($response['body'])); $this->validateDates($response['body']['network']); $this->validateDates($response['body']['requests']); $this->validateDates($response['body']['users']); @@ -324,7 +324,7 @@ class UsageTest extends Scope ] ); - $this->assertEquals(19, count($response['body'])); + $this->assertEquals(20, count($response['body'])); $this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']); $this->validateDates($response['body']['requests']); @@ -545,7 +545,7 @@ class UsageTest extends Scope ] ); - $this->assertEquals(19, count($response['body'])); + $this->assertEquals(20, count($response['body'])); $this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals(1, count($response['body']['network'])); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']);