Merge pull request #8668 from appwrite/fix-function-storage-metrics

fix: function storage metrics
This commit is contained in:
Torsten Dittmann 2024-09-16 14:21:52 +02:00 committed by GitHub
commit 49cc99a556
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 246 additions and 87 deletions

View file

@ -1,4 +1,4 @@
FROM composer:2.0 as composer FROM composer:2.0 AS composer
ARG TESTING=false ARG TESTING=false
ENV TESTING=$TESTING ENV TESTING=$TESTING
@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
--no-plugins --no-scripts --prefer-dist \ --no-plugins --no-scripts --prefer-dist \
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` `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" LABEL maintainer="team@appwrite.io"

View file

@ -1,12 +1,12 @@
<?php <?php
require_once __DIR__ . '/init.php'; require_once __DIR__ . '/init.php';
require_once __DIR__ . '/controllers/general.php';
use Appwrite\Event\Certificate; use Appwrite\Event\Certificate;
use Appwrite\Event\Delete; use Appwrite\Event\Delete;
use Appwrite\Event\Func; use Appwrite\Event\Func;
use Appwrite\Platform\Appwrite; use Appwrite\Platform\Appwrite;
use Appwrite\Runtimes\Runtimes;
use Utopia\Cache\Adapter\Sharding; use Utopia\Cache\Adapter\Sharding;
use Utopia\Cache\Cache; use Utopia\Cache\Cache;
use Utopia\CLI\CLI; use Utopia\CLI\CLI;
@ -23,6 +23,12 @@ use Utopia\Queue\Connection;
use Utopia\Registry\Registry; use Utopia\Registry\Registry;
use Utopia\System\System; use Utopia\System\System;
// overwriting runtimes to be architectur agnostic for CLI
Config::setParam('runtimes', (new Runtimes('v4'))->getAll(supported: false));
// require controllers after overwriting runtimes
require_once __DIR__ . '/controllers/general.php';
Authorization::disable(); Authorization::disable();
CLI::setResource('register', fn () => $register); CLI::setResource('register', fn () => $register);

View file

@ -37384,6 +37384,18 @@
"x-example": 0, "x-example": 0,
"format": "int32" "format": "int32"
}, },
"buildsStorageTotal": {
"type": "integer",
"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"
},
"bucketsTotal": { "bucketsTotal": {
"type": "integer", "type": "integer",
"description": "Total aggregated number of buckets.", "description": "Total aggregated number of buckets.",
@ -37482,6 +37494,8 @@
"usersTotal", "usersTotal",
"filesStorageTotal", "filesStorageTotal",
"functionsStorageTotal", "functionsStorageTotal",
"buildsStorageTotal",
"deploymentsStorageTotal",
"bucketsTotal", "bucketsTotal",
"executionsMbSecondsTotal", "executionsMbSecondsTotal",
"buildsMbSecondsTotal", "buildsMbSecondsTotal",

View file

@ -37384,6 +37384,18 @@
"x-example": 0, "x-example": 0,
"format": "int32" "format": "int32"
}, },
"buildsStorageTotal": {
"type": "integer",
"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"
},
"bucketsTotal": { "bucketsTotal": {
"type": "integer", "type": "integer",
"description": "Total aggregated number of buckets.", "description": "Total aggregated number of buckets.",
@ -37482,6 +37494,8 @@
"usersTotal", "usersTotal",
"filesStorageTotal", "filesStorageTotal",
"functionsStorageTotal", "functionsStorageTotal",
"buildsStorageTotal",
"deploymentsStorageTotal",
"bucketsTotal", "bucketsTotal",
"executionsMbSecondsTotal", "executionsMbSecondsTotal",
"buildsMbSecondsTotal", "buildsMbSecondsTotal",

View file

@ -37939,6 +37939,18 @@
"x-example": 0, "x-example": 0,
"format": "int32" "format": "int32"
}, },
"buildsStorageTotal": {
"type": "integer",
"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"
},
"bucketsTotal": { "bucketsTotal": {
"type": "integer", "type": "integer",
"description": "Total aggregated number of buckets.", "description": "Total aggregated number of buckets.",
@ -38046,6 +38058,8 @@
"usersTotal", "usersTotal",
"filesStorageTotal", "filesStorageTotal",
"functionsStorageTotal", "functionsStorageTotal",
"buildsStorageTotal",
"deploymentsStorageTotal",
"bucketsTotal", "bucketsTotal",
"executionsMbSecondsTotal", "executionsMbSecondsTotal",
"buildsMbSecondsTotal", "buildsMbSecondsTotal",

View file

@ -37939,6 +37939,18 @@
"x-example": 0, "x-example": 0,
"format": "int32" "format": "int32"
}, },
"buildsStorageTotal": {
"type": "integer",
"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"
},
"bucketsTotal": { "bucketsTotal": {
"type": "integer", "type": "integer",
"description": "Total aggregated number of buckets.", "description": "Total aggregated number of buckets.",
@ -38046,6 +38058,8 @@
"usersTotal", "usersTotal",
"filesStorageTotal", "filesStorageTotal",
"functionsStorageTotal", "functionsStorageTotal",
"buildsStorageTotal",
"deploymentsStorageTotal",
"bucketsTotal", "bucketsTotal",
"executionsMbSecondsTotal", "executionsMbSecondsTotal",
"buildsMbSecondsTotal", "buildsMbSecondsTotal",

View file

@ -273,6 +273,8 @@ App::get('/v1/project/usage')
'bucketsTotal' => $total[METRIC_BUCKETS], 'bucketsTotal' => $total[METRIC_BUCKETS],
'filesStorageTotal' => $total[METRIC_FILES_STORAGE], 'filesStorageTotal' => $total[METRIC_FILES_STORAGE],
'functionsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE] + $total[METRIC_BUILDS_STORAGE], 'functionsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE] + $total[METRIC_BUILDS_STORAGE],
'buildsStorageTotal' => $total[METRIC_BUILDS_STORAGE],
'deploymentsStorageTotal' => $total[METRIC_DEPLOYMENTS_STORAGE],
'executionsBreakdown' => $executionsBreakdown, 'executionsBreakdown' => $executionsBreakdown,
'executionsMbSecondsBreakdown' => $executionsMbSecondsBreakdown, 'executionsMbSecondsBreakdown' => $executionsMbSecondsBreakdown,
'buildsMbSecondsBreakdown' => $buildsMbSecondsBreakdown, 'buildsMbSecondsBreakdown' => $buildsMbSecondsBreakdown,

245
composer.lock generated
View file

@ -1130,20 +1130,20 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.30.0", "version": "v1.31.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.2"
}, },
"provide": { "provide": {
"ext-mbstring": "*" "ext-mbstring": "*"
@ -1190,7 +1190,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
}, },
"funding": [ "funding": [
{ {
@ -1206,24 +1206,24 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-06-19T12:30:46+00:00" "time": "2024-09-09T11:45:10+00:00"
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.30.0", "version": "v1.31.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433" "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.2"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -1270,7 +1270,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
}, },
"funding": [ "funding": [
{ {
@ -1286,7 +1286,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-09-09T11:45:10+00:00"
}, },
{ {
"name": "thecodingmachine/safe", "name": "thecodingmachine/safe",
@ -2993,16 +2993,16 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "appwrite/sdk-generator", "name": "appwrite/sdk-generator",
"version": "0.39.19", "version": "0.39.21",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/appwrite/sdk-generator.git", "url": "https://github.com/appwrite/sdk-generator.git",
"reference": "d5653a2f744d2c297d44f99ff68bfc26c1a3b804" "reference": "9754b190d33aaad56fdb8defc94f90248184c5ac"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/d5653a2f744d2c297d44f99ff68bfc26c1a3b804", "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/9754b190d33aaad56fdb8defc94f90248184c5ac",
"reference": "d5653a2f744d2c297d44f99ff68bfc26c1a3b804", "reference": "9754b190d33aaad56fdb8defc94f90248184c5ac",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3011,12 +3011,12 @@
"ext-mbstring": "*", "ext-mbstring": "*",
"matthiasmullie/minify": "1.3.*", "matthiasmullie/minify": "1.3.*",
"php": ">=8.0", "php": ">=8.0",
"twig/twig": "v3.8.*" "twig/twig": "3.14.*"
}, },
"require-dev": { "require-dev": {
"brianium/paratest": "v7.4.*", "brianium/paratest": "7.*",
"phpunit/phpunit": "10.5.*", "phpunit/phpunit": "11.*",
"squizlabs/php_codesniffer": "3.9.*" "squizlabs/php_codesniffer": "3.*"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3038,22 +3038,22 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": { "support": {
"issues": "https://github.com/appwrite/sdk-generator/issues", "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", "name": "doctrine/annotations",
"version": "2.0.1", "version": "2.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/annotations.git", "url": "https://github.com/doctrine/annotations.git",
"reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7",
"reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3065,10 +3065,10 @@
"require-dev": { "require-dev": {
"doctrine/cache": "^2.0", "doctrine/cache": "^2.0",
"doctrine/coding-standard": "^10", "doctrine/coding-standard": "^10",
"phpstan/phpstan": "^1.8.0", "phpstan/phpstan": "^1.10.28",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"symfony/cache": "^5.4 || ^6", "symfony/cache": "^5.4 || ^6.4 || ^7",
"vimeo/psalm": "^4.10" "vimeo/psalm": "^4.30 || ^5.14"
}, },
"suggest": { "suggest": {
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
@ -3114,9 +3114,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/annotations/issues", "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", "name": "doctrine/deprecations",
@ -3564,16 +3564,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v5.1.0", "version": "v5.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
"reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3616,9 +3616,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "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", "name": "phar-io/manifest",
@ -4185,16 +4185,16 @@
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
"version": "1.30.0", "version": "1.30.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git", "url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" "reference": "51b95ec8670af41009e2b2b56873bad96682413e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e",
"reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "reference": "51b95ec8670af41009e2b2b56873bad96682413e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4226,9 +4226,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types", "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": { "support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues", "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", "name": "phpunit/php-code-coverage",
@ -4756,16 +4756,16 @@
}, },
{ {
"name": "psr/log", "name": "psr/log",
"version": "3.0.1", "version": "3.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/php-fig/log.git",
"reference": "79dff0b268932c640297f5208d6298f71855c03e" "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"reference": "79dff0b268932c640297f5208d6298f71855c03e", "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4800,9 +4800,9 @@
"psr-3" "psr-3"
], ],
"support": { "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", "name": "sebastian/cli-parser",
@ -6222,20 +6222,20 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.30.0", "version": "v1.31.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540" "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540", "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.2"
}, },
"provide": { "provide": {
"ext-ctype": "*" "ext-ctype": "*"
@ -6281,7 +6281,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
}, },
"funding": [ "funding": [
{ {
@ -6297,24 +6297,24 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-09-09T11:45:10+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.30.0", "version": "v1.31.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.2"
}, },
"suggest": { "suggest": {
"ext-intl": "For best performance" "ext-intl": "For best performance"
@ -6359,7 +6359,7 @@
"shim" "shim"
], ],
"support": { "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": [ "funding": [
{ {
@ -6375,24 +6375,24 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T15:07:36+00:00" "time": "2024-09-09T11:45:10+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.30.0", "version": "v1.31.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" "reference": "3833d7255cc303546435cb650316bff708a1c75c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.2"
}, },
"suggest": { "suggest": {
"ext-intl": "For best performance" "ext-intl": "For best performance"
@ -6440,7 +6440,7 @@
"shim" "shim"
], ],
"support": { "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": [ "funding": [
{ {
@ -6456,7 +6456,83 @@
"type": "tidelift" "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", "name": "symfony/process",
@ -6790,30 +6866,37 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v3.8.0", "version": "v3.14.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=8.0.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8", "symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3", "symfony/polyfill-mbstring": "^1.3",
"symfony/polyfill-php80": "^1.22" "symfony/polyfill-php81": "^1.29"
}, },
"require-dev": { "require-dev": {
"psr/container": "^1.0|^2.0", "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", "type": "library",
"autoload": { "autoload": {
"files": [
"src/Resources/core.php",
"src/Resources/debug.php",
"src/Resources/escaper.php",
"src/Resources/string_loader.php"
],
"psr-4": { "psr-4": {
"Twig\\": "src/" "Twig\\": "src/"
} }
@ -6846,7 +6929,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/twigphp/Twig/issues", "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": [ "funding": [
{ {
@ -6858,7 +6941,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-11-21T18:54:41+00:00" "time": "2024-09-09T17:55:12+00:00"
}, },
{ {
"name": "webmozart/glob", "name": "webmozart/glob",

View file

@ -46,6 +46,18 @@ class UsageProject extends Model
'default' => 0, 'default' => 0,
'example' => 0, 'example' => 0,
]) ])
->addRule('buildsStorageTotal', [
'type' => self::TYPE_INTEGER,
'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,
])
->addRule('bucketsTotal', [ ->addRule('bucketsTotal', [
'type' => self::TYPE_INTEGER, 'type' => self::TYPE_INTEGER,
'description' => 'Total aggregated number of buckets.', 'description' => 'Total aggregated number of buckets.',

View file

@ -143,7 +143,7 @@ class UsageTest extends Scope
); );
$this->assertEquals(200, $response['headers']['status-code']); $this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals(18, count($response['body'])); $this->assertEquals(20, count($response['body']));
$this->validateDates($response['body']['network']); $this->validateDates($response['body']['network']);
$this->validateDates($response['body']['requests']); $this->validateDates($response['body']['requests']);
$this->validateDates($response['body']['users']); $this->validateDates($response['body']['users']);
@ -324,7 +324,7 @@ class UsageTest extends Scope
] ]
); );
$this->assertEquals(18, count($response['body'])); $this->assertEquals(20, count($response['body']));
$this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals(1, count($response['body']['requests']));
$this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']);
$this->validateDates($response['body']['requests']); $this->validateDates($response['body']['requests']);
@ -545,7 +545,7 @@ class UsageTest extends Scope
] ]
); );
$this->assertEquals(18, count($response['body'])); $this->assertEquals(20, count($response['body']));
$this->assertEquals(1, count($response['body']['requests'])); $this->assertEquals(1, count($response['body']['requests']));
$this->assertEquals(1, count($response['body']['network'])); $this->assertEquals(1, count($response['body']['network']));
$this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']); $this->assertEquals($requestsTotal, $response['body']['requests'][array_key_last($response['body']['requests'])]['value']);