From 5ef675bcdd96aeb828dad2080e2102075a5069a3 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 13 Jan 2026 13:38:32 +0530 Subject: [PATCH 01/13] release cli sdk 13.0.0 rc5 --- app/config/sdks.php | 2 +- docs/sdks/cli/CHANGELOG.md | 17 +++++++++++++++++ src/Appwrite/Platform/Tasks/SDKs.php | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/config/sdks.php b/app/config/sdks.php index 9b5d17176f..b9d091f24d 100644 --- a/app/config/sdks.php +++ b/app/config/sdks.php @@ -227,7 +227,7 @@ return [ [ 'key' => 'cli', 'name' => 'Command Line', - 'version' => '12.0.1', + 'version' => '13.0.0-rc.5', 'url' => 'https://github.com/appwrite/sdk-for-cli', 'package' => 'https://www.npmjs.com/package/appwrite-cli', 'enabled' => true, diff --git a/docs/sdks/cli/CHANGELOG.md b/docs/sdks/cli/CHANGELOG.md index 9f1f02bbd0..81dac8a668 100644 --- a/docs/sdks/cli/CHANGELOG.md +++ b/docs/sdks/cli/CHANGELOG.md @@ -1,5 +1,22 @@ # Change Log +## 13.0.0-rc.4 + +- Fix CLI ES module import issues + +## 13.0.0-rc.3 + +- Add `Schema` class for programmatically pushing and pulling appwrite config +- Add client side db generation using `schema.db.generate()` command + +## 13.0.0-rc.2 + +- Fixes a lot of typescript errors throughout the codebase + +## 13.0.0-rc.1 + +- Migrates codebase from JavaScript to TypeScript + ## 12.0.1 Fix type generation for `point`, `lineString` and `polygon` columns diff --git a/src/Appwrite/Platform/Tasks/SDKs.php b/src/Appwrite/Platform/Tasks/SDKs.php index c3a67d7fbb..8a3eef2d34 100644 --- a/src/Appwrite/Platform/Tasks/SDKs.php +++ b/src/Appwrite/Platform/Tasks/SDKs.php @@ -399,7 +399,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ->setDefaultHeaders([ 'X-Appwrite-Response-Format' => '1.8.0', ]) - ->setExclude($language['exclude'] ?? []); + ->setExclude($language['exclude'] ?? []) + ->setTest(false); // Make sure we have a clean slate. // Otherwise, all files in this dir will be pushed, From 81e64afe7a79b3b11509f4c66098940dcc305d10 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Tue, 13 Jan 2026 13:38:44 +0530 Subject: [PATCH 02/13] changelog --- docs/sdks/cli/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/sdks/cli/CHANGELOG.md b/docs/sdks/cli/CHANGELOG.md index 81dac8a668..b55c6e5934 100644 --- a/docs/sdks/cli/CHANGELOG.md +++ b/docs/sdks/cli/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 13.0.0-rc.5 + +- Fix push all command not working correctly + ## 13.0.0-rc.4 - Fix CLI ES module import issues From 955e1bcbe97ee2301f2259f306fe6604a3d44284 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 14 Jan 2026 21:29:58 +0530 Subject: [PATCH 03/13] use stable --- app/config/sdks.php | 2 +- composer.lock | 94 +++++++++++++++++++------------------- docs/sdks/cli/CHANGELOG.md | 8 ++++ 3 files changed, 56 insertions(+), 48 deletions(-) diff --git a/app/config/sdks.php b/app/config/sdks.php index b9d091f24d..15a9c42127 100644 --- a/app/config/sdks.php +++ b/app/config/sdks.php @@ -227,7 +227,7 @@ return [ [ 'key' => 'cli', 'name' => 'Command Line', - 'version' => '13.0.0-rc.5', + 'version' => '13.0.0', 'url' => 'https://github.com/appwrite/sdk-for-cli', 'package' => 'https://www.npmjs.com/package/appwrite-cli', 'enabled' => true, diff --git a/composer.lock b/composer.lock index 8b68b2a1ba..e75065278e 100644 --- a/composer.lock +++ b/composer.lock @@ -3552,23 +3552,23 @@ }, { "name": "utopia-php/audit", - "version": "2.0.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/utopia-php/audit.git", - "reference": "27d66630f528473cb563bbcf362d7d9a711b384e" + "reference": "1301ab2607667b9f86456f86895f3e26f8c0c9a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/audit/zipball/27d66630f528473cb563bbcf362d7d9a711b384e", - "reference": "27d66630f528473cb563bbcf362d7d9a711b384e", + "url": "https://api.github.com/repos/utopia-php/audit/zipball/1301ab2607667b9f86456f86895f3e26f8c0c9a7", + "reference": "1301ab2607667b9f86456f86895f3e26f8c0c9a7", "shasum": "" }, "require": { "php": ">=8.0", "utopia-php/database": "4.*", "utopia-php/fetch": "0.5.*", - "utopia-php/validators": "0.1.*" + "utopia-php/validators": "0.2.*" }, "require-dev": { "laravel/pint": "1.*", @@ -3595,9 +3595,9 @@ ], "support": { "issues": "https://github.com/utopia-php/audit/issues", - "source": "https://github.com/utopia-php/audit/tree/2.0.2" + "source": "https://github.com/utopia-php/audit/tree/2.0.4" }, - "time": "2026-01-07T07:01:25+00:00" + "time": "2026-01-14T07:22:46+00:00" }, { "name": "utopia-php/auth", @@ -3898,16 +3898,16 @@ }, { "name": "utopia-php/database", - "version": "4.4.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "783193d5cdc723b3784e8fb399068b17d4228d53" + "reference": "7b935bb09aeae8aeff5a28f6f2485cef1cc4d898" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/783193d5cdc723b3784e8fb399068b17d4228d53", - "reference": "783193d5cdc723b3784e8fb399068b17d4228d53", + "url": "https://api.github.com/repos/utopia-php/database/zipball/7b935bb09aeae8aeff5a28f6f2485cef1cc4d898", + "reference": "7b935bb09aeae8aeff5a28f6f2485cef1cc4d898", "shasum": "" }, "require": { @@ -3950,9 +3950,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/4.4.0" + "source": "https://github.com/utopia-php/database/tree/4.5.1" }, - "time": "2026-01-08T04:54:39+00:00" + "time": "2026-01-14T12:07:24+00:00" }, { "name": "utopia-php/detector", @@ -4266,23 +4266,23 @@ }, { "name": "utopia-php/framework", - "version": "0.33.36", + "version": "0.33.37", "source": { "type": "git", "url": "https://github.com/utopia-php/http.git", - "reference": "fd835ed77e1cdf327067ce4e650cce86304e7098" + "reference": "30a119d76531d89da9240496940c84fcd9e1758b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/http/zipball/fd835ed77e1cdf327067ce4e650cce86304e7098", - "reference": "fd835ed77e1cdf327067ce4e650cce86304e7098", + "url": "https://api.github.com/repos/utopia-php/http/zipball/30a119d76531d89da9240496940c84fcd9e1758b", + "reference": "30a119d76531d89da9240496940c84fcd9e1758b", "shasum": "" }, "require": { "php": ">=8.3", "utopia-php/compression": "0.1.*", "utopia-php/telemetry": "0.1.*", - "utopia-php/validators": "0.1.*" + "utopia-php/validators": "0.2.*" }, "require-dev": { "laravel/pint": "1.*", @@ -4308,9 +4308,9 @@ ], "support": { "issues": "https://github.com/utopia-php/http/issues", - "source": "https://github.com/utopia-php/http/tree/0.33.36" + "source": "https://github.com/utopia-php/http/tree/0.33.37" }, - "time": "2026-01-12T07:32:29+00:00" + "time": "2026-01-13T10:10:21+00:00" }, { "name": "utopia-php/image", @@ -4515,16 +4515,16 @@ }, { "name": "utopia-php/migration", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "4cb7a0e65a36058d153ef5643090414c6525e4a2" + "reference": "52ca4234d8229b68e27e052248734a08784d9d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/4cb7a0e65a36058d153ef5643090414c6525e4a2", - "reference": "4cb7a0e65a36058d153ef5643090414c6525e4a2", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/52ca4234d8229b68e27e052248734a08784d9d3d", + "reference": "52ca4234d8229b68e27e052248734a08784d9d3d", "shasum": "" }, "require": { @@ -4564,9 +4564,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/1.4.2" + "source": "https://github.com/utopia-php/migration/tree/1.4.3" }, - "time": "2026-01-08T04:46:18+00:00" + "time": "2026-01-13T09:51:08+00:00" }, { "name": "utopia-php/mongo", @@ -5013,22 +5013,22 @@ }, { "name": "utopia-php/swoole", - "version": "0.8.6", + "version": "0.8.4", "source": { "type": "git", "url": "https://github.com/utopia-php/swoole.git", - "reference": "14b00277c35a258cb263706fd4e05c50368feb4f" + "reference": "150c30700e738c52348cce9ed0e0f0ff96872081" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/swoole/zipball/14b00277c35a258cb263706fd4e05c50368feb4f", - "reference": "14b00277c35a258cb263706fd4e05c50368feb4f", + "url": "https://api.github.com/repos/utopia-php/swoole/zipball/150c30700e738c52348cce9ed0e0f0ff96872081", + "reference": "150c30700e738c52348cce9ed0e0f0ff96872081", "shasum": "" }, "require": { "ext-swoole": "*", "php": ">=8.0", - "utopia-php/framework": "0.33.36" + "utopia-php/framework": "0.33.*" }, "require-dev": { "laravel/pint": "1.2.*", @@ -5058,9 +5058,9 @@ ], "support": { "issues": "https://github.com/utopia-php/swoole/issues", - "source": "https://github.com/utopia-php/swoole/tree/0.8.6" + "source": "https://github.com/utopia-php/swoole/tree/0.8.4" }, - "time": "2026-01-12T07:57:35+00:00" + "time": "2025-09-07T09:39:46+00:00" }, { "name": "utopia-php/system", @@ -5170,16 +5170,16 @@ }, { "name": "utopia-php/validators", - "version": "0.1.0", + "version": "0.2.0", "source": { "type": "git", "url": "https://github.com/utopia-php/validators.git", - "reference": "5c57d5b6cf964f8981807c1d3ea8df620c869080" + "reference": "30b6030a5b100fc1dff34506e5053759594b2a20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/validators/zipball/5c57d5b6cf964f8981807c1d3ea8df620c869080", - "reference": "5c57d5b6cf964f8981807c1d3ea8df620c869080", + "url": "https://api.github.com/repos/utopia-php/validators/zipball/30b6030a5b100fc1dff34506e5053759594b2a20", + "reference": "30b6030a5b100fc1dff34506e5053759594b2a20", "shasum": "" }, "require": { @@ -5187,7 +5187,7 @@ }, "require-dev": { "laravel/pint": "1.*", - "phpstan/phpstan": "1.*", + "phpstan/phpstan": "2.*", "phpunit/phpunit": "11.*" }, "type": "library", @@ -5209,9 +5209,9 @@ ], "support": { "issues": "https://github.com/utopia-php/validators/issues", - "source": "https://github.com/utopia-php/validators/tree/0.1.0" + "source": "https://github.com/utopia-php/validators/tree/0.2.0" }, - "time": "2025-11-18T11:05:46+00:00" + "time": "2026-01-13T09:16:51+00:00" }, { "name": "utopia-php/vcs", @@ -5438,16 +5438,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.8.11", + "version": "1.8.15", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "936404bbcbf4cd692bac102f2912b6c97ac87215" + "reference": "a43e8ba5d539e48f0717df284dbd5dc1fb659d6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/936404bbcbf4cd692bac102f2912b6c97ac87215", - "reference": "936404bbcbf4cd692bac102f2912b6c97ac87215", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/a43e8ba5d539e48f0717df284dbd5dc1fb659d6b", + "reference": "a43e8ba5d539e48f0717df284dbd5dc1fb659d6b", "shasum": "" }, "require": { @@ -5483,9 +5483,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/1.8.11" + "source": "https://github.com/appwrite/sdk-generator/tree/1.8.15" }, - "time": "2026-01-12T08:41:56+00:00" + "time": "2026-01-14T10:42:32+00:00" }, { "name": "doctrine/annotations", @@ -8968,5 +8968,5 @@ "platform-overrides": { "php": "8.3" }, - "plugin-api-version": "2.9.0" + "plugin-api-version": "2.6.0" } diff --git a/docs/sdks/cli/CHANGELOG.md b/docs/sdks/cli/CHANGELOG.md index b55c6e5934..b8dfc56dc5 100644 --- a/docs/sdks/cli/CHANGELOG.md +++ b/docs/sdks/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 13.0.0 + +- Mark release as stable +- Feat: add pull sync on destruction of remote resources (+ confirmation) +- Fix: refine zod schema to check string size +- Validate using zod schema during push cli command +- Maintain order of keys in local config + ## 13.0.0-rc.5 - Fix push all command not working correctly From 71ac9c726449301a5edb377e350e42474a428da4 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 14 Jan 2026 21:37:00 +0530 Subject: [PATCH 04/13] use stable --- composer.lock | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/composer.lock b/composer.lock index 1aba9840eb..11b00ab631 100644 --- a/composer.lock +++ b/composer.lock @@ -3569,7 +3569,7 @@ "php": ">=8.0", "utopia-php/database": "3.*", "utopia-php/fetch": "0.5.*", - "utopia-php/validators": "0.2.*" + "utopia-php/validators": "0.1.*" }, "require-dev": { "laravel/pint": "1.*", @@ -4267,23 +4267,23 @@ }, { "name": "utopia-php/framework", - "version": "0.33.37", + "version": "0.33.36", "source": { "type": "git", "url": "https://github.com/utopia-php/http.git", - "reference": "30a119d76531d89da9240496940c84fcd9e1758b" + "reference": "fd835ed77e1cdf327067ce4e650cce86304e7098" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/http/zipball/30a119d76531d89da9240496940c84fcd9e1758b", - "reference": "30a119d76531d89da9240496940c84fcd9e1758b", + "url": "https://api.github.com/repos/utopia-php/http/zipball/fd835ed77e1cdf327067ce4e650cce86304e7098", + "reference": "fd835ed77e1cdf327067ce4e650cce86304e7098", "shasum": "" }, "require": { "php": ">=8.3", "utopia-php/compression": "0.1.*", "utopia-php/telemetry": "0.1.*", - "utopia-php/validators": "0.2.*" + "utopia-php/validators": "0.1.*" }, "require-dev": { "laravel/pint": "1.*", @@ -4309,9 +4309,9 @@ ], "support": { "issues": "https://github.com/utopia-php/http/issues", - "source": "https://github.com/utopia-php/http/tree/0.33.37" + "source": "https://github.com/utopia-php/http/tree/0.33.36" }, - "time": "2026-01-13T10:10:21+00:00" + "time": "2026-01-12T07:32:29+00:00" }, { "name": "utopia-php/image", @@ -5057,22 +5057,22 @@ }, { "name": "utopia-php/swoole", - "version": "0.8.4", + "version": "0.8.6", "source": { "type": "git", "url": "https://github.com/utopia-php/swoole.git", - "reference": "150c30700e738c52348cce9ed0e0f0ff96872081" + "reference": "14b00277c35a258cb263706fd4e05c50368feb4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/swoole/zipball/150c30700e738c52348cce9ed0e0f0ff96872081", - "reference": "150c30700e738c52348cce9ed0e0f0ff96872081", + "url": "https://api.github.com/repos/utopia-php/swoole/zipball/14b00277c35a258cb263706fd4e05c50368feb4f", + "reference": "14b00277c35a258cb263706fd4e05c50368feb4f", "shasum": "" }, "require": { "ext-swoole": "*", "php": ">=8.0", - "utopia-php/framework": "0.33.*" + "utopia-php/framework": "0.33.36" }, "require-dev": { "laravel/pint": "1.2.*", @@ -5102,9 +5102,9 @@ ], "support": { "issues": "https://github.com/utopia-php/swoole/issues", - "source": "https://github.com/utopia-php/swoole/tree/0.8.4" + "source": "https://github.com/utopia-php/swoole/tree/0.8.6" }, - "time": "2025-09-07T09:39:46+00:00" + "time": "2026-01-12T07:57:35+00:00" }, { "name": "utopia-php/system", @@ -5214,16 +5214,16 @@ }, { "name": "utopia-php/validators", - "version": "0.2.0", + "version": "0.1.0", "source": { "type": "git", "url": "https://github.com/utopia-php/validators.git", - "reference": "30b6030a5b100fc1dff34506e5053759594b2a20" + "reference": "5c57d5b6cf964f8981807c1d3ea8df620c869080" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/validators/zipball/30b6030a5b100fc1dff34506e5053759594b2a20", - "reference": "30b6030a5b100fc1dff34506e5053759594b2a20", + "url": "https://api.github.com/repos/utopia-php/validators/zipball/5c57d5b6cf964f8981807c1d3ea8df620c869080", + "reference": "5c57d5b6cf964f8981807c1d3ea8df620c869080", "shasum": "" }, "require": { @@ -5231,7 +5231,7 @@ }, "require-dev": { "laravel/pint": "1.*", - "phpstan/phpstan": "2.*", + "phpstan/phpstan": "1.*", "phpunit/phpunit": "11.*" }, "type": "library", @@ -5253,9 +5253,9 @@ ], "support": { "issues": "https://github.com/utopia-php/validators/issues", - "source": "https://github.com/utopia-php/validators/tree/0.2.0" + "source": "https://github.com/utopia-php/validators/tree/0.1.0" }, - "time": "2026-01-13T09:16:51+00:00" + "time": "2025-11-18T11:05:46+00:00" }, { "name": "utopia-php/vcs", @@ -9014,5 +9014,5 @@ "platform-overrides": { "php": "8.3" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } From c083e1ce741d7200dc51d24d4184cbdb63cae783 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 16:31:37 +1300 Subject: [PATCH 05/13] Throw AppwriteException so handler can unwrap --- src/Appwrite/Platform/Workers/Functions.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Platform/Workers/Functions.php b/src/Appwrite/Platform/Workers/Functions.php index d047d0925e..fbf996319c 100644 --- a/src/Appwrite/Platform/Workers/Functions.php +++ b/src/Appwrite/Platform/Workers/Functions.php @@ -9,6 +9,7 @@ use Appwrite\Event\Realtime; use Appwrite\Event\StatsUsage; use Appwrite\Event\Webhook; use Appwrite\Utopia\Response\Model\Execution; +use Appwrite\Extend\Exception as AppwriteException; use Exception; use Executor\Executor; use Utopia\CLI\Console; @@ -661,7 +662,11 @@ class Functions extends Action ->trigger(); if (!empty($error)) { - throw new Exception($error, $errorCode); + throw new AppwriteException( + AppwriteException::GENERAL_SERVER_ERROR, + $error ?: 'Function execution failed with no error message', + $errorCode + ); } } } From 7ab3debb10c74e2898c79fdcfb4808f2fabf82ab Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 16:37:09 +1300 Subject: [PATCH 06/13] Format --- src/Appwrite/Platform/Workers/Functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Platform/Workers/Functions.php b/src/Appwrite/Platform/Workers/Functions.php index fbf996319c..e053efa021 100644 --- a/src/Appwrite/Platform/Workers/Functions.php +++ b/src/Appwrite/Platform/Workers/Functions.php @@ -8,8 +8,8 @@ use Appwrite\Event\Func; use Appwrite\Event\Realtime; use Appwrite\Event\StatsUsage; use Appwrite\Event\Webhook; -use Appwrite\Utopia\Response\Model\Execution; use Appwrite\Extend\Exception as AppwriteException; +use Appwrite\Utopia\Response\Model\Execution; use Exception; use Executor\Executor; use Utopia\CLI\Console; From 7b940e3a177f991c8076491c0e4081244d48c40b Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 16:47:19 +1300 Subject: [PATCH 07/13] Increase + parameterise ppolmax reconnect + sleep --- app/init/registers.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/init/registers.php b/app/init/registers.php index 1b58c85aa4..9799c56914 100644 --- a/app/init/registers.php +++ b/app/init/registers.php @@ -324,6 +324,12 @@ $register->set('pools', function () { Config::setParam('pools-' . $key, $config); } + $reconnectAttempts = (int) System::getEnv('_APP_CONNECTIONS_RECONNECT_ATTEMPTS', 5); + $reconnectSleep = (int) System::getEnv('_APP_CONNECTIONS_RECONNECT_SLEEP', 2); + + $group->setReconnectAttempts($reconnectAttempts); + $group->setReconnectSleep($reconnectSleep); + return $group; }); From 728ed57df0ca5f1869d438930d1906c0fb388b7d Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 18:43:28 +1300 Subject: [PATCH 08/13] Fix database initialization after utopia-php/database 4.5.2 update The 4.5.2 update removed the automatic USE database statement on init, requiring explicit setDatabase() calls on all database resources. Co-Authored-By: Claude Opus 4.5 --- app/cli.php | 2 ++ app/init/constants.php | 3 +++ app/init/resources.php | 2 ++ app/realtime.php | 1 + app/worker.php | 2 ++ 5 files changed, 10 insertions(+) diff --git a/app/cli.php b/app/cli.php index 7493d10ab3..bca0c75442 100644 --- a/app/cli.php +++ b/app/cli.php @@ -78,6 +78,7 @@ CLI::setResource('dbForPlatform', function ($pools, $cache, $authorization) { $dbForPlatform = new Database($adapter, $cache); $dbForPlatform + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setNamespace('_console') ->setMetadata('host', \gethostname()) @@ -189,6 +190,7 @@ CLI::setResource('getLogsDB', function (Group $pools, Cache $cache, Authorizatio $database = new Database($adapter, $cache); $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setSharedTables(true) ->setNamespace('logsV1') diff --git a/app/init/constants.php b/app/init/constants.php index 0c95c4543b..d51cb6b7af 100644 --- a/app/init/constants.php +++ b/app/init/constants.php @@ -161,6 +161,9 @@ const ACTIVITY_TYPE_GUEST = 'guest'; const MFA_RECENT_DURATION = 1800; // 30 mins +// Database name +const APP_DATABASE = 'appwrite'; + // Database Reconnect const DATABASE_RECONNECT_SLEEP = 2; const DATABASE_RECONNECT_MAX_ATTEMPTS = 10; diff --git a/app/init/resources.php b/app/init/resources.php index 371609da97..afe419f509 100644 --- a/app/init/resources.php +++ b/app/init/resources.php @@ -563,6 +563,7 @@ App::setResource('dbForPlatform', function (Group $pools, Cache $cache, Authoriz $database = new Database($adapter, $cache); $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setNamespace('_console') ->setMetadata('host', \gethostname()) @@ -643,6 +644,7 @@ App::setResource('getLogsDB', function (Group $pools, Cache $cache, Authorizatio $database = new Database($adapter, $cache); $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setSharedTables(true) ->setNamespace('logsV1') diff --git a/app/realtime.php b/app/realtime.php index 31e6015d92..c041683668 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -66,6 +66,7 @@ if (!function_exists('getConsoleDB')) { $adapter = new DatabasePool($pools->get('console')); $database = new Database($adapter, getCache()); $database + ->setDatabase(APP_DATABASE) ->setNamespace('_console') ->setMetadata('host', \gethostname()) ->setMetadata('project', '_console'); diff --git a/app/worker.php b/app/worker.php index d31e63fc8b..5f9d7d88ae 100644 --- a/app/worker.php +++ b/app/worker.php @@ -65,6 +65,7 @@ Server::setResource('dbForPlatform', function (Cache $cache, Registry $register, $dbForPlatform = new Database($adapter, $cache); $dbForPlatform + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setNamespace('_console') ->setDocumentType('users', User::class) @@ -198,6 +199,7 @@ Server::setResource('getLogsDB', function (Group $pools, Cache $cache, Authoriza $database = new Database($adapter, $cache); $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setSharedTables(true) ->setNamespace('logsV1') From a0e4e89621549ee592f970b639a2c7b35f3b401e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 18:45:18 +1300 Subject: [PATCH 09/13] Update lock --- composer.lock | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/composer.lock b/composer.lock index 6fead373dd..c06922f434 100644 --- a/composer.lock +++ b/composer.lock @@ -3455,24 +3455,25 @@ }, { "name": "utopia-php/abuse", - "version": "1.0.2", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/utopia-php/abuse.git", - "reference": "611fa66a97e87c0dbbc133a717d970da7a5ca828" + "reference": "15cd5dbefa4453e8a2d90649a7078e242966ac3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/abuse/zipball/611fa66a97e87c0dbbc133a717d970da7a5ca828", - "reference": "611fa66a97e87c0dbbc133a717d970da7a5ca828", + "url": "https://api.github.com/repos/utopia-php/abuse/zipball/15cd5dbefa4453e8a2d90649a7078e242966ac3f", + "reference": "15cd5dbefa4453e8a2d90649a7078e242966ac3f", "shasum": "" }, "require": { + "appwrite/appwrite": "19.*", "ext-curl": "*", "ext-pdo": "*", "ext-redis": "*", "php": ">=8.0", - "utopia-php/database": "*" + "utopia-php/database": "4.*" }, "require-dev": { "laravel/pint": "1.*", @@ -3500,9 +3501,9 @@ ], "support": { "issues": "https://github.com/utopia-php/abuse/issues", - "source": "https://github.com/utopia-php/abuse/tree/1.0.2" + "source": "https://github.com/utopia-php/abuse/tree/1.2.1" }, - "time": "2025-10-20T07:18:33+00:00" + "time": "2026-01-15T02:09:49+00:00" }, { "name": "utopia-php/analytics", @@ -3898,16 +3899,16 @@ }, { "name": "utopia-php/database", - "version": "4.5.1", + "version": "4.5.2", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "7b935bb09aeae8aeff5a28f6f2485cef1cc4d898" + "reference": "8e6a033d4da09a2f2ac1f79fd85fcfa2da018d23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/7b935bb09aeae8aeff5a28f6f2485cef1cc4d898", - "reference": "7b935bb09aeae8aeff5a28f6f2485cef1cc4d898", + "url": "https://api.github.com/repos/utopia-php/database/zipball/8e6a033d4da09a2f2ac1f79fd85fcfa2da018d23", + "reference": "8e6a033d4da09a2f2ac1f79fd85fcfa2da018d23", "shasum": "" }, "require": { @@ -3950,9 +3951,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/4.5.1" + "source": "https://github.com/utopia-php/database/tree/4.5.2" }, - "time": "2026-01-14T12:07:24+00:00" + "time": "2026-01-15T04:23:30+00:00" }, { "name": "utopia-php/detector", From b1171c661ea7fe98a21ca1b1613797a0471b532a Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 15 Jan 2026 19:08:25 +1300 Subject: [PATCH 10/13] Add setDatabase() to all project database instances This completes the fix for utopia-php/database 4.5.2 which removed the automatic USE database statement. All Database instances that create or query project databases now have explicit setDatabase() calls. Co-Authored-By: Claude Opus 4.5 --- app/cli.php | 1 + app/controllers/api/projects.php | 1 + app/init/resources.php | 2 ++ app/realtime.php | 1 + app/worker.php | 2 ++ 5 files changed, 7 insertions(+) diff --git a/app/cli.php b/app/cli.php index bca0c75442..4b85ba35c6 100644 --- a/app/cli.php +++ b/app/cli.php @@ -169,6 +169,7 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform } $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setMetadata('host', \gethostname()) ->setMetadata('project', $project->getId()); diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 74f734a856..b0493ff38f 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -227,6 +227,7 @@ App::post('/v1/projects') if (!$sharedTablesV2) { $adapter = new DatabasePool($pools->get($dsn->getHost())); $dbForProject = new Database($adapter, $cache); + $dbForProject->setDatabase(APP_DATABASE); if ($sharedTables) { $dbForProject diff --git a/app/init/resources.php b/app/init/resources.php index afe419f509..a9d46a17be 100644 --- a/app/init/resources.php +++ b/app/init/resources.php @@ -533,6 +533,7 @@ App::setResource('dbForProject', function (Group $pools, Database $dbForPlatform $database = new Database($adapter, $cache); $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setMetadata('host', \gethostname()) ->setMetadata('project', $project->getId()) @@ -593,6 +594,7 @@ App::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform $configure = (function (Database $database) use ($project, $dsn, $authorization) { $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setMetadata('host', \gethostname()) ->setMetadata('project', $project->getId()) diff --git a/app/realtime.php b/app/realtime.php index c041683668..fcc5329982 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -123,6 +123,7 @@ if (!function_exists('getProjectDB')) { } $database + ->setDatabase(APP_DATABASE) ->setMetadata('host', \gethostname()) ->setMetadata('project', $project->getId()); diff --git a/app/worker.php b/app/worker.php index 5f9d7d88ae..ba8bf98568 100644 --- a/app/worker.php +++ b/app/worker.php @@ -119,6 +119,7 @@ Server::setResource('dbForProject', function (Cache $cache, Registry $register, } $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setTimeout(APP_DATABASE_TIMEOUT_MILLISECONDS_WORKER); @@ -180,6 +181,7 @@ Server::setResource('getProjectDB', function (Group $pools, Database $dbForPlatf } $database + ->setDatabase(APP_DATABASE) ->setAuthorization($authorization) ->setTimeout(APP_DATABASE_TIMEOUT_MILLISECONDS_WORKER); From 75696a21bf3699c1b7e2ae5336ef7a0a4c37ee26 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 15 Jan 2026 11:56:19 +0530 Subject: [PATCH 11/13] update: remove excluded keys from descriptions. --- src/Appwrite/SDK/Specification/Format.php | 200 ++++-------------- .../SDK/Specification/Format/OpenAPI3.php | 8 + .../SDK/Specification/Format/Swagger2.php | 8 + 3 files changed, 52 insertions(+), 164 deletions(-) diff --git a/src/Appwrite/SDK/Specification/Format.php b/src/Appwrite/SDK/Specification/Format.php index ed77e568f4..7cb03c8e1b 100644 --- a/src/Appwrite/SDK/Specification/Format.php +++ b/src/Appwrite/SDK/Specification/Format.php @@ -666,171 +666,16 @@ abstract class Format public function getResponseEnumName(string $model, string $param): ?string { - switch ($model) { - case 'attributeString': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeInteger': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeFloat': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeBoolean': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeEmail': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeEnum': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeIp': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeUrl': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeDatetime': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeRelationship': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributePoint': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributeLine': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'attributePolygon': - switch ($param) { - case 'status': - return 'AttributeStatus'; - } - break; - case 'columnString': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnInteger': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnFloat': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnBoolean': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnEmail': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnEnum': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnIp': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnUrl': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnDatetime': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnRelationship': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnPoint': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnLine': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'columnPolygon': - switch ($param) { - case 'status': - return 'ColumnStatus'; - } - break; - case 'healthStatus': - switch ($param) { - case 'status': - return 'HealthCheckStatus'; - } - break; + if ($param !== 'status') { + return null; } - return null; + + return match (true) { + $model === 'healthStatus' => 'HealthCheckStatus', + str_starts_with($model, 'attribute') => 'AttributeStatus', + str_starts_with($model, 'column') => 'ColumnStatus', + default => null, + }; } protected function getNestedModels(Model $model, array &$usedModels): void @@ -852,4 +697,31 @@ abstract class Format } } } + + protected function parseDescription(string $description, array $excludedValues): string + { + if (empty($excludedValues)) { + return $description; + } + + foreach ($excludedValues as $excludedValue) { + // remove from comma-separated list + $description = preg_replace( + '/,\s*' . preg_quote($excludedValue, '/') . '(?=\s*[,.]|$)/', + '', + $description + ); + $description = preg_replace( + '/(?<=:\s|,\s)' . preg_quote($excludedValue, '/') . '\s*,\s*/', + '', + $description + ); + } + + // clean up double commas and extra spaces + $description = preg_replace('/,\s*,/', ',', $description); + $description = preg_replace('/\s+/', ' ', $description); + + return trim($description); + } } diff --git a/src/Appwrite/SDK/Specification/Format/OpenAPI3.php b/src/Appwrite/SDK/Specification/Format/OpenAPI3.php index 27dcf92923..8171a45db4 100644 --- a/src/Appwrite/SDK/Specification/Format/OpenAPI3.php +++ b/src/Appwrite/SDK/Specification/Format/OpenAPI3.php @@ -623,6 +623,10 @@ class OpenAPI3 extends Format $node['schema']['items']['enum'] = $enumValues; $node['schema']['items']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name); $node['schema']['items']['x-enum-keys'] = $enumKeys; + + if (!empty($excludeKeys)) { + $node['description'] = $this->parseDescription($node['description'], $excludeKeys); + } } if ($validator->getType() === 'integer') { $node['schema']['items']['format'] = $validator->getFormat() ?? 'int32'; @@ -673,6 +677,10 @@ class OpenAPI3 extends Format $node['schema']['enum'] = $enumValues; $node['schema']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name); $node['schema']['x-enum-keys'] = $enumKeys; + + if (!empty($excludeKeys)) { + $node['description'] = $this->parseDescription($node['description'], $excludeKeys); + } } if ($validator->getType() === 'integer') { $node['schema']['format'] = $validator->getFormat() ?? 'int32'; diff --git a/src/Appwrite/SDK/Specification/Format/Swagger2.php b/src/Appwrite/SDK/Specification/Format/Swagger2.php index de25a57ccc..990c456851 100644 --- a/src/Appwrite/SDK/Specification/Format/Swagger2.php +++ b/src/Appwrite/SDK/Specification/Format/Swagger2.php @@ -607,6 +607,10 @@ class Swagger2 extends Format $node['items']['enum'] = $enumValues; $node['items']['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name); $node['items']['x-enum-keys'] = $enumKeys; + + if (!empty($excludeKeys)) { + $node['description'] = $this->parseDescription($node['description'], $excludeKeys); + } } if ($validator->getType() === 'integer') { $node['items']['format'] = $validator->getFormat() ?? 'int32'; @@ -651,6 +655,10 @@ class Swagger2 extends Format $node['enum'] = $enumValues; $node['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name); $node['x-enum-keys'] = $enumKeys; + + if (!empty($excludeKeys)) { + $node['description'] = $this->parseDescription($node['description'], $excludeKeys); + } } if ($validator->getType() === 'integer') { $node['format'] = $validator->getFormat() ?? 'int32'; From 206bd63620685792d2f858354e45595eef8a5e21 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 15 Jan 2026 12:04:46 +0530 Subject: [PATCH 12/13] regen: specs. --- app/config/specs/open-api3-latest-client.json | 18 ++++++++++++++++-- app/config/specs/open-api3-latest-console.json | 18 ++++++++++++++++-- app/config/specs/open-api3-latest-server.json | 18 ++++++++++++++++-- app/config/specs/swagger2-latest-client.json | 18 ++++++++++++++++-- app/config/specs/swagger2-latest-console.json | 18 ++++++++++++++++-- app/config/specs/swagger2-latest-server.json | 18 ++++++++++++++++-- 6 files changed, 96 insertions(+), 12 deletions(-) diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index 942e83c234..6aef25072a 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -13454,6 +13454,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -13467,7 +13477,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -13482,7 +13494,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "team": { diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index f7cbca76a5..96c074b8ee 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -55191,6 +55191,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -55204,7 +55214,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -55219,7 +55231,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "bucket": { diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index 76e3a2a45c..d86aa78f99 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -43244,6 +43244,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -43257,7 +43267,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -43272,7 +43284,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "bucket": { diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index 1d02df124a..0df8d6f382 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -13393,6 +13393,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -13406,7 +13416,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -13421,7 +13433,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "team": { diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 17064287be..3f2b3d4447 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -55019,6 +55019,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -55032,7 +55042,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -55047,7 +55059,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "bucket": { diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 6ad3eb4bce..2a452b8658 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -43169,6 +43169,16 @@ "description": "Total number of chunks uploaded", "x-example": 17890, "format": "int32" + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "x-example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "x-example": "gzip" } }, "required": [ @@ -43182,7 +43192,9 @@ "mimeType", "sizeOriginal", "chunksTotal", - "chunksUploaded" + "chunksUploaded", + "encryption", + "compression" ], "example": { "$id": "5e5ea5c16897e", @@ -43197,7 +43209,9 @@ "mimeType": "image\/png", "sizeOriginal": 17890, "chunksTotal": 17890, - "chunksUploaded": 17890 + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" } }, "bucket": { From eb07e992250db7dd173b59df29e619c32d61c25c Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 15 Jan 2026 13:48:50 +0530 Subject: [PATCH 13/13] bump: sdk-gen. --- composer.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.lock b/composer.lock index c06922f434..8b60305dff 100644 --- a/composer.lock +++ b/composer.lock @@ -5482,16 +5482,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.8.15", + "version": "1.8.16", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "a43e8ba5d539e48f0717df284dbd5dc1fb659d6b" + "reference": "e2963002b39f3aa24bd6bf61a78492e182397174" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/a43e8ba5d539e48f0717df284dbd5dc1fb659d6b", - "reference": "a43e8ba5d539e48f0717df284dbd5dc1fb659d6b", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/e2963002b39f3aa24bd6bf61a78492e182397174", + "reference": "e2963002b39f3aa24bd6bf61a78492e182397174", "shasum": "" }, "require": { @@ -5527,9 +5527,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/1.8.15" + "source": "https://github.com/appwrite/sdk-generator/tree/1.8.16" }, - "time": "2026-01-14T10:42:32+00:00" + "time": "2026-01-15T08:16:15+00:00" }, { "name": "doctrine/annotations", @@ -9012,5 +9012,5 @@ "platform-overrides": { "php": "8.3" }, - "plugin-api-version": "2.9.0" + "plugin-api-version": "2.6.0" }