From 4cf3d0b87bb40624314defca5ba2050460e97b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 09:12:35 +0200 Subject: [PATCH 1/6] move projects.list() to module --- app/controllers/api/projects.php | 74 ------------ docs/references/projects/list.md | 1 - .../Projects/Http/DevKeys/Projects/XList.php | 110 ++++++++++++++++++ .../Modules/Projects/Services/Http.php | 3 + 4 files changed, 113 insertions(+), 75 deletions(-) delete mode 100644 docs/references/projects/list.md create mode 100644 src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 4f34156115..ea3a00dcb6 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -30,14 +30,11 @@ use Utopia\Database\Database; use Utopia\Database\DateTime; use Utopia\Database\Document; use Utopia\Database\Exception\Duplicate; -use Utopia\Database\Exception\Order as OrderException; -use Utopia\Database\Exception\Query as QueryException; use Utopia\Database\Helpers\ID; use Utopia\Database\Helpers\Permission; use Utopia\Database\Helpers\Role; use Utopia\Database\Query; use Utopia\Database\Validator\Datetime as DatetimeValidator; -use Utopia\Database\Validator\Query\Cursor; use Utopia\Database\Validator\UID; use Utopia\Domains\Validator\PublicDomain; use Utopia\DSN\DSN; @@ -304,77 +301,6 @@ App::post('/v1/projects') ->dynamic($project, Response::MODEL_PROJECT); }); -App::get('/v1/projects') - ->desc('List projects') - ->groups(['api', 'projects']) - ->label('scope', 'projects.read') - ->label('sdk', new Method( - namespace: 'projects', - group: 'projects', - name: 'list', - description: '/docs/references/projects/list.md', - auth: [AuthType::ADMIN], - responses: [ - new SDKResponse( - code: Response::STATUS_CODE_OK, - model: Response::MODEL_PROJECT_LIST, - ) - ] - )) - ->param('queries', [], new Projects(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) - ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->inject('response') - ->inject('dbForPlatform') - ->action(function (array $queries, string $search, Response $response, Database $dbForPlatform) { - - try { - $queries = Query::parseQueries($queries); - } catch (QueryException $e) { - throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage()); - } - - if (!empty($search)) { - $queries[] = Query::search('search', $search); - } - - /** - * Get cursor document if there was a cursor query, we use array_filter and reset for reference $cursor to $queries - */ - $cursor = \array_filter($queries, function ($query) { - return \in_array($query->getMethod(), [Query::TYPE_CURSOR_AFTER, Query::TYPE_CURSOR_BEFORE]); - }); - $cursor = reset($cursor); - if ($cursor) { - /** @var Query $cursor */ - - $validator = new Cursor(); - if (!$validator->isValid($cursor)) { - throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription()); - } - - $projectId = $cursor->getValue(); - $cursorDocument = $dbForPlatform->getDocument('projects', $projectId); - - if ($cursorDocument->isEmpty()) { - throw new Exception(Exception::GENERAL_CURSOR_NOT_FOUND, "Project '{$projectId}' for the 'cursor' value not found."); - } - - $cursor->setValue($cursorDocument); - } - - $filterQueries = Query::groupByType($queries)['filters']; - try { - $projects = $dbForPlatform->find('projects', $queries); - $total = $dbForPlatform->count('projects', $filterQueries, APP_LIMIT_COUNT); - } catch (OrderException $e) { - throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null."); - } - $response->dynamic(new Document([ - 'projects' => $projects, - 'total' => $total, - ]), Response::MODEL_PROJECT_LIST); - }); - App::get('/v1/projects/:projectId') ->desc('Get project') ->groups(['api', 'projects']) diff --git a/docs/references/projects/list.md b/docs/references/projects/list.md deleted file mode 100644 index 576a4b79ae..0000000000 --- a/docs/references/projects/list.md +++ /dev/null @@ -1 +0,0 @@ -Get a list of all projects. You can use the query params to filter your results. \ No newline at end of file diff --git a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php new file mode 100644 index 0000000000..c42b847a19 --- /dev/null +++ b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php @@ -0,0 +1,110 @@ +setHttpMethod(Action::HTTP_REQUEST_METHOD_GET) + ->setHttpPath('/v1/projects') + ->desc('List projects') + ->groups(['api', 'projects']) + ->label('scope', 'projects.read') + ->label('sdk', new Method( + namespace: 'projects', + group: 'projects', + name: 'list', + description: <<param('queries', [], new Projects(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) + ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) + ->inject('response') + ->inject('dbForPlatform') + ->callback($this->action(...)); + } + + public function action(array $queries, string $search, Response $response, Database $dbForPlatform) + { + try { + $queries = Query::parseQueries($queries); + } catch (QueryException $e) { + throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage()); + } + + if (!empty($search)) { + $queries[] = Query::search('search', $search); + } + + /** + * Get cursor document if there was a cursor query, we use array_filter and reset for reference $cursor to $queries + */ + $cursor = \array_filter($queries, function ($query) { + return \in_array($query->getMethod(), [Query::TYPE_CURSOR_AFTER, Query::TYPE_CURSOR_BEFORE]); + }); + $cursor = reset($cursor); + if ($cursor) { + /** @var Query $cursor */ + + $validator = new Cursor(); + if (!$validator->isValid($cursor)) { + throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription()); + } + + $projectId = $cursor->getValue(); + $cursorDocument = $dbForPlatform->getDocument('projects', $projectId); + + if ($cursorDocument->isEmpty()) { + throw new Exception(Exception::GENERAL_CURSOR_NOT_FOUND, "Project '{$projectId}' for the 'cursor' value not found."); + } + + $cursor->setValue($cursorDocument); + } + + $filterQueries = Query::groupByType($queries)['filters']; + try { + $projects = $dbForPlatform->find('projects', $queries); + $total = $dbForPlatform->count('projects', $filterQueries, APP_LIMIT_COUNT); + } catch (Order $e) { + throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null."); + } + $response->dynamic(new Document([ + 'projects' => $projects, + 'total' => $total, + ]), Response::MODEL_PROJECT_LIST); + } +} diff --git a/src/Appwrite/Platform/Modules/Projects/Services/Http.php b/src/Appwrite/Platform/Modules/Projects/Services/Http.php index cec8ed6d16..2a0dd0aa60 100644 --- a/src/Appwrite/Platform/Modules/Projects/Services/Http.php +++ b/src/Appwrite/Platform/Modules/Projects/Services/Http.php @@ -7,6 +7,7 @@ use Appwrite\Platform\Modules\Projects\Http\DevKeys\Delete as DeleteDevKey; use Appwrite\Platform\Modules\Projects\Http\DevKeys\Get as GetDevKey; use Appwrite\Platform\Modules\Projects\Http\DevKeys\Update as UpdateDevKey; use Appwrite\Platform\Modules\Projects\Http\DevKeys\XList as ListDevKeys; +use Appwrite\Platform\Modules\Projects\Http\Projects\XList as ListProjects; use Utopia\Platform\Service; class Http extends Service @@ -19,5 +20,7 @@ class Http extends Service $this->addAction(GetDevKey::getName(), new GetDevKey()); $this->addAction(ListDevKeys::getName(), new ListDevKeys()); $this->addAction(DeleteDevKey::getName(), new DeleteDevKey()); + + $this->addAction(ListProjects::getName(), new ListProjects()); } } From c894b0ab6a12fa6162626cf177ab68aa00cb1f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 09:25:13 +0200 Subject: [PATCH 2/6] Simplify validator override --- .../Modules/Projects/Http/DevKeys/Projects/XList.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php index c42b847a19..9a140cbdf8 100644 --- a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php +++ b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php @@ -17,6 +17,7 @@ use Utopia\Database\Query; use Utopia\Database\Validator\Query\Cursor; use Utopia\Platform\Action; use Utopia\Platform\Scope\HTTP; +use Utopia\Validator; use Utopia\Validator\Text; class XList extends Action @@ -26,9 +27,14 @@ class XList extends Action { return 'listProjects'; } + + // Stored as property intentionally for extensibility + protected Validator $queriesValidator; public function __construct() { + $this->queriesValidator = new Projects(); + $this ->setHttpMethod(Action::HTTP_REQUEST_METHOD_GET) ->setHttpPath('/v1/projects') @@ -51,7 +57,7 @@ class XList extends Action ], contentType: ContentType::JSON )) - ->param('queries', [], new Projects(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) + ->param('queries', [], $this->queriesValidator, 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) ->inject('response') ->inject('dbForPlatform') From cc50302530226c8c586873278320c3ac22dc25f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 09:25:45 +0200 Subject: [PATCH 3/6] Formatting fix --- .../Platform/Modules/Projects/Http/DevKeys/Projects/XList.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php index 9a140cbdf8..f190990e00 100644 --- a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php +++ b/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php @@ -27,14 +27,14 @@ class XList extends Action { return 'listProjects'; } - + // Stored as property intentionally for extensibility protected Validator $queriesValidator; public function __construct() { $this->queriesValidator = new Projects(); - + $this ->setHttpMethod(Action::HTTP_REQUEST_METHOD_GET) ->setHttpPath('/v1/projects') From bf59f1ba7d777bc1ccbc49c09a563186c4264b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 09:30:07 +0200 Subject: [PATCH 4/6] Fix path structure --- .../Modules/Projects/Http/{DevKeys => }/Projects/XList.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Appwrite/Platform/Modules/Projects/Http/{DevKeys => }/Projects/XList.php (100%) diff --git a/src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php b/src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php similarity index 100% rename from src/Appwrite/Platform/Modules/Projects/Http/DevKeys/Projects/XList.php rename to src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php From ca6cf01773b49b9ca16659ccc8b92b5b6de0a849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 5 Sep 2025 10:12:07 +0200 Subject: [PATCH 5/6] Improve customization of queries validator --- .../Platform/Modules/Projects/Http/Projects/XList.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php b/src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php index f190990e00..3d06103e75 100644 --- a/src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php +++ b/src/Appwrite/Platform/Modules/Projects/Http/Projects/XList.php @@ -28,13 +28,13 @@ class XList extends Action return 'listProjects'; } - // Stored as property intentionally for extensibility - protected Validator $queriesValidator; + protected function getQueriesValidator(): Validator + { + return new Projects(); + } public function __construct() { - $this->queriesValidator = new Projects(); - $this ->setHttpMethod(Action::HTTP_REQUEST_METHOD_GET) ->setHttpPath('/v1/projects') @@ -57,7 +57,7 @@ class XList extends Action ], contentType: ContentType::JSON )) - ->param('queries', [], $this->queriesValidator, 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) + ->param('queries', [], $this->getQueriesValidator(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Projects::ALLOWED_ATTRIBUTES), true) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) ->inject('response') ->inject('dbForPlatform') From b1ffdb1c229d40f5cff43585d23e076e35b6dc60 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Fri, 5 Sep 2025 14:29:17 +0530 Subject: [PATCH 6/6] chore: update cli to 9.1.0 --- app/config/platforms.php | 2 +- composer.lock | 66 +++++++++---------- .../databases/create-line-attribute.md | 5 ++ .../databases/create-point-attribute.md | 5 ++ .../databases/create-polygon-attribute.md | 5 ++ .../databases/update-line-attribute.md | 5 ++ .../databases/update-point-attribute.md | 5 ++ .../databases/update-polygon-attribute.md | 5 ++ .../examples/tablesdb/create-line-column.md | 5 ++ .../examples/tablesdb/create-point-column.md | 5 ++ .../tablesdb/create-polygon-column.md | 5 ++ .../examples/tablesdb/update-line-column.md | 5 ++ .../examples/tablesdb/update-point-column.md | 5 ++ .../tablesdb/update-polygon-column.md | 5 ++ 14 files changed, 94 insertions(+), 34 deletions(-) create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/create-line-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/create-point-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/create-polygon-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/update-line-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/update-point-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/databases/update-polygon-attribute.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/create-line-column.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/create-point-column.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/create-polygon-column.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/update-line-column.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/update-point-column.md create mode 100644 docs/examples/1.8.x/console-cli/examples/tablesdb/update-polygon-column.md diff --git a/app/config/platforms.php b/app/config/platforms.php index a67381b596..beed6c0b54 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -226,7 +226,7 @@ return [ [ 'key' => 'cli', 'name' => 'Command Line', - 'version' => '9.0.2', + 'version' => '9.1.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 bd1e62dac2..683bb58e93 100644 --- a/composer.lock +++ b/composer.lock @@ -283,25 +283,25 @@ }, { "name": "brick/math", - "version": "0.13.1", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04" + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.8.8" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -331,7 +331,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.13.1" + "source": "https://github.com/brick/math/tree/0.14.0" }, "funding": [ { @@ -339,7 +339,7 @@ "type": "github" } ], - "time": "2025-03-29T13:50:30+00:00" + "time": "2025-08-29T12:40:03+00:00" }, { "name": "chillerlan/php-qrcode", @@ -1162,16 +1162,16 @@ }, { "name": "open-telemetry/api", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "b3a9286f9c1c8247c83493c5b1fa475cd0cec7f7" + "reference": "7692075f486c14d8cfd37fba98a08a5667f089e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/b3a9286f9c1c8247c83493c5b1fa475cd0cec7f7", - "reference": "b3a9286f9c1c8247c83493c5b1fa475cd0cec7f7", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/7692075f486c14d8cfd37fba98a08a5667f089e5", + "reference": "7692075f486c14d8cfd37fba98a08a5667f089e5", "shasum": "" }, "require": { @@ -1228,7 +1228,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-06-19T23:36:51+00:00" + "time": "2025-08-07T23:07:38+00:00" }, { "name": "open-telemetry/context", @@ -1418,22 +1418,22 @@ }, { "name": "open-telemetry/sdk", - "version": "1.7.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sdk.git", - "reference": "86287cf30fd6549444d7b8f7d8758d92e24086ac" + "reference": "52690d4b37ae4f091af773eef3c238ed2bc0aa06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/86287cf30fd6549444d7b8f7d8758d92e24086ac", - "reference": "86287cf30fd6549444d7b8f7d8758d92e24086ac", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/52690d4b37ae4f091af773eef3c238ed2bc0aa06", + "reference": "52690d4b37ae4f091af773eef3c238ed2bc0aa06", "shasum": "" }, "require": { "ext-json": "*", "nyholm/psr7-server": "^1.1", - "open-telemetry/api": "~1.4.0", + "open-telemetry/api": "^1.4", "open-telemetry/context": "^1.0", "open-telemetry/sem-conv": "^1.0", "php": "^8.1", @@ -1511,7 +1511,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-08-06T03:07:06+00:00" + "time": "2025-09-05T07:17:06+00:00" }, { "name": "open-telemetry/sem-conv", @@ -2379,20 +2379,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -2451,9 +2451,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "spomky-labs/otphp", @@ -5007,16 +5007,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.1.16", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "f8fbc4b1ba0e918825338f50cbdea4d887389c41" + "reference": "db229faf442a64094ebdea7d4b66f48184a7106f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/f8fbc4b1ba0e918825338f50cbdea4d887389c41", - "reference": "f8fbc4b1ba0e918825338f50cbdea4d887389c41", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/db229faf442a64094ebdea7d4b66f48184a7106f", + "reference": "db229faf442a64094ebdea7d4b66f48184a7106f", "shasum": "" }, "require": { @@ -5052,9 +5052,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.1.16" + "source": "https://github.com/appwrite/sdk-generator/tree/1.2.2" }, - "time": "2025-09-03T06:50:04+00:00" + "time": "2025-09-05T08:28:53+00:00" }, { "name": "doctrine/annotations", diff --git a/docs/examples/1.8.x/console-cli/examples/databases/create-line-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/create-line-attribute.md new file mode 100644 index 0000000000..f0d81ede67 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/create-line-attribute.md @@ -0,0 +1,5 @@ +appwrite databases create-line-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/databases/create-point-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/create-point-attribute.md new file mode 100644 index 0000000000..926c7318e0 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/create-point-attribute.md @@ -0,0 +1,5 @@ +appwrite databases create-point-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/databases/create-polygon-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/create-polygon-attribute.md new file mode 100644 index 0000000000..f0a00c744f --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/create-polygon-attribute.md @@ -0,0 +1,5 @@ +appwrite databases create-polygon-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/databases/update-line-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/update-line-attribute.md new file mode 100644 index 0000000000..37059ecef1 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/update-line-attribute.md @@ -0,0 +1,5 @@ +appwrite databases update-line-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/databases/update-point-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/update-point-attribute.md new file mode 100644 index 0000000000..bcc983a432 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/update-point-attribute.md @@ -0,0 +1,5 @@ +appwrite databases update-point-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/databases/update-polygon-attribute.md b/docs/examples/1.8.x/console-cli/examples/databases/update-polygon-attribute.md new file mode 100644 index 0000000000..6e1e1001da --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/databases/update-polygon-attribute.md @@ -0,0 +1,5 @@ +appwrite databases update-polygon-attribute \ + --database-id \ + --collection-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/create-line-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-line-column.md new file mode 100644 index 0000000000..cd6db93ea9 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-line-column.md @@ -0,0 +1,5 @@ +appwrite tables-db create-line-column \ + --database-id \ + --table-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/create-point-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-point-column.md new file mode 100644 index 0000000000..0e7d2320d1 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-point-column.md @@ -0,0 +1,5 @@ +appwrite tables-db create-point-column \ + --database-id \ + --table-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/create-polygon-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-polygon-column.md new file mode 100644 index 0000000000..060323b152 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/create-polygon-column.md @@ -0,0 +1,5 @@ +appwrite tables-db create-polygon-column \ + --database-id \ + --table-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/update-line-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-line-column.md new file mode 100644 index 0000000000..203ebd64db --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-line-column.md @@ -0,0 +1,5 @@ +appwrite tables-db update-line-column \ + --database-id \ + --table-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/update-point-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-point-column.md new file mode 100644 index 0000000000..676a37ef49 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-point-column.md @@ -0,0 +1,5 @@ +appwrite tables-db update-point-column \ + --database-id \ + --table-id \ + --key '' \ + --required false diff --git a/docs/examples/1.8.x/console-cli/examples/tablesdb/update-polygon-column.md b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-polygon-column.md new file mode 100644 index 0000000000..24e1f01f91 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/tablesdb/update-polygon-column.md @@ -0,0 +1,5 @@ +appwrite tables-db update-polygon-column \ + --database-id \ + --table-id \ + --key '' \ + --required false