diff --git a/.env b/.env index 06e4ed1292..2025324a7f 100644 --- a/.env +++ b/.env @@ -29,8 +29,8 @@ _APP_CONNECTIONS_MAX=3100 _APP_POOL_CLIENTS=14 _APP_CONNECTIONS_DB_PROJECT=db_fra1_02=mariadb://user:password@mariadb:3306/appwrite _APP_CONNECTIONS_DB_CONSOLE=db_fra1_01=mariadb://user:password@mariadb:3306/appwrite -_APP_CONNECTIONS_DB_PROJECT_CERTIFICATES=db_fra1_02=-----BEGIN CERTIFICATE-----\nMIIEQTCCAqmgAwIBAgIURLv3ulsp2+M52lmYqz9joeanyEswDQYJKoZIhvcNAQEM\nBQAwOjE4MDYGA1UEAwwvYWEwODliNjgtZDBjMi00OTgwLTk5MWUtZDRlYzI4MjJi\nMDUwIFByb2plY3QgQ0EwHhcNMjEwMjA1MDkyNDQ5WhcNMzEwMjAzMDkyNDQ5WjA6\nMTgwNgYDVQQDDC9hYTA4OWI2OC1kMGMyLTQ5ODAtOTkxZS1kNGVjMjgyMmIwNTAg\nUHJvamVjdCBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKHvxo6i\nD3q/BhcB1YCO4OtoYi5E1e91BZwoisyFywqjXmt2tH8lh8loXUt2hxQIltwIKmsi\nsQK+cZmkucm1xFzLMu/KDkLpaxWGZI1DoG6GphovTdl3FhFCfsD3FOjoLdzHWwgu\nuKSCkPKuXT0iN/jTMFrNr2ndeAUaryf97NZWC+y0LsnEhqTWmzBgh9IfEQM2tMSW\nyhyTuxRn3rhxetPsGoeHzCD9Qqey9bqu+TD9qlIqzlCglx/4WsHMqRJmiFP7SW5R\nAVgzdKH9H7R9yzM3gG2R8Ttmj0HtDS89eUG0QBH22rgjiBIz6yRsMR11zli193Wo\nHKfHY55QzGgWY0nMmkPH81EFaeyMJNLnIDDi8CuZ55GRDj2LJ5nMn5ocl9kHMLEU\nLGOE+A/xR3Bv597n8SCBWI87CWi5jtefeU2Bv4QTptBi3936h3M5/TaIgQVlTsZf\ngyaPehbhP/6emOmaX7aEPSWi3NYwY46wPgk+KsPpBbRMMLNllZKKx4j5bwIDAQAB\noz8wPTAdBgNVHQ4EFgQUqPJC5FJ2OPoiQdpHSW54RkLbKTMwDwYDVR0TBAgwBgEB\n/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEMBQADggGBAFlw+lqcmkqEN4qL\nKpWA9CtOlJ57fn+ei0W+GksH6CZHkVtXEYVB+AD5ZOFqQnR9rdIcAX6ghxgGUZ+J\nDi0LZl8xgw0C+7waHKAjy4DKIlm/T4N8eHJ1XORu8accUcanbmJUjvBGKufJM0IZ\nsg/O6U8fJPuNKlyKQnrkQEx3byCi71moYA3DzhMZjaE5Q4fKQ9KCJ9KCM/0vHLJt\n+rd4edbUm27jMc6LjrWKfsEWtaPPO47bZanj6eFHdF6cgbRWEEOQ6mqAal+8mX+f\nlj7FjQ3d/OIM2YgdDUVjTmLMQq8RwOzDFnZ3HHP0SLKZ/JH5RQJbGscnbquSPSIX\nvq4Uj2/NcawUTGolhgVmiGp/vQPIYdAggKzC7ioPCrl87WXmdCJ+yhYtw6RQqRR+\nHHVgdbZcOBvJksaTDMFYXQfHRN/sCkkpn0aK28oAJHOV4YV0LjbaqSsLDo/u6UbX\nPsVJrBGx9tnui04XcAKPkNBBqnrzDBEyZ9C04sG4s4aWWhk9LQ==\n-----END CERTIFICATE----- -_APP_CONNECTIONS_DB_CONSOLE_CERTIFICATES=db_fra1_01=-----BEGIN CERTIFICATE-----\nMIIEQTCCAqmgAwIBAgIURLv3ulsp2+M52lmYqz9joeanyEswDQYJKoZIhvcNAQEM\nBQAwOjE4MDYGA1UEAwwvYWEwODliNjgtZDBjMi00OTgwLTk5MWUtZDRlYzI4MjJi\nMDUwIFByb2plY3QgQ0EwHhcNMjEwMjA1MDkyNDQ5WhcNMzEwMjAzMDkyNDQ5WjA6\nMTgwNgYDVQQDDC9hYTA4OWI2OC1kMGMyLTQ5ODAtOTkxZS1kNGVjMjgyMmIwNTAg\nUHJvamVjdCBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKHvxo6i\nD3q/BhcB1YCO4OtoYi5E1e91BZwoisyFywqjXmt2tH8lh8loXUt2hxQIltwIKmsi\nsQK+cZmkucm1xFzLMu/KDkLpaxWGZI1DoG6GphovTdl3FhFCfsD3FOjoLdzHWwgu\nuKSCkPKuXT0iN/jTMFrNr2ndeAUaryf97NZWC+y0LsnEhqTWmzBgh9IfEQM2tMSW\nyhyTuxRn3rhxetPsGoeHzCD9Qqey9bqu+TD9qlIqzlCglx/4WsHMqRJmiFP7SW5R\nAVgzdKH9H7R9yzM3gG2R8Ttmj0HtDS89eUG0QBH22rgjiBIz6yRsMR11zli193Wo\nHKfHY55QzGgWY0nMmkPH81EFaeyMJNLnIDDi8CuZ55GRDj2LJ5nMn5ocl9kHMLEU\nLGOE+A/xR3Bv597n8SCBWI87CWi5jtefeU2Bv4QTptBi3936h3M5/TaIgQVlTsZf\ngyaPehbhP/6emOmaX7aEPSWi3NYwY46wPgk+KsPpBbRMMLNllZKKx4j5bwIDAQAB\noz8wPTAdBgNVHQ4EFgQUqPJC5FJ2OPoiQdpHSW54RkLbKTMwDwYDVR0TBAgwBgEB\n/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEMBQADggGBAFlw+lqcmkqEN4qL\nKpWA9CtOlJ57fn+ei0W+GksH6CZHkVtXEYVB+AD5ZOFqQnR9rdIcAX6ghxgGUZ+J\nDi0LZl8xgw0C+7waHKAjy4DKIlm/T4N8eHJ1XORu8accUcanbmJUjvBGKufJM0IZ\nsg/O6U8fJPuNKlyKQnrkQEx3byCi71moYA3DzhMZjaE5Q4fKQ9KCJ9KCM/0vHLJt\n+rd4edbUm27jMc6LjrWKfsEWtaPPO47bZanj6eFHdF6cgbRWEEOQ6mqAal+8mX+f\nlj7FjQ3d/OIM2YgdDUVjTmLMQq8RwOzDFnZ3HHP0SLKZ/JH5RQJbGscnbquSPSIX\nvq4Uj2/NcawUTGolhgVmiGp/vQPIYdAggKzC7ioPCrl87WXmdCJ+yhYtw6RQqRR+\nHHVgdbZcOBvJksaTDMFYXQfHRN/sCkkpn0aK28oAJHOV4YV0LjbaqSsLDo/u6UbX\nPsVJrBGx9tnui04XcAKPkNBBqnrzDBEyZ9C04sG4s4aWWhk9LQ==\n-----END CERTIFICATE----- +_APP_CONNECTIONS_DB_PROJECT_CERTIFICATES=db_fra1_02=X +_APP_CONNECTIONS_DB_CONSOLE_CERTIFICATES=db_fra1_01=Y _APP_CONNECTIONS_CACHE=redis_fra1_01=redis://redis:6379 _APP_CONNECTIONS_QUEUE=redis_fra1_01=redis://redis:6379 _APP_CONNECTIONS_PUBSUB=redis_fra1_01=redis://redis:6379 diff --git a/app/init.php b/app/init.php index 9472a32455..ae58df6bc8 100644 --- a/app/init.php +++ b/app/init.php @@ -518,19 +518,17 @@ $register->set('pools', function () { 'user' => App::getEnv('_APP_REDIS_USER', ''), 'pass' => App::getEnv('_APP_REDIS_PASS', ''), ]); - + $connections = [ 'console' => [ 'type' => 'database', 'dsns' => App::getEnv('_APP_CONNECTIONS_DB_CONSOLE', $fallbackForDB), - 'certificates' => App::getEnv('_APP_CONNECTIONS_DB_CONSOLE_CERTIFICATES', $fallbackForDB), 'multiple' => false, 'schemes' => ['mariadb', 'mysql'], ], 'database' => [ 'type' => 'database', 'dsns' => App::getEnv('_APP_CONNECTIONS_DB_PROJECT', $fallbackForDB), - 'certificates' => App::getEnv('_APP_CONNECTIONS_DB_PROJECT_CERTIFICATES', $fallbackForDB), 'multiple' => true, 'schemes' => ['mariadb', 'mysql'], ], @@ -574,30 +572,13 @@ $register->set('pools', function () { foreach ($connections as $key => $connection) { $type = $connection['type'] ?? ''; $dsns = $connection['dsns'] ?? ''; - $certificates = $connection['certificates'] ?? ''; $multipe = $connection['multiple'] ?? false; $schemes = $connection['schemes'] ?? []; $config = []; - $dsns = explode(',', $dsns); - - $certificatesMap = []; - foreach (explode(',', $certificates) as $certificate) { - if(empty($certificate)) { - continue; - } - - $certificate = explode('=', $certificate, 2); - - if(\count($certificate) < 2) { - continue; - } - - $certificatesMap[$certificate[0]] = $certificate[1]; - } + $dsns = explode(',', $connection['dsns'] ?? ''); foreach ($dsns as &$dsn) { - $dsn = explode('=', $dsn, 2); - $certificate = $certificatesMap[$dsn[0]] ?? null; + $dsn = explode('=', $dsn); $name = ($multipe) ? $key . '_' . $dsn[0] : $key; $dsn = $dsn[1] ?? ''; $config[] = $name; @@ -630,25 +611,16 @@ $register->set('pools', function () { switch ($dsnScheme) { case 'mysql': case 'mariadb': - $resource = function () use ($dsnHost, $dsnPort, $dsnUser, $dsnPass, $dsnDatabase, $certificate) { - return new PDOProxy(function () use ($dsnHost, $dsnPort, $dsnUser, $dsnPass, $dsnDatabase, $certificate) { - $config = array( + $resource = function () use ($dsnHost, $dsnPort, $dsnUser, $dsnPass, $dsnDatabase) { + return new PDOProxy(function () use ($dsnHost, $dsnPort, $dsnUser, $dsnPass, $dsnDatabase) { + return new PDO("mysql:host={$dsnHost};port={$dsnPort};dbname={$dsnDatabase};charset=utf8mb4", $dsnUser, $dsnPass, array( PDO::ATTR_TIMEOUT => 3, // Seconds PDO::ATTR_PERSISTENT => true, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => App::isDevelopment() ? PDO::ERRMODE_WARNING : PDO::ERRMODE_SILENT, // If in production mode, warnings are not displayed PDO::ATTR_EMULATE_PREPARES => true, PDO::ATTR_STRINGIFY_FETCHES => true - ); - - if(!empty($certificate)) { - $config[PDO::MYSQL_ATTR_SSL_CA] = ''; - } - - $pdo = new PDO("mysql:host={$dsnHost};port={$dsnPort};dbname={$dsnDatabase};charset=utf8mb4", $dsnUser, $dsnPass, $config); - var_dump($pdo->query("SHOW STATUS LIKE 'Ssl_cipher';")->fetchAll()); - var_dump($pdo->query("SELECT 1+6;")->fetchAll()); - return $pdo; + )); }); }; break; @@ -1213,4 +1185,4 @@ App::setResource('servers', function () { }, $server['languages']); return $languages; -}); +}); \ No newline at end of file diff --git a/composer.lock b/composer.lock index d86ee62b7f..16a81cdade 100644 --- a/composer.lock +++ b/composer.lock @@ -1069,21 +1069,21 @@ }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -1103,7 +1103,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -1115,27 +1115,27 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client/tree/1.0.2" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2023-04-10T20:12:12+00:00" }, { "name": "psr/http-factory", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { "php": ">=7.0.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -1155,7 +1155,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for PSR-7 HTTP message factories", @@ -1170,31 +1170,31 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" }, - "time": "2019-04-30T12:38:16+00:00" + "time": "2023-04-10T20:10:41+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -1223,9 +1223,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/1.1" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", @@ -3448,16 +3448,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5" + "reference": "dfc078e8af9c99210337325ff5aa152872c98714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5", - "reference": "1534aea9bde19a5c85c5d1e1f834ab63f4c5dcf5", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", + "reference": "dfc078e8af9c99210337325ff5aa152872c98714", "shasum": "" }, "require": { @@ -3500,9 +3500,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" }, - "time": "2023-03-12T10:13:29+00:00" + "time": "2023-03-27T19:02:04+00:00" }, { "name": "phpspec/prophecy", @@ -3574,16 +3574,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.16.1", + "version": "1.18.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571" + "reference": "22dcdfd725ddf99583bfe398fc624ad6c5004a0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/e27e92d939e2e3636f0a1f0afaba59692c0bf571", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/22dcdfd725ddf99583bfe398fc624ad6c5004a0f", + "reference": "22dcdfd725ddf99583bfe398fc624ad6c5004a0f", "shasum": "" }, "require": { @@ -3613,9 +3613,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.16.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.18.1" }, - "time": "2023-02-07T18:11:17+00:00" + "time": "2023-04-07T11:51:11+00:00" }, { "name": "phpunit/php-code-coverage", diff --git a/db-ca.crt b/db-ca.crt deleted file mode 100644 index e69de29bb2..0000000000