From f06af411badfb757aa05cc8a18626519c65aa585 Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 16:48:05 +0530 Subject: [PATCH 1/9] Add 'type' attribute to database creation and update tests --- app/config/collections/projects.php | 9 ++++++ .../Databases/Http/Databases/Create.php | 4 ++- .../Utopia/Response/Model/Database.php | 6 ++++ .../Databases/Grids/DatabasesBase.php | 28 +++++++++++++++++++ .../Databases/Legacy/DatabasesBase.php | 28 +++++++++++++++++++ 5 files changed, 74 insertions(+), 1 deletion(-) diff --git a/app/config/collections/projects.php b/app/config/collections/projects.php index ac14421382..3c840094ec 100644 --- a/app/config/collections/projects.php +++ b/app/config/collections/projects.php @@ -51,6 +51,15 @@ return [ 'default' => null, 'array' => false, ], + [ + '$id' => ID::custom('type'), + 'type' => Database::VAR_STRING, + 'size' => 128, + 'required' => true, + 'signed' => true, + 'array' => false, + 'filters' => [], + ], ], 'indexes' => [ [ diff --git a/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php b/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php index 9b52b482bb..487b1fb420 100644 --- a/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php +++ b/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php @@ -80,13 +80,14 @@ class Create extends Action ->param('databaseId', '', new CustomId(), 'Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('name', '', new Text(128), 'Database name. Max length: 128 chars.') ->param('enabled', true, new Boolean(), 'Is the database enabled? When set to \'disabled\', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.', true) + ->param('type', 'mysql', new Text(128), 'Database type.', true) ->inject('response') ->inject('dbForProject') ->inject('queueForEvents') ->callback($this->action(...)); } - public function action(string $databaseId, string $name, bool $enabled, UtopiaResponse $response, Database $dbForProject, Event $queueForEvents): void + public function action(string $databaseId, string $name, bool $enabled, string $type, UtopiaResponse $response, Database $dbForProject, Event $queueForEvents): void { $databaseId = $databaseId == 'unique()' ? ID::unique() : $databaseId; @@ -96,6 +97,7 @@ class Create extends Action 'name' => $name, 'enabled' => $enabled, 'search' => implode(' ', [$databaseId, $name]), + 'type' => $type ])); } catch (DuplicateException) { throw new Exception(Exception::DATABASE_ALREADY_EXISTS); diff --git a/src/Appwrite/Utopia/Response/Model/Database.php b/src/Appwrite/Utopia/Response/Model/Database.php index 90b4ac8cb4..61e435cd9f 100644 --- a/src/Appwrite/Utopia/Response/Model/Database.php +++ b/src/Appwrite/Utopia/Response/Model/Database.php @@ -40,6 +40,12 @@ class Database extends Model 'default' => true, 'example' => false, ]) + ->addRule('type', [ + 'type' => self::TYPE_STRING, + 'description' => 'Database type.', + 'default' => 'mysql', + 'example' => 'mysql', + ]) ; } diff --git a/tests/e2e/Services/Databases/Grids/DatabasesBase.php b/tests/e2e/Services/Databases/Grids/DatabasesBase.php index 77c5a958ac..a6a0e704fb 100644 --- a/tests/e2e/Services/Databases/Grids/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Grids/DatabasesBase.php @@ -32,6 +32,34 @@ trait DatabasesBase $this->assertNotEmpty($database['body']['$id']); $this->assertEquals(201, $database['headers']['status-code']); $this->assertEquals('Test Database', $database['body']['name']); + $this->assertEquals('mysql', $database['body']['type']); + + // testing to create a database with type + $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Test Database with type', + 'type' => 'mongodb' + ]); + + $this->assertNotEmpty($database2['body']['$id']); + $this->assertEquals(201, $database2['headers']['status-code']); + $this->assertEquals('Test Database with type', $database2['body']['name']); + $this->assertEquals('mongodb', $database2['body']['type']); + + // cleanup(for database2) + $databaseId = $database2['body']['$id']; + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + + $this->assertEquals(204, $response['headers']['status-code']); return ['databaseId' => $database['body']['$id']]; } diff --git a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php index 2e263f9699..838948d57e 100644 --- a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php @@ -32,6 +32,34 @@ trait DatabasesBase $this->assertNotEmpty($database['body']['$id']); $this->assertEquals(201, $database['headers']['status-code']); $this->assertEquals('Test Database', $database['body']['name']); + $this->assertEquals('mysql', $database['body']['type']); + + // testing to create a database with type + $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Test Database with type', + 'type' => 'mongodb' + ]); + + $this->assertNotEmpty($database2['body']['$id']); + $this->assertEquals(201, $database2['headers']['status-code']); + $this->assertEquals('Test Database with type', $database2['body']['name']); + $this->assertEquals('mongodb', $database2['body']['type']); + + // cleanup(for database2) + $databaseId = $database2['body']['$id']; + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + + $this->assertEquals(204, $response['headers']['status-code']); return ['databaseId' => $database['body']['$id']]; } From ed05870239e6a3c75cd34cbf31ee433619ed4ac0 Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 18:05:46 +0530 Subject: [PATCH 2/9] updated migration release --- composer.json | 2 +- composer.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/composer.json b/composer.json index 51d3b89ec7..31d41d16d8 100644 --- a/composer.json +++ b/composer.json @@ -62,7 +62,7 @@ "utopia-php/locale": "0.4.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.18.*", - "utopia-php/migration": "0.13.*", + "utopia-php/migration": "0.14.*", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index 72200f7531..7de89e4e02 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": "c4ae112243a897e16552c507c5e94097", + "content-hash": "46c2cbde34a776114f761e7978c077e0", "packages": [ { "name": "adhocore/jwt", @@ -3997,16 +3997,16 @@ }, { "name": "utopia-php/migration", - "version": "0.13.7", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "fc25d50c3a19e701e905c56a9465143cacb02717" + "reference": "f9a7e87413b82975dbd87b7850aec2543aeac7ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/fc25d50c3a19e701e905c56a9465143cacb02717", - "reference": "fc25d50c3a19e701e905c56a9465143cacb02717", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/f9a7e87413b82975dbd87b7850aec2543aeac7ee", + "reference": "f9a7e87413b82975dbd87b7850aec2543aeac7ee", "shasum": "" }, "require": { @@ -4047,9 +4047,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/0.13.7" + "source": "https://github.com/utopia-php/migration/tree/0.14.0" }, - "time": "2025-07-31T15:08:29+00:00" + "time": "2025-08-05T12:33:09+00:00" }, { "name": "utopia-php/orchestration", @@ -4814,16 +4814,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "0.41.27", + "version": "0.41.28", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "083fd2e8163d6a4e59ee971ac6cb97277d831dd5" + "reference": "8eace11070264c62c8da3c69498fb8dc98fcfaf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/083fd2e8163d6a4e59ee971ac6cb97277d831dd5", - "reference": "083fd2e8163d6a4e59ee971ac6cb97277d831dd5", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/8eace11070264c62c8da3c69498fb8dc98fcfaf7", + "reference": "8eace11070264c62c8da3c69498fb8dc98fcfaf7", "shasum": "" }, "require": { @@ -4859,9 +4859,9 @@ "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.41.27" + "source": "https://github.com/appwrite/sdk-generator/tree/0.41.28" }, - "time": "2025-07-31T10:20:46+00:00" + "time": "2025-08-01T11:06:30+00:00" }, { "name": "doctrine/annotations", @@ -5280,16 +5280,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.3", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "faed855a7b5f4d4637717c2b3863e277116beb36" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/faed855a7b5f4d4637717c2b3863e277116beb36", - "reference": "faed855a7b5f4d4637717c2b3863e277116beb36", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -5328,7 +5328,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.3" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -5336,7 +5336,7 @@ "type": "tidelift" } ], - "time": "2025-07-05T12:25:42+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", From 28cf4e1d947c7394f29c561e7d5d782b5836af9f Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 18:07:11 +0530 Subject: [PATCH 3/9] updated the validator of type of database to validator --- .../Modules/Databases/Http/Databases/Create.php | 3 ++- .../e2e/Services/Databases/Grids/DatabasesBase.php | 14 ++++++++++++-- .../Services/Databases/Legacy/DatabasesBase.php | 14 ++++++++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php b/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php index 487b1fb420..e5256deb3b 100644 --- a/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php +++ b/src/Appwrite/Platform/Modules/Databases/Http/Databases/Create.php @@ -23,6 +23,7 @@ use Utopia\Platform\Action; use Utopia\Swoole\Response as SwooleResponse; use Utopia\Validator\Boolean; use Utopia\Validator\Text; +use Utopia\Validator\WhiteList; class Create extends Action { @@ -80,7 +81,7 @@ class Create extends Action ->param('databaseId', '', new CustomId(), 'Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('name', '', new Text(128), 'Database name. Max length: 128 chars.') ->param('enabled', true, new Boolean(), 'Is the database enabled? When set to \'disabled\', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.', true) - ->param('type', 'mysql', new Text(128), 'Database type.', true) + ->param('type', 'sql', new WhiteList(['sql','nosql']), 'Database type.', true) ->inject('response') ->inject('dbForProject') ->inject('queueForEvents') diff --git a/tests/e2e/Services/Databases/Grids/DatabasesBase.php b/tests/e2e/Services/Databases/Grids/DatabasesBase.php index a6a0e704fb..2e0f7bc6ea 100644 --- a/tests/e2e/Services/Databases/Grids/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Grids/DatabasesBase.php @@ -32,7 +32,7 @@ trait DatabasesBase $this->assertNotEmpty($database['body']['$id']); $this->assertEquals(201, $database['headers']['status-code']); $this->assertEquals('Test Database', $database['body']['name']); - $this->assertEquals('mysql', $database['body']['type']); + $this->assertEquals('sql', $database['body']['type']); // testing to create a database with type $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ @@ -44,11 +44,21 @@ trait DatabasesBase 'name' => 'Test Database with type', 'type' => 'mongodb' ]); + $this->assertEquals(400, $database2['headers']['status-code']); + $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Test Database with type', + 'type' => 'nosql' + ]); $this->assertNotEmpty($database2['body']['$id']); $this->assertEquals(201, $database2['headers']['status-code']); $this->assertEquals('Test Database with type', $database2['body']['name']); - $this->assertEquals('mongodb', $database2['body']['type']); + $this->assertEquals('nosql', $database2['body']['type']); // cleanup(for database2) $databaseId = $database2['body']['$id']; diff --git a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php index 838948d57e..72e2d6140f 100644 --- a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php @@ -32,7 +32,7 @@ trait DatabasesBase $this->assertNotEmpty($database['body']['$id']); $this->assertEquals(201, $database['headers']['status-code']); $this->assertEquals('Test Database', $database['body']['name']); - $this->assertEquals('mysql', $database['body']['type']); + $this->assertEquals('sql', $database['body']['type']); // testing to create a database with type $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ @@ -44,11 +44,21 @@ trait DatabasesBase 'name' => 'Test Database with type', 'type' => 'mongodb' ]); + $this->assertEquals(400, $database2['headers']['status-code']); + $database2 = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Test Database with type', + 'type' => 'nosql' + ]); $this->assertNotEmpty($database2['body']['$id']); $this->assertEquals(201, $database2['headers']['status-code']); $this->assertEquals('Test Database with type', $database2['body']['name']); - $this->assertEquals('mongodb', $database2['body']['type']); + $this->assertEquals('nosql', $database2['body']['type']); // cleanup(for database2) $databaseId = $database2['body']['$id']; From 272256438de40c46848ec486de37dc18b615bedd Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 18:10:06 +0530 Subject: [PATCH 4/9] updaetd composer version --- composer.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.lock b/composer.lock index 8ca6a86ff5..db7e4abffa 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": "8dd2ec8206f7c2dc31fef4de39569ae8", + "content-hash": "dc0c77f38bf1b26bdce75c61d5b4eec8", "packages": [ { "name": "adhocore/jwt", @@ -8263,7 +8263,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 0fddbd5caaec5a572edc1467364178eb0776e7d2 Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 18:15:55 +0530 Subject: [PATCH 5/9] updated database response model rules --- src/Appwrite/Utopia/Response/Model/Database.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Appwrite/Utopia/Response/Model/Database.php b/src/Appwrite/Utopia/Response/Model/Database.php index 61e435cd9f..a9ce20da74 100644 --- a/src/Appwrite/Utopia/Response/Model/Database.php +++ b/src/Appwrite/Utopia/Response/Model/Database.php @@ -43,8 +43,8 @@ class Database extends Model ->addRule('type', [ 'type' => self::TYPE_STRING, 'description' => 'Database type.', - 'default' => 'mysql', - 'example' => 'mysql', + 'default' => 'sql', + 'example' => 'sql', ]) ; } From 7d798f5373036c2ff8118ea0b6a0f45929057e5d Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 19:34:19 +0530 Subject: [PATCH 6/9] added migration to self hosted version --- src/Appwrite/Migration/Migration.php | 1 + src/Appwrite/Migration/Version/V23.php | 61 ++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/Appwrite/Migration/Version/V23.php diff --git a/src/Appwrite/Migration/Migration.php b/src/Appwrite/Migration/Migration.php index d47490e604..2d82b9c486 100644 --- a/src/Appwrite/Migration/Migration.php +++ b/src/Appwrite/Migration/Migration.php @@ -89,6 +89,7 @@ abstract class Migration '1.7.2' => 'V22', '1.7.3' => 'V22', '1.7.4' => 'V22', + '1.8.0' => 'V23' ]; /** diff --git a/src/Appwrite/Migration/Version/V23.php b/src/Appwrite/Migration/Version/V23.php new file mode 100644 index 0000000000..d54b6ddc87 --- /dev/null +++ b/src/Appwrite/Migration/Version/V23.php @@ -0,0 +1,61 @@ + null, + fn () => [] + ); + } + + Console::info('Migrating databases'); + $this->migrateDatabases(); + } + + /** + * Migrate Databases. + * + * @return void + * @throws Exception|Throwable + */ + private function migrateDatabases(): void + { + if ($this->project->getId() === 'console') { + return; + } + + // since required + default can't be used together + // so first creating the attribute then bulk updating the attribute + $this->dbForProject->createAttributes('databases', [new Document([ + '$id' => ID::custom('type'), + 'type' => Database::VAR_STRING, + 'size' => 128, + 'required' => true, + 'signed' => true, + 'array' => false, + 'filters' => [], + ])]); + $this->dbForProject->updateDocuments('databases', new Document(['$id' => 'type','type' => 'sql'])); + } + +} From 066c801a4556f2dc8d3b7cd3a66c695856ca1bc8 Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Tue, 5 Aug 2025 21:56:31 +0530 Subject: [PATCH 7/9] removed $id to get updated --- src/Appwrite/Migration/Version/V23.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Migration/Version/V23.php b/src/Appwrite/Migration/Version/V23.php index d54b6ddc87..7d24756c14 100644 --- a/src/Appwrite/Migration/Version/V23.php +++ b/src/Appwrite/Migration/Version/V23.php @@ -55,7 +55,7 @@ class V23 extends Migration 'array' => false, 'filters' => [], ])]); - $this->dbForProject->updateDocuments('databases', new Document(['$id' => 'type','type' => 'sql'])); + $this->dbForProject->updateDocuments('databases', new Document(['type' => 'sql'])); } } From 320171822c07da00fa7baa557c6c06254881ffee Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Wed, 6 Aug 2025 10:56:42 +0530 Subject: [PATCH 8/9] replaced create attribute with a util createAttributeFromCollection method --- src/Appwrite/Migration/Version/V23.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/Appwrite/Migration/Version/V23.php b/src/Appwrite/Migration/Version/V23.php index 7d24756c14..88f6d0451b 100644 --- a/src/Appwrite/Migration/Version/V23.php +++ b/src/Appwrite/Migration/Version/V23.php @@ -2,7 +2,6 @@ namespace Appwrite\Migration\Version; -use Appwrite\ID; use Appwrite\Migration\Migration; use Exception; use Throwable; @@ -46,15 +45,7 @@ class V23 extends Migration // since required + default can't be used together // so first creating the attribute then bulk updating the attribute - $this->dbForProject->createAttributes('databases', [new Document([ - '$id' => ID::custom('type'), - 'type' => Database::VAR_STRING, - 'size' => 128, - 'required' => true, - 'signed' => true, - 'array' => false, - 'filters' => [], - ])]); + $this->createAttributeFromCollection($this->dbForProject, 'databases', 'type'); $this->dbForProject->updateDocuments('databases', new Document(['type' => 'sql'])); } From 02438fda932cc011f0f0bf5fc9fe1174527d9cbc Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Wed, 6 Aug 2025 10:57:45 +0530 Subject: [PATCH 9/9] updated composer --- composer.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.lock b/composer.lock index 26fb8dee71..c8b4ad7ee8 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": "b6ec099ac43f7f5955b3f7d54ef21764", + "content-hash": "ced183858d8fde850249c5c34f6f1b73", "packages": [ { "name": "adhocore/jwt",