diff --git a/.travis.yml b/.travis.yml index af63bd603..3381c3ecb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ -dist: xenial +dist: focal arch: - amd64 - - arm64 + - arm64-graviton2 os: linux @@ -30,7 +30,7 @@ before_install: - echo "_APP_FUNCTIONS_RUNTIMES=php-8.0" >> .env install: -- docker-compose up -d +- docker-compose up -d --build - sleep 10 script: @@ -41,6 +41,9 @@ script: - docker-compose exec appwrite vars - docker-compose exec appwrite test --debug +after_failure: +- docker-compose logs appwrite + deploy: - provider: script edge: true diff --git a/Dockerfile b/Dockerfile index d15dbf508..5b2224323 100755 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,8 @@ ARG DEBUG=false ENV DEBUG=$DEBUG ENV PHP_REDIS_VERSION=5.3.4 \ - PHP_SWOOLE_VERSION=v4.6.7 \ - PHP_IMAGICK_VERSION=3.5.0 \ + PHP_SWOOLE_VERSION=v4.7.0 \ + PHP_IMAGICK_VERSION=3.5.1 \ PHP_YAML_VERSION=2.2.1 \ PHP_MAXMINDDB_VERSION=v1.10.1 diff --git a/app/controllers/general.php b/app/controllers/general.php index 708e24985..0af6d92fd 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -316,7 +316,7 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project) { if($route) { Console::error('[Error] Method: '.$route->getMethod()); - Console::error('[Error] URL: '.$route->getURL()); + Console::error('[Error] URL: '.$route->getPath()); } Console::error('[Error] Type: '.get_class($error)); diff --git a/app/controllers/mock.php b/app/controllers/mock.php index 2cad650f5..d4076547e 100644 --- a/app/controllers/mock.php +++ b/app/controllers/mock.php @@ -518,7 +518,7 @@ App::shutdown(function($utopia, $response, $request) { throw new Exception('Failed to read results', 500); } - $result[$route->getMethod() . ':' . $route->getURL()] = true; + $result[$route->getMethod() . ':' . $route->getPath()] = true; $tests = \array_merge($tests, $result); @@ -526,5 +526,5 @@ App::shutdown(function($utopia, $response, $request) { throw new Exception('Failed to save resutls', 500); } - $response->dynamic(new Document(['result' => $route->getMethod() . ':' . $route->getURL() . ':passed']), Response::MODEL_MOCK); + $response->dynamic(new Document(['result' => $route->getMethod() . ':' . $route->getPath() . ':passed']), Response::MODEL_MOCK); }, ['utopia', 'response', 'request'], 'mock'); \ No newline at end of file diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 4ebe7f32a..0df72d057 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -40,7 +40,7 @@ App::init(function ($utopia, $request, $response, $project, $user, $register, $e ->setParam('{userId}', $user->getId()) ->setParam('{userAgent}', $request->getUserAgent('')) ->setParam('{ip}', $request->getIP()) - ->setParam('{url}', $request->getHostname().$route->getURL()) + ->setParam('{url}', $request->getHostname().$route->getPath()) ; //TODO make sure we get array here diff --git a/app/init.php b/app/init.php index 0dd043bba..fcea4cb15 100644 --- a/app/init.php +++ b/app/init.php @@ -166,7 +166,6 @@ $register->set('dbPool', function () { // Register DB connection $dbPass = App::getEnv('_APP_DB_PASS', ''); $dbScheme = App::getEnv('_APP_DB_SCHEMA', ''); - $pool = new PDOPool((new PDOConfig()) ->withHost($dbHost) ->withPort($dbPort) @@ -174,6 +173,9 @@ $register->set('dbPool', function () { // Register DB connection ->withCharset('utf8mb4') ->withUsername($dbUser) ->withPassword($dbPass) + ->withOptions([ + PDO::ATTR_ERRMODE => App::isDevelopment() ? PDO::ERRMODE_WARNING : PDO::ERRMODE_SILENT, // If in production mode, warnings are not displayed + ]) , 16); return $pool; diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml index c110fcd4e..64df401e0 100644 --- a/app/views/install/compose.phtml +++ b/app/views/install/compose.phtml @@ -9,7 +9,7 @@ $image = $this->getParam('image', ''); services: traefik: - image: traefik:2.3 + image: traefik:2.5 container_name: appwrite-traefik command: - --providers.file.directory=/storage/config @@ -342,7 +342,7 @@ services: - MYSQL_DATABASE=${_APP_DB_SCHEMA} - MYSQL_USER=${_APP_DB_USER} - MYSQL_PASSWORD=${_APP_DB_PASS} - command: 'mysqld --innodb-flush-method=fsync --wait_timeout=86400' + command: 'mysqld --innodb-flush-method=fsync' redis: image: redis:6.0-alpine3.12 diff --git a/composer.json b/composer.json index fe173521c..9c1807312 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ "appwrite/php-clamav": "1.1.*", "appwrite/php-runtimes": "0.4.*", - "utopia-php/framework": "0.17.*", + "utopia-php/framework": "0.18.*", "utopia-php/abuse": "0.5.*", "utopia-php/analytics": "0.2.*", "utopia-php/audit": "0.5.*", diff --git a/composer.lock b/composer.lock index 9db0fcb30..e0858de93 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "63a89a825697892a52aa27d6819b5972", + "content-hash": "45963af754680568d89330a4f37c40d1", "packages": [ { "name": "adhocore/jwt", @@ -1756,16 +1756,16 @@ }, { "name": "utopia-php/framework", - "version": "0.17.2", + "version": "0.18.0", "source": { "type": "git", "url": "https://github.com/utopia-php/framework.git", - "reference": "3cd5fa2a9e30040277861f4254c5ccd1b1600952" + "reference": "f577522a5eb8009967b893fb7ad4ee70d3f7c0db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/framework/zipball/3cd5fa2a9e30040277861f4254c5ccd1b1600952", - "reference": "3cd5fa2a9e30040277861f4254c5ccd1b1600952", + "url": "https://api.github.com/repos/utopia-php/framework/zipball/f577522a5eb8009967b893fb7ad4ee70d3f7c0db", + "reference": "f577522a5eb8009967b893fb7ad4ee70d3f7c0db", "shasum": "" }, "require": { @@ -1799,9 +1799,9 @@ ], "support": { "issues": "https://github.com/utopia-php/framework/issues", - "source": "https://github.com/utopia-php/framework/tree/0.17.2" + "source": "https://github.com/utopia-php/framework/tree/0.18.0" }, - "time": "2021-08-02T10:18:26+00:00" + "time": "2021-08-19T04:58:47+00:00" }, { "name": "utopia-php/image", @@ -4882,7 +4882,6 @@ "type": "github" } ], - "abandoned": true, "time": "2020-09-28T06:45:17+00:00" }, { diff --git a/docker-compose.yml b/docker-compose.yml index 31f673c2a..eef722688 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ version: '3' services: traefik: - image: traefik:2.3 + image: traefik:2.5 container_name: appwrite-traefik command: - --log.level=DEBUG @@ -397,7 +397,7 @@ services: - MYSQL_DATABASE=${_APP_DB_SCHEMA} - MYSQL_USER=${_APP_DB_USER} - MYSQL_PASSWORD=${_APP_DB_PASS} - command: 'mysqld --innodb-flush-method=fsync --wait_timeout=86400' # add ' --query_cache_size=0' for DB tests + command: 'mysqld --innodb-flush-method=fsync' # add ' --query_cache_size=0' for DB tests # command: mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bu && mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bu # smtp: diff --git a/src/Appwrite/Specification/Format/OpenAPI3.php b/src/Appwrite/Specification/Format/OpenAPI3.php index b14134cdf..d01a7da72 100644 --- a/src/Appwrite/Specification/Format/OpenAPI3.php +++ b/src/Appwrite/Specification/Format/OpenAPI3.php @@ -91,7 +91,7 @@ class OpenAPI3 extends Format $usedModels = []; foreach ($this->routes as $route) { /** @var \Utopia\Route $route */ - $url = \str_replace('/v1', '', $route->getURL()); + $url = \str_replace('/v1', '', $route->getPath()); $scope = $route->getLabel('scope', ''); $hide = $route->getLabel('sdk.hide', false); $consumes = [$route->getLabel('sdk.request.type', 'application/json')]; diff --git a/src/Appwrite/Specification/Format/Swagger2.php b/src/Appwrite/Specification/Format/Swagger2.php index 9809220f8..dfb6bdc98 100644 --- a/src/Appwrite/Specification/Format/Swagger2.php +++ b/src/Appwrite/Specification/Format/Swagger2.php @@ -89,7 +89,7 @@ class Swagger2 extends Format $usedModels = []; foreach ($this->routes as $route) { /** @var \Utopia\Route $route */ - $url = \str_replace('/v1', '', $route->getURL()); + $url = \str_replace('/v1', '', $route->getPath()); $scope = $route->getLabel('scope', ''); $hide = $route->getLabel('sdk.hide', false); $consumes = [$route->getLabel('sdk.request.type', 'application/json')];