From c70915306d6cbf6aaca7c9b1e20a7f3a0920b448 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 5 Aug 2025 17:04:31 +1200 Subject: [PATCH 01/43] WIP export --- app/controllers/api/migrations.php | 74 +++++++++++++++++++- src/Appwrite/Platform/Workers/Migrations.php | 7 ++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 85751811ba..51f305d16e 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -306,7 +306,7 @@ App::post('/v1/migrations/nhost') ->dynamic($migration, Response::MODEL_MIGRATION); }); -App::post('/v1/migrations/csv') +App::post('/v1/migrations/csv/imports') ->groups(['api', 'migrations']) ->desc('Import documents from a CSV') ->label('scope', 'migrations.write') @@ -315,8 +315,8 @@ App::post('/v1/migrations/csv') ->label('sdk', new Method( namespace: 'migrations', group: null, - name: 'createCsvMigration', - description: '/docs/references/migrations/migration-csv.md', + name: 'createCsvImportMigration', + description: '/docs/references/migrations/migration-csv-import.md', auth: [AuthType::ADMIN], responses: [ new SDKResponse( @@ -431,6 +431,74 @@ App::post('/v1/migrations/csv') ->dynamic($migration, Response::MODEL_MIGRATION); }); +App::post('/v1/migrations/csv/exports') + ->groups(['api', 'migrations']) + ->desc('Export documents to CSV') + ->label('scope', 'migrations.write') + ->label('event', 'migrations.[migrationId].create') + ->label('audits.event', 'migration.create') + ->label('sdk', new Method( + namespace: 'migrations', + group: null, + name: 'createCsvExportMigration', + description: '/docs/references/migrations/migration-csv-export.md', + auth: [AuthType::ADMIN], + responses: [ + new SDKResponse( + code: Response::STATUS_CODE_ACCEPTED, + model: Response::MODEL_MIGRATION, + ) + ] + )) + ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') + ->param('resourceId', null, new CompoundUID(), 'Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.') + ->inject('response') + ->inject('dbForProject') + ->inject('project') + ->inject('queueForEvents') + ->inject('queueForMigrations') + ->action(function (string $bucketId, string $resourceId, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Migration $queueForMigrations) { + $isAPIKey = Auth::isAppUser(Authorization::getRoles()); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + + $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); + + if ($bucket->isEmpty() || (!$isAPIKey && !$isPrivilegedUser)) { + throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); + } + + $migrationId = ID::unique(); + $resources = Transfer::extractServices([Transfer::GROUP_DATABASES]); + + $migration = $dbForProject->createDocument('migrations', new Document([ + '$id' => $migrationId, + 'status' => 'pending', + 'stage' => 'init', + 'source' => Appwrite::getName(), + 'destination' => CSV::getName(), + 'resources' => $resources, + 'resourceId' => $resourceId, + 'resourceType' => Resource::TYPE_DATABASE, + 'statusCounters' => '{}', + 'resourceData' => '{}', + 'errors' => [], + 'options' => [ + 'bucketId' => $bucketId, + ], + ])); + + $queueForEvents->setParam('migrationId', $migration->getId()); + + $queueForMigrations + ->setMigration($migration) + ->setProject($project) + ->trigger(); + + $response + ->setStatusCode(Response::STATUS_CODE_ACCEPTED) + ->dynamic($migration, Response::MODEL_MIGRATION); + }); + App::get('/v1/migrations') ->groups(['api', 'migrations']) ->desc('List migrations') diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 807cf5ec9d..f878853ed6 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -172,6 +172,13 @@ class Migrations extends Action $this->dbForProject, Config::getParam('collections', [])['databases']['collections'], ), + DestinationCSV::getName() => new DestinationCSV( + $this->project, + $this->dbForProject, + $migration->getAttribute('resourceId'), + $migration->getAttribute('options', []), + $this->deviceForImports + ), default => throw new \Exception('Invalid destination type'), }; } From bf1af094c139f7de04c26d6ea4ecf3f400e63b41 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 6 Aug 2025 00:40:39 +1200 Subject: [PATCH 02/43] Add specific column selection --- app/controllers/api/migrations.php | 17 ++++++++++------- app/init/resources.php | 2 +- app/worker.php | 2 +- composer.lock | 12 ++++++------ src/Appwrite/Platform/Workers/Migrations.php | 18 ++++++++---------- 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 51f305d16e..f6dc56a5eb 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -307,6 +307,7 @@ App::post('/v1/migrations/nhost') }); App::post('/v1/migrations/csv/imports') + ->alias('/v1/migrations/csv') ->groups(['api', 'migrations']) ->desc('Import documents from a CSV') ->label('scope', 'migrations.write') @@ -332,10 +333,10 @@ App::post('/v1/migrations/csv/imports') ->inject('dbForProject') ->inject('project') ->inject('deviceForFiles') - ->inject('deviceForImports') + ->inject('deviceForMigrations') ->inject('queueForEvents') ->inject('queueForMigrations') - ->action(function (string $bucketId, string $fileId, string $resourceId, Response $response, Database $dbForProject, Document $project, Device $deviceForFiles, Device $deviceForImports, Event $queueForEvents, Migration $queueForMigrations) { + ->action(function (string $bucketId, string $fileId, string $resourceId, Response $response, Database $dbForProject, Document $project, Device $deviceForFiles, Device $deviceForMigrations, Event $queueForEvents, Migration $queueForMigrations) { $isAPIKey = Auth::isAppUser(Authorization::getRoles()); $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); @@ -361,7 +362,7 @@ App::post('/v1/migrations/csv/imports') $hasCompression = $compression !== Compression::NONE; $migrationId = ID::unique(); - $newPath = $deviceForImports->getPath($migrationId . '_' . $fileId . '.csv'); + $newPath = $deviceForMigrations->getPath($migrationId . '_' . $fileId . '.csv'); if ($hasEncryption || $hasCompression) { $source = $deviceForFiles->read($path); @@ -391,14 +392,14 @@ App::post('/v1/migrations/csv/imports') } // manual write after decryption and/or decompression - if (! $deviceForImports->write($newPath, $source, 'text/csv')) { + if (! $deviceForMigrations->write($newPath, $source, 'text/csv')) { throw new \Exception("Unable to copy file"); } - } elseif (! $deviceForFiles->transfer($path, $newPath, $deviceForImports)) { + } elseif (! $deviceForFiles->transfer($path, $newPath, $deviceForMigrations)) { throw new \Exception("Unable to copy file"); } - $fileSize = $deviceForImports->getFileSize($newPath); + $fileSize = $deviceForMigrations->getFileSize($newPath); $resources = Transfer::extractServices([Transfer::GROUP_DATABASES]); $migration = $dbForProject->createDocument('migrations', new Document([ @@ -452,12 +453,13 @@ App::post('/v1/migrations/csv/exports') )) ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') ->param('resourceId', null, new CompoundUID(), 'Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.') + ->param('columns', [], new ArrayList(new Text(255)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.') ->inject('response') ->inject('dbForProject') ->inject('project') ->inject('queueForEvents') ->inject('queueForMigrations') - ->action(function (string $bucketId, string $resourceId, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Migration $queueForMigrations) { + ->action(function (string $bucketId, string $resourceId, array $columns, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Migration $queueForMigrations) { $isAPIKey = Auth::isAppUser(Authorization::getRoles()); $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); @@ -484,6 +486,7 @@ App::post('/v1/migrations/csv/exports') 'errors' => [], 'options' => [ 'bucketId' => $bucketId, + 'columns' => $columns, ], ])); diff --git a/app/init/resources.php b/app/init/resources.php index 162eab1973..8b7ec941f8 100644 --- a/app/init/resources.php +++ b/app/init/resources.php @@ -514,7 +514,7 @@ App::setResource('deviceForFiles', function ($project, Telemetry $telemetry) { App::setResource('deviceForSites', function ($project, Telemetry $telemetry) { return new Device\Telemetry($telemetry, getDevice(APP_STORAGE_SITES . '/app-' . $project->getId())); }, ['project', 'telemetry']); -App::setResource('deviceForImports', function ($project, Telemetry $telemetry) { +App::setResource('deviceForMigrations', function ($project, Telemetry $telemetry) { return new Device\Telemetry($telemetry, getDevice(APP_STORAGE_IMPORTS . '/app-' . $project->getId())); }, ['project', 'telemetry']); App::setResource('deviceForFunctions', function ($project, Telemetry $telemetry) { diff --git a/app/worker.php b/app/worker.php index 90f3368fe7..9429cb853f 100644 --- a/app/worker.php +++ b/app/worker.php @@ -341,7 +341,7 @@ Server::setResource('deviceForSites', function (Document $project, Telemetry $te return new TelemetryDevice($telemetry, getDevice(APP_STORAGE_SITES . '/app-' . $project->getId())); }, ['project', 'telemetry']); -Server::setResource('deviceForImports', function (Document $project, Telemetry $telemetry) { +Server::setResource('deviceForMigrations', function (Document $project, Telemetry $telemetry) { return new TelemetryDevice($telemetry, getDevice(APP_STORAGE_IMPORTS . '/app-' . $project->getId())); }, ['project', 'telemetry']); diff --git a/composer.lock b/composer.lock index e3b3d2208f..2cd331ff6d 100644 --- a/composer.lock +++ b/composer.lock @@ -3542,16 +3542,16 @@ }, { "name": "utopia-php/database", - "version": "0.71.11", + "version": "0.71.12", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "644ed827aace63cbdf8c6c64a3998c11b43e3383" + "reference": "72c2a9c185f0f606e4792913a071f744cca21d42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/644ed827aace63cbdf8c6c64a3998c11b43e3383", - "reference": "644ed827aace63cbdf8c6c64a3998c11b43e3383", + "url": "https://api.github.com/repos/utopia-php/database/zipball/72c2a9c185f0f606e4792913a071f744cca21d42", + "reference": "72c2a9c185f0f606e4792913a071f744cca21d42", "shasum": "" }, "require": { @@ -3592,9 +3592,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/0.71.11" + "source": "https://github.com/utopia-php/database/tree/0.71.12" }, - "time": "2025-08-05T08:35:29+00:00" + "time": "2025-08-05T09:38:25+00:00" }, { "name": "utopia-php/detector", diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index f878853ed6..4e20c966b1 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -4,6 +4,7 @@ namespace Appwrite\Platform\Workers; use Ahc\Jwt\JWT; use Appwrite\Event\Realtime; +use Appwrite\Migration\CSV as DestinationCSV; use Exception; use Utopia\CLI\Console; use Utopia\Config\Config; @@ -34,7 +35,7 @@ class Migrations extends Action protected Database $dbForPlatform; - protected Device $deviceForImports; + protected Device $deviceForMigrations; protected Document $project; @@ -68,17 +69,17 @@ class Migrations extends Action ->inject('dbForPlatform') ->inject('logError') ->inject('queueForRealtime') - ->inject('deviceForImports') + ->inject('deviceForMigrations') ->callback($this->action(...)); } /** * @throws Exception */ - public function action(Message $message, Document $project, Database $dbForProject, Database $dbForPlatform, callable $logError, Realtime $queueForRealtime, Device $deviceForImports): void + public function action(Message $message, Document $project, Database $dbForProject, Database $dbForPlatform, callable $logError, Realtime $queueForRealtime, Device $deviceForMigrations): void { $payload = $message->getPayload() ?? []; - $this->deviceForImports = $deviceForImports; + $this->deviceForMigrations = $deviceForMigrations; if (empty($payload)) { throw new Exception('Missing payload'); @@ -146,7 +147,7 @@ class Migrations extends Action CSV::getName() => new CSV( $resourceId, $migrationOptions['path'], - $this->deviceForImports, + $this->deviceForMigrations, $this->dbForProject ), default => throw new \Exception('Invalid source type'), @@ -173,11 +174,9 @@ class Migrations extends Action Config::getParam('collections', [])['databases']['collections'], ), DestinationCSV::getName() => new DestinationCSV( - $this->project, - $this->dbForProject, + $this->deviceForMigrations, $migration->getAttribute('resourceId'), - $migration->getAttribute('options', []), - $this->deviceForImports + $migration->getAttribute('options', [])['columns'] ?? [], ), default => throw new \Exception('Invalid destination type'), }; @@ -211,7 +210,6 @@ class Migrations extends Action // set the errors back without trace $clonedMigrationDocument->setAttribute('errors', $errorMessages); - /** Trigger Realtime Events */ $queueForRealtime ->setProject($project) From 892cfe01b2ebb34e144caccb95f729ee4d607377 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 7 Aug 2025 00:47:11 +1200 Subject: [PATCH 03/43] Optional columns --- app/controllers/api/migrations.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index f6dc56a5eb..36a920a56e 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -453,7 +453,7 @@ App::post('/v1/migrations/csv/exports') )) ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') ->param('resourceId', null, new CompoundUID(), 'Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.') - ->param('columns', [], new ArrayList(new Text(255)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.') + ->param('columns', [], new ArrayList(new Text(255)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.', true) ->inject('response') ->inject('dbForProject') ->inject('project') From 57a46b98ecd92e630b70d81986da92db917f97eb Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Fri, 22 Aug 2025 18:01:38 +1200 Subject: [PATCH 04/43] Use utopia adapter --- composer.json | 2 +- composer.lock | 27 +++++++++++++------- src/Appwrite/Platform/Workers/Migrations.php | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 0c662c775f..fcc0acb213 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.18.*", - "utopia-php/migration": "1.*", + "utopia-php/migration": "dev-feat-csv-export as 1.0.0", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index b7e9a76088..0dffee1bde 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": "0da713ee5642eba1d30bc51c1a04a723", + "content-hash": "954529a36566209d6687df9f41a0f2e6", "packages": [ { "name": "adhocore/jwt", @@ -4109,16 +4109,16 @@ }, { "name": "utopia-php/migration", - "version": "1.0.0", + "version": "dev-feat-csv-export", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "0e4499d9dd2c90c2be188cc5fb7a32d9a892b569" + "reference": "8435f1db0db4854ca27cb4c9cf275b905fcb3b41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/0e4499d9dd2c90c2be188cc5fb7a32d9a892b569", - "reference": "0e4499d9dd2c90c2be188cc5fb7a32d9a892b569", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/8435f1db0db4854ca27cb4c9cf275b905fcb3b41", + "reference": "8435f1db0db4854ca27cb4c9cf275b905fcb3b41", "shasum": "" }, "require": { @@ -4159,9 +4159,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/1.0.0" + "source": "https://github.com/utopia-php/migration/tree/feat-csv-export" }, - "time": "2025-08-13T09:15:53+00:00" + "time": "2025-08-21T12:56:18+00:00" }, { "name": "utopia-php/orchestration", @@ -8425,9 +8425,18 @@ "time": "2024-03-07T20:33:40+00:00" } ], - "aliases": [], + "aliases": [ + { + "package": "utopia-php/migration", + "version": "dev-feat-csv-export", + "alias": "1.0.0", + "alias_normalized": "1.0.0.0" + } + ], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "utopia-php/migration": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 23b8cf7ba3..33af785ab5 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -4,7 +4,7 @@ namespace Appwrite\Platform\Workers; use Ahc\Jwt\JWT; use Appwrite\Event\Realtime; -use Appwrite\Migration\CSV as DestinationCSV; +use Utopia\Migration\Destinations\CSV as DestinationCSV; use Exception; use Utopia\CLI\Console; use Utopia\Config\Config; From 1722e9e416ad998fed889c098526a01f76493848 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Fri, 22 Aug 2025 18:03:10 +1200 Subject: [PATCH 05/43] Fix DB read source --- src/Appwrite/Platform/Workers/Migrations.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 33af785ab5..ce9b7e2881 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -18,6 +18,7 @@ use Utopia\Migration\Destination; use Utopia\Migration\Destinations\Appwrite as DestinationAppwrite; use Utopia\Migration\Exception as MigrationException; use Utopia\Migration\Source; +use Utopia\Migration\Sources\Appwrite; use Utopia\Migration\Sources\Appwrite as SourceAppwrite; use Utopia\Migration\Sources\CSV; use Utopia\Migration\Sources\Firebase; @@ -113,9 +114,17 @@ class Migrations extends Action protected function processSource(Document $migration): Source { $source = $migration->getAttribute('source'); + $destination = $migration->getAttribute('destination'); $resourceId = $migration->getAttribute('resourceId'); $credentials = $migration->getAttribute('credentials'); $migrationOptions = $migration->getAttribute('options'); + $dataSource = Appwrite::SOURCE_API; + $database = null; + + if ($source === Appwrite::getName() && $destination === DestinationCSV::getName()) { + $dataSource = Appwrite::SOURCE_DATABASE; + $database = $this->dbForProject; + } $migrationSource = match ($source) { Firebase::getName() => new Firebase( @@ -143,6 +152,8 @@ class Migrations extends Action $credentials['projectId'], $credentials['endpoint'] === 'http://localhost/v1' ? 'http://appwrite/v1' : $credentials['endpoint'], $credentials['apiKey'], + $dataSource, + $database ), CSV::getName() => new CSV( $resourceId, @@ -251,7 +262,9 @@ class Migrations extends Action 'functions.write', 'databases.read', 'collections.read', + 'collections.write', 'tables.read', + 'tables.write', 'documents.read', 'documents.write', 'rows.read', From c8993d7f713a073ead1bfca7c54ee130863ea30c Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:37:12 +1200 Subject: [PATCH 06/43] Add additional export params --- app/controllers/api/migrations.php | 101 +++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 27 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index d5bcfc2fd7..6e0ecd218d 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -339,12 +339,20 @@ App::post('/v1/migrations/csv/imports') ->inject('deviceForMigrations') ->inject('queueForEvents') ->inject('queueForMigrations') - ->action(function (string $bucketId, string $fileId, string $resourceId, bool $internalFile, Response $response, Database $dbForProject, Document $project, Device $deviceForFiles, Device $deviceForMigrations, Event $queueForEvents, Migration $queueForMigrations) { - $isAPIKey = Auth::isAppUser(Authorization::getRoles()); - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); - if ($internalFile && !$isPrivilegedUser) { - throw new Exception(Exception::USER_UNAUTHORIZED); - } + ->action(function ( + string $bucketId, + string $fileId, + string $resourceId, + bool $internalFile, + Response $response, + Database $dbForProject, + Database $dbForPlatform, + Document $project, + Device $deviceForFiles, + Device $deviceForMigrations, + Event $queueForEvents, + Migration $queueForMigrations + ) { $bucket = Authorization::skip(function () use ($internalFile, $dbForPlatform, $dbForProject, $bucketId) { if ($internalFile) { return $dbForPlatform->getDocument('buckets', 'default'); @@ -352,7 +360,7 @@ App::post('/v1/migrations/csv/imports') return $dbForProject->getDocument('buckets', $bucketId); }); - if ($bucket->isEmpty() || (!$isAPIKey && !$isPrivilegedUser)) { + if ($bucket->isEmpty()) { throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); } @@ -366,7 +374,7 @@ App::post('/v1/migrations/csv/imports') throw new Exception(Exception::STORAGE_FILE_NOT_FOUND, 'File not found in ' . $path); } - // no encryption, compression on files above 20MB. + // No encryption or compression on files above 20MB. $hasEncryption = !empty($file->getAttribute('openSSLCipher')); $compression = $file->getAttribute('algorithm', Compression::NONE); $hasCompression = $compression !== Compression::NONE; @@ -377,7 +385,6 @@ App::post('/v1/migrations/csv/imports') if ($hasEncryption || $hasCompression) { $source = $deviceForFiles->read($path); - // 1. decrypt if ($hasEncryption) { $source = OpenSSL::decrypt( $source, @@ -389,7 +396,6 @@ App::post('/v1/migrations/csv/imports') ); } - // 2. decompress if ($hasCompression) { switch ($compression) { case Compression::ZSTD: @@ -401,12 +407,12 @@ App::post('/v1/migrations/csv/imports') } } - // manual write after decryption and/or decompression - if (! $deviceForMigrations->write($newPath, $source, 'text/csv')) { - throw new \Exception("Unable to copy file"); + // Manual write after decryption and/or decompression + if (!$deviceForMigrations->write($newPath, $source, 'text/csv')) { + throw new \Exception('Unable to copy file'); } - } elseif (! $deviceForFiles->transfer($path, $newPath, $deviceForMigrations)) { - throw new \Exception("Unable to copy file"); + } elseif (!$deviceForFiles->transfer($path, $newPath, $deviceForMigrations)) { + throw new \Exception('Unable to copy file'); } $fileSize = $deviceForMigrations->getFileSize($newPath); @@ -461,34 +467,68 @@ App::post('/v1/migrations/csv/exports') ) ] )) - ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') ->param('resourceId', null, new CompoundUID(), 'Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.') - ->param('columns', [], new ArrayList(new Text(255)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.', true) + ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') + ->param('filename', '', new Text(255), 'The name of the file to be created for the export, excluding the .csv extension.') + ->param('columns', [], new ArrayList(new Text(Database::LENGTH_KEY)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.', true) + ->param('delimiter', ',', new Text(1), 'The character that separates each column value. Default is comma ",".', true) + ->param('enclosure', '"', new Text(1), 'The character that encloses each column value. Default is double quotes \'"\'.', true) + ->param('escape', '\\', new Text(1), 'The escape character for the enclosure character. Default is backslash "\\".', true) + ->param('header', true, new Boolean(), 'Whether to include the header row with column names. Default is true.', true) + ->param('notify', true, new Boolean(), 'Set to true to receive an email when the export is complete. Default is true.', true) + ->inject('user') ->inject('response') ->inject('dbForProject') ->inject('project') ->inject('queueForEvents') ->inject('queueForMigrations') - ->action(function (string $bucketId, string $resourceId, array $columns, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Migration $queueForMigrations) { - $isAPIKey = Auth::isAppUser(Authorization::getRoles()); - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); - + ->action(function ( + string $resourceId, + string $bucketId, + string $filename, + array $columns, + string $delimiter, + string $enclosure, + string $escape, + bool $header, + bool $notify, + Document $user, + Response $response, + Database $dbForProject, + Document $project, + Event $queueForEvents, + Migration $queueForMigrations + ) { $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); - - if ($bucket->isEmpty() || (!$isAPIKey && !$isPrivilegedUser)) { + if ($bucket->isEmpty()) { throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); } - $migrationId = ID::unique(); - $resources = Transfer::extractServices([Transfer::GROUP_DATABASES]); + [$databaseId, $collectionId] = \explode(':', $resourceId, 2); + if (empty($databaseId)) { + throw new Exception(Exception::DATABASE_NOT_FOUND); + } + if (empty($collectionId)) { + throw new Exception(Exception::COLLECTION_NOT_FOUND); + } + + $database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId)); + if ($database->isEmpty()) { + throw new Exception(Exception::DATABASE_NOT_FOUND); + } + + $collection = Authorization::skip(fn () => $dbForProject->getDocument('database_' . $database->getSequence(), $collectionId)); + if ($collection->isEmpty()) { + throw new Exception(Exception::COLLECTION_NOT_FOUND); + } $migration = $dbForProject->createDocument('migrations', new Document([ - '$id' => $migrationId, + '$id' => ID::unique(), 'status' => 'pending', 'stage' => 'init', 'source' => Appwrite::getName(), 'destination' => CSV::getName(), - 'resources' => $resources, + 'resources' => Transfer::extractServices([Transfer::GROUP_DATABASES]), 'resourceId' => $resourceId, 'resourceType' => Resource::TYPE_DATABASE, 'statusCounters' => '{}', @@ -496,7 +536,14 @@ App::post('/v1/migrations/csv/exports') 'errors' => [], 'options' => [ 'bucketId' => $bucketId, + 'filename' => $filename, 'columns' => $columns, + 'delimiter' => $delimiter, + 'enclosure' => $enclosure, + 'escape' => $escape, + 'header' => $header, + 'notify' => $notify, + 'userInternalId' => $user->getSequence(), ], ])); From 5e8951fbe02dce5ac3f7841b45ff2328ca868794 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:37:49 +1200 Subject: [PATCH 07/43] Save export to bucket on complete --- src/Appwrite/Platform/Workers/Migrations.php | 224 +++++++++++++------ 1 file changed, 153 insertions(+), 71 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index ce9b7e2881..bbdf537157 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -3,19 +3,23 @@ namespace Appwrite\Platform\Workers; use Ahc\Jwt\JWT; +use Appwrite\Event\Mail; use Appwrite\Event\Realtime; -use Utopia\Migration\Destinations\CSV as DestinationCSV; +use Appwrite\Template\Template; use Exception; use Utopia\CLI\Console; use Utopia\Config\Config; use Utopia\Database\Database; use Utopia\Database\Document; +use Utopia\Locale\Locale; use Utopia\Database\Exception\Authorization; use Utopia\Database\Exception\Conflict; use Utopia\Database\Exception\Restricted; use Utopia\Database\Exception\Structure; +use Utopia\Database\Query; use Utopia\Migration\Destination; use Utopia\Migration\Destinations\Appwrite as DestinationAppwrite; +use Utopia\Migration\Destinations\CSV as DestinationCSV; use Utopia\Migration\Exception as MigrationException; use Utopia\Migration\Source; use Utopia\Migration\Sources\Appwrite; @@ -27,6 +31,7 @@ use Utopia\Migration\Sources\Supabase; use Utopia\Migration\Transfer; use Utopia\Platform\Action; use Utopia\Queue\Message; +use Utopia\Storage\Compression\Compression; use Utopia\Storage\Device; use Utopia\System\System; @@ -37,6 +42,7 @@ class Migrations extends Action protected Database $dbForPlatform; protected Device $deviceForMigrations; + protected Device $deviceForFiles; protected Document $project; @@ -71,16 +77,28 @@ class Migrations extends Action ->inject('logError') ->inject('queueForRealtime') ->inject('deviceForMigrations') + ->inject('deviceForFiles') + ->inject('queueForMails') ->callback($this->action(...)); } /** * @throws Exception */ - public function action(Message $message, Document $project, Database $dbForProject, Database $dbForPlatform, callable $logError, Realtime $queueForRealtime, Device $deviceForMigrations): void - { + public function action( + Message $message, + Document $project, + Database $dbForProject, + Database $dbForPlatform, + callable $logError, + Realtime $queueForRealtime, + Device $deviceForMigrations, + Device $deviceForFiles, + Mail $queueForMails, + ): void { $payload = $message->getPayload() ?? []; $this->deviceForMigrations = $deviceForMigrations; + $this->deviceForFiles = $deviceForFiles; if (empty($payload)) { throw new Exception('Missing payload'); @@ -105,7 +123,7 @@ class Migrations extends Action return; } - $this->processMigration($migration, $queueForRealtime); + $this->processMigration($migration, $queueForRealtime, $queueForMails); } /** @@ -175,6 +193,7 @@ class Migrations extends Action protected function processDestination(Document $migration, string $apiKey): Destination { $destination = $migration->getAttribute('destination'); + $options = $migration->getAttribute('options', []); return match ($destination) { DestinationAppwrite::getName() => new DestinationAppwrite( @@ -185,14 +204,32 @@ class Migrations extends Action Config::getParam('collections', [])['databases']['collections'], ), DestinationCSV::getName() => new DestinationCSV( - $this->deviceForMigrations, + $this->deviceForFiles, $migration->getAttribute('resourceId'), - $migration->getAttribute('options', [])['columns'] ?? [], + $options['bucketId'], + $options['filename'], + $options['columns'], + $options['delimiter'], + $options['enclosure'], + $options['escape'], + $options['header'], ), default => throw new \Exception('Invalid destination type'), }; } + /** + * Sanitize a filename to make it filesystem-safe + */ + protected function sanitizeFilename(string $filename): string + { + // Replace problematic characters with underscores + $sanitized = \preg_replace('/[:\/<>"|*?]/', '_', $filename); + $sanitized = \preg_replace('/[^\x20-\x7E]/', '_', $sanitized); + $sanitized = \trim($sanitized); + return empty($sanitized) ? 'export' : $sanitized; + } + /** * @throws Authorization * @throws Structure @@ -202,24 +239,18 @@ class Migrations extends Action */ protected function updateMigrationDocument(Document $migration, Document $project, Realtime $queueForRealtime): Document { - $errorMessages = []; - $clonedMigrationDocument = clone $migration; - - // we cannot use #sensitive because - // `errors` is nested which requires an override. - $errors = $clonedMigrationDocument->getAttribute('errors', []); + $messages = []; + $errors = $migration->getAttribute('errors', []); foreach ($errors as $error) { - $decoded = json_decode($error, true); - - if (is_array($decoded) && isset($decoded['trace'])) { + $decoded = \json_decode($error, true); + if (\is_array($decoded) && isset($decoded['trace'])) { unset($decoded['trace']); - $errorMessages[] = json_encode($decoded); + $messages[] = json_encode($decoded); } } - // set the errors back without trace - $clonedMigrationDocument->setAttribute('errors', $errorMessages); + $migration->setAttribute('errors', $messages); /** Trigger Realtime Events */ $queueForRealtime @@ -227,10 +258,14 @@ class Migrations extends Action ->setSubscribers(['console', $project->getId()]) ->setEvent('migrations.[migrationId].update') ->setParam('migrationId', $migration->getId()) - ->setPayload($clonedMigrationDocument->getArrayCopy(), ['options', 'credentials']) + ->setPayload($migration->getArrayCopy(), sensitive: ['options', 'credentials']) ->trigger(); - return $this->dbForProject->updateDocument('migrations', $migration->getId(), $migration); + return $this->dbForProject->updateDocument( + 'migrations', + $migration->getId(), + $migration + ); } /** @@ -285,11 +320,13 @@ class Migrations extends Action * @throws \Utopia\Database\Exception * @throws Exception */ - protected function processMigration(Document $migration, Realtime $queueForRealtime): void - { - $project = $this->project; - $projectDocument = $this->dbForPlatform->getDocument('projects', $project->getId()); - $tempAPIKey = $this->generateAPIKey($projectDocument); + protected function processMigration( + Document $migration, + Realtime $queueForRealtime, + Mail $queueForMails, + ): void { + $project = $this->dbForPlatform->getDocument('projects', $this->project->getId()); + $tempAPIKey = $this->generateAPIKey($project); $transfer = $source = $destination = null; @@ -299,17 +336,15 @@ class Migrations extends Action empty($migration->getAttribute('credentials', [])) ) { $credentials = $migration->getAttribute('credentials', []); - - $credentials['projectId'] = $credentials['projectId'] ?? $projectDocument->getId(); + $credentials['projectId'] = $credentials['projectId'] ?? $project->getId(); $credentials['endpoint'] = $credentials['endpoint'] ?? 'http://appwrite/v1'; $credentials['apiKey'] = $credentials['apiKey'] ?? $tempAPIKey; - $migration->setAttribute('credentials', $credentials); } $migration->setAttribute('stage', 'processing'); $migration->setAttribute('status', 'processing'); - $this->updateMigrationDocument($migration, $projectDocument, $queueForRealtime); + $this->updateMigrationDocument($migration, $project, $queueForRealtime); $source = $this->processSource($migration); $destination = $this->processDestination($migration, $tempAPIKey); @@ -322,40 +357,44 @@ class Migrations extends Action /** Start Transfer */ if (empty($source->getErrors())) { $migration->setAttribute('stage', 'migrating'); - $this->updateMigrationDocument($migration, $projectDocument, $queueForRealtime); + $this->updateMigrationDocument($migration, $project, $queueForRealtime); $transfer->run( $migration->getAttribute('resources'), - function () use ($migration, $transfer, $projectDocument, $queueForRealtime) { + function () use ($migration, $transfer, $project, $queueForRealtime) { $migration->setAttribute('resourceData', json_encode($transfer->getCache())); $migration->setAttribute('statusCounters', json_encode($transfer->getStatusCounters())); - $this->updateMigrationDocument($migration, $projectDocument, $queueForRealtime); + $this->updateMigrationDocument($migration, $project, $queueForRealtime); }, $migration->getAttribute('resourceId'), $migration->getAttribute('resourceType') ); } - $destination->shutDown(); - $source->shutDown(); + // Debug logging for CSV exports before shutdown + if ($migration->getAttribute('destination') === DestinationCSV::getName()) { + $statusCounters = $transfer->getStatusCounters(); + Console::info('CSV export transfer completed. Status counters: ' . json_encode($statusCounters)); + Console::info('CSV export options: ' . json_encode($migration->getAttribute('options'))); + Console::info('CSV export errors: ' . json_encode($destination->getErrors())); + } + + $destination->shutdown(); + $source->shutdown(); $sourceErrors = $source->getErrors(); $destinationErrors = $destination->getErrors(); - if (! empty($sourceErrors) || ! empty($destinationErrors)) { + if (!empty($sourceErrors) || ! empty($destinationErrors)) { $migration->setAttribute('status', 'failed'); $migration->setAttribute('stage', 'finished'); - $errorMessages = []; - foreach ($sourceErrors as $error) { - $errorMessages[] = json_encode($error); - } - foreach ($destinationErrors as $error) { - $errorMessages[] = json_encode($error); + $errors = []; + foreach ([...$sourceErrors, ...$destinationErrors] as $error) { + $errors[] = \json_encode($error); } - $migration->setAttribute('errors', $errorMessages); - + $migration->setAttribute('errors', $errors); return; } @@ -382,57 +421,100 @@ class Migrations extends Action $sourceErrors = $source->getErrors(); $destinationErrors = $destination->getErrors(); - $errorMessages = []; - foreach ($sourceErrors as $error) { - $errorMessages[] = json_encode($error); - } - foreach ($destinationErrors as $error) { - $errorMessages[] = json_encode($error); + $errors = []; + foreach ([...$sourceErrors, ...$destinationErrors] as $error) { + $errors[] = \json_encode($error); } - $migration->setAttribute('errors', $errorMessages); + $migration->setAttribute('errors', $errors); } } finally { - $this->updateMigrationDocument($migration, $projectDocument, $queueForRealtime); + $this->updateMigrationDocument($migration, $project, $queueForRealtime); if ($migration->getAttribute('status', '') === 'failed') { Console::error('Migration('.$migration->getSequence().':'.$migration->getId().') failed, Project('.$this->project->getSequence().':'.$this->project->getId().')'); - if ($destination) { - $destination->error(); + $sourceErrors = $source?->getErrors() ?? []; + $destinationErrors = $destination?->getErrors() ?? []; - foreach ($destination->getErrors() as $error) { - /** @var MigrationException $error */ - call_user_func($this->logError, $error, 'appwrite-worker', 'appwrite-queue-' . self::getName(), [ + foreach ([...$sourceErrors, ...$destinationErrors] as $error) { + /** @var MigrationException $error */ + if ($error->getCode() === 0 || $error->getCode() >= 500) { + ($this->logError)($error, 'appwrite-worker', 'appwrite-queue-' . self::getName(), [ 'migrationId' => $migration->getId(), 'source' => $migration->getAttribute('source') ?? '', 'destination' => $migration->getAttribute('destination') ?? '', 'resourceName' => $error->getResourceName(), - 'resourceGroup' => $error->getResourceGroup() + 'resourceGroup' => $error->getResourceGroup(), ]); } } - if ($source) { - $source->error(); - - foreach ($source->getErrors() as $error) { - /** @var MigrationException $error */ - call_user_func($this->logError, $error, 'appwrite-worker', 'appwrite-queue-' . self::getName(), [ - 'migrationId' => $migration->getId(), - 'source' => $migration->getAttribute('source') ?? '', - 'destination' => $migration->getAttribute('destination') ?? '', - 'resourceName' => $error->getResourceName(), - 'resourceGroup' => $error->getResourceGroup() - ]); - } - } + $source?->error(); + $destination?->error(); } if ($migration->getAttribute('status', '') === 'completed') { $destination?->success(); $source?->success(); + + if ($migration->getAttribute('destination') === DestinationCSV::getName()) { + $this->handleCSVExportComplete($project, $migration, $queueForMails); + } } } } + + protected function handleCSVExportComplete(Document $project, Document $migration, Mail $queueForMails): void + { + $options = $migration->getAttribute('options', []); + $bucketId = $options['bucketId'] ?? null; + $filename = $options['filename'] ?? 'export.csv'; + $userInternalId = $options['userInternalId'] ?? ''; + $resourceId = $migration->getAttribute('resourceId'); + + // Save file to bucket + $bucket = $this->dbForProject->getDocument('buckets', $bucketId); + if ($bucket->isEmpty()) { + throw new \Exception("Bucket not found: $bucketId"); + } + + $path = $this->deviceForFiles->getPath($bucketId . '/' . $this->sanitizeFilename($filename) . '.csv'); + $size = $this->deviceForFiles->getFileSize($path); + $mime = $this->deviceForFiles->getFileMimeType($path); + $hash = $this->deviceForFiles->getFileHash($path); + $algorithm = Compression::NONE; + $fileId = \md5($resourceId); + + $this->dbForProject->createDocument('bucket_' . $bucket->getSequence(), new Document([ + '$id' => $fileId, + '$permissions' => [], + 'bucketId' => $bucket->getId(), + 'bucketInternalId' => $bucket->getSequence(), + 'name' => $filename, + 'path' => $path, + 'signature' => $hash, + 'mimeType' => $mime, + 'sizeOriginal' => $size, + 'sizeActual' => $size, + 'algorithm' => $algorithm, + 'comment' => '', + 'chunksTotal' => 1, + 'chunksUploaded' => 1, + 'openSSLVersion' => null, + 'openSSLCipher' => null, + 'openSSLTag' => null, + 'openSSLIV' => null, + 'search' => \implode(' ', [$fileId, $filename]), + 'metadata' => ['content_type' => $mime] + ])); + + Console::info("Created file document in bucket: $fileId"); + + // No notification required, skip email sending + if (!($options['notify'] ?? false)) { + return; + } + + } } From 4970aa7426925e3c4d0567e5d8d3bc4c37a9ce33 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:38:12 +1200 Subject: [PATCH 08/43] Send email if notify on complete is set --- app/config/locale/translations/en.json | 8 +++ src/Appwrite/Platform/Workers/Migrations.php | 66 ++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json index e2ee20b2d7..c194819744 100644 --- a/app/config/locale/translations/en.json +++ b/app/config/locale/translations/en.json @@ -54,6 +54,14 @@ "emails.recovery.thanks": "Thanks,", "emails.recovery.buttonText": "Reset password", "emails.recovery.signature": "{{project}} team", + "emails.csvExport.subject": "Your CSV export is ready", + "emails.csvExport.preview": "Your data export has been completed successfully.", + "emails.csvExport.hello": "Hello {{user}},", + "emails.csvExport.body": "Your CSV export is ready for download. Click the link below to download your data export.", + "emails.csvExport.footer": "This download link will expire in 1 hour.", + "emails.csvExport.thanks": "Thanks,", + "emails.csvExport.buttonText": "Download CSV", + "emails.csvExport.signature": "{{project}} team", "emails.invitation.subject": "Invitation to {{team}} Team at {{project}}", "emails.invitation.preview": "{{owner}} invited you to join {{team}} at {{project}}", "emails.invitation.hello": "Hello {{user}},", diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index bbdf537157..ab8c7091cb 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -516,5 +516,71 @@ class Migrations extends Action return; } + $user = $this->dbForPlatform->findOne('users', [ + Query::equal('$sequence', [$userInternalId]) + ]); + + // Set up locale + $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); + $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); + + // Generate JWT + $expiry = (new \DateTime())->add(new \DateInterval('PT1H'))->format('U'); + $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', \intval($expiry), 0); + $jwt = $encoder->encode([ + 'bucketId' => $bucketId, + 'fileId' => $fileId, + 'projectId' => $project->getId(), + ]); + + // Generate download URL with JWT + $endpoint = System::getEnv('_APP_DOMAIN', ''); + $protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS', 'disabled') === 'enabled' ? 'https' : 'http'; + $downloadUrl = "{$protocol}://{$endpoint}/v1/storage/buckets/{$bucketId}/files/{$fileId}/push?project={$project->getId()}&jwt={$jwt}"; + + // Get localized email content + $subject = $locale->getText('emails.csvExport.subject'); + $preview = $locale->getText('emails.csvExport.preview'); + $hello = $locale->getText('emails.csvExport.hello'); + $body = $locale->getText('emails.csvExport.body'); + $footer = $locale->getText('emails.csvExport.footer'); + $thanks = $locale->getText('emails.csvExport.thanks'); + $buttonText = $locale->getText('emails.csvExport.buttonText'); + $signature = $locale->getText('emails.csvExport.signature'); + + // Build email body using inner template + $message = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-inner-base.tpl'); + $message + ->setParam('{{body}}', $body, escapeHtml: false) + ->setParam('{{hello}}', $hello) + ->setParam('{{footer}}', $footer) + ->setParam('{{thanks}}', $thanks) + ->setParam('{{buttonText}}', $buttonText) + ->setParam('{{signature}}', $signature) + ->setParam('{{direction}}', $locale->getText('settings.direction')) + ->setParam('{{project}}', $project->getAttribute('name')) + ->setParam('{{user}}', $user->getAttribute('name', $user->getAttribute('email'))) + ->setParam('{{redirect}}', $downloadUrl); + + $emailBody = $message->render(); + + $emailVariables = [ + 'direction' => $locale->getText('settings.direction'), + 'project' => $project->getAttribute('name'), + 'user' => $user->getAttribute('name', $user->getAttribute('email')), + 'redirect' => $downloadUrl, + ]; + + $queueForMails + ->setSubject($subject) + ->setPreview($preview) + ->setBody($emailBody) + ->setBodyTemplate(__DIR__ . '/../../../../app/config/locale/templates/email-base-styled.tpl') + ->setVariables($emailVariables) + ->setName($user->getAttribute('name', $user->getAttribute('email'))) + ->setRecipient($user->getAttribute('email')) + ->trigger(); + + Console::info('CSV export notification email sent to ' . $user->getAttribute('email')); } } From 61d9db8c67500fadda6bf65805ae47168a5e265e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:38:35 +1200 Subject: [PATCH 09/43] Cover export + notify in tests --- .../Services/Migrations/MigrationsBase.php | 231 +++++++++++++++++- 1 file changed, 230 insertions(+), 1 deletion(-) diff --git a/tests/e2e/Services/Migrations/MigrationsBase.php b/tests/e2e/Services/Migrations/MigrationsBase.php index 7a57b7f8f9..4d27cf2828 100644 --- a/tests/e2e/Services/Migrations/MigrationsBase.php +++ b/tests/e2e/Services/Migrations/MigrationsBase.php @@ -900,7 +900,7 @@ trait MigrationsBase /** * Import documents from a CSV file. */ - public function testCreateCsvMigration(): void + public function testCreateCSVImport(): void { // Make a database $response = $this->client->call(Client::METHOD_POST, '/databases', [ @@ -1194,4 +1194,233 @@ trait MigrationsBase 'x-appwrite-project' => $this->getProject()['$id'], ], $body); } + + /** + * Test CSV export with email notification + */ + public function testCreateCSVExport(): void + { + // Create a database + $database = $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 Export Database' + ]); + + $this->assertEquals(201, $database['headers']['status-code']); + $databaseId = $database['body']['$id']; + + // Create a collection + $collection = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'collectionId' => ID::unique(), + 'name' => 'Test Export Collection', + 'permissions' => [] + ]); + + $this->assertEquals(201, $collection['headers']['status-code']); + $collectionId = $collection['body']['$id']; + + // Create a simple attribute like the basic test + $name = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collectionId . '/attributes/string', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'key' => 'name', + 'size' => 255, + 'required' => true, + ]); + + $this->assertEquals(202, $name['headers']['status-code']); + + // Create a simple attribute like the basic test + $email = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collectionId . '/attributes/string', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'key' => 'email', + 'size' => 255, + 'required' => false, + ]); + + $this->assertEquals(202, $email['headers']['status-code']); + + \sleep(3); + + // Create sample documents + for ($i = 1; $i <= 10; $i++) { + $doc = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collectionId . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'documentId' => ID::unique(), + 'data' => [ + 'name' => 'Test User ' . $i, + 'email' => 'user' . $i . '@appwrite.io' + ] + ]); + + $this->assertEquals(201, $doc['headers']['status-code'], 'Failed to create document ' . $i); + } + + // Verify documents were created + $docs = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $collectionId . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + + $this->assertEquals(200, $docs['headers']['status-code']); + $this->assertEquals(10, $docs['body']['total'], 'Expected 10 documents but got ' . $docs['body']['total']); + + // Create a storage bucket for the export + $bucketIdUnique = ID::unique(); + $bucket = $this->client->call(Client::METHOD_POST, '/storage/buckets', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'bucketId' => $bucketIdUnique, + 'name' => 'Test Export Bucket', + 'permissions' => [ + Permission::read(Role::any()), + Permission::create(Role::any()), + Permission::update(Role::any()), + Permission::delete(Role::any()), + ], + 'fileSecurity' => false, + 'enabled' => true, + 'maximumFileSize' => 10485760, // 10MB + 'allowedFileExtensions' => ['csv'], + 'compression' => 'none', + 'encryption' => false, + 'antivirus' => false + ]); + + $this->assertEquals(201, $bucket['headers']['status-code']); + $bucketId = $bucket['body']['$id']; + + // Perform CSV export with notification enabled + $migration = $this->client->call(Client::METHOD_POST, '/migrations/csv/exports', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders()), [ + 'bucketId' => $bucketId, + 'resourceId' => $databaseId . ':' . $collectionId, + 'filename' => 'test-export', + 'columns' => [], + 'delimiter' => ',', + 'enclosure' => '"', + 'escape' => '\\', + 'header' => true, + 'notify' => true + ]); + + $this->assertEquals(202, $migration['headers']['status-code']); + $this->assertNotEmpty($migration['body']['$id']); + $migrationId = $migration['body']['$id']; + + $this->assertEventually(function () use ($migrationId) { + $response = $this->client->call(Client::METHOD_GET, '/migrations/' . $migrationId, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ]); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals('finished', $response['body']['stage']); + $this->assertEquals('completed', $response['body']['status']); + $this->assertEquals('Appwrite', $response['body']['source']); + $this->assertEquals('CSV', $response['body']['destination']); + + return true; + }, 30000, 500); + + // Check that the file was created in the bucket + // File ID is MD5 of the resourceId (not the filename) + $fileId = \md5($databaseId . ':' . $collectionId); + + $file = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files/' . $fileId, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + + $this->assertEquals(200, $file['headers']['status-code']); + $this->assertEquals($fileId, $file['body']['$id']); + $this->assertEquals($bucketId, $file['body']['bucketId']); + $this->assertEquals('test-export', $file['body']['name']); + $this->assertEquals('text/csv', $file['body']['mimeType']); + $this->assertGreaterThan(0, $file['body']['sizeOriginal']); + + // Download and verify CSV content + $download = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files/' . $fileId . '/download', \array_merge([ + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $download['headers']['status-code']); + + $csvContent = $download['body']; + $lines = explode("\n", trim($csvContent)); + $this->assertCount(11, $lines); + $this->assertStringContainsString('$id', $lines[0]); + $this->assertStringContainsString('$permissions', $lines[0]); + $this->assertStringContainsString('$createdAt', $lines[0]); + $this->assertStringContainsString('$updatedAt', $lines[0]); + $this->assertStringContainsString('name', $lines[0]); + $this->assertStringContainsString('email', $lines[0]); + + $this->assertStringContainsString('Test User 1', $lines[1]); + $this->assertStringContainsString('user1@appwrite.io', $lines[1]); + + // Check that email was sent with download link + $lastEmail = $this->getLastEmail(); + $this->assertNotEmpty($lastEmail); + $this->assertEquals('Your CSV export is ready', $lastEmail['subject']); + $this->assertStringContainsStringIgnoringCase('Your data export has been completed successfully', $lastEmail['text']); + + // Extract download URL from email HTML + \preg_match('/href="([^"]*\/storage\/buckets\/[^"]*\/push[^"]*)"/', $lastEmail['html'], $matches); + $this->assertNotEmpty($matches[1], 'Download URL not found in email'); + $downloadUrl = html_entity_decode($matches[1]); + + // Parse the URL to extract components + $components = \parse_url($downloadUrl); + $this->assertNotEmpty($components); + \parse_str($components['query'] ?? '', $queryParams); + $this->assertArrayHasKey('jwt', $queryParams, 'JWT not found in download URL'); + $this->assertNotEmpty($queryParams['jwt']); + + // Test download with JWT + $path = \str_replace('/v1', '', $components['path']); + $downloadWithJwt = $this->client->call(Client::METHOD_GET, $path . '?project=' . $queryParams['project'] . '&jwt=' . $queryParams['jwt']); + $this->assertEquals(200, $downloadWithJwt['headers']['status-code'], 'Failed to download file with JWT'); + $this->assertEquals($csvContent, $downloadWithJwt['body'], 'Downloaded content differs from original'); + + // Test that download without JWT fails + $downloadWithoutJwt = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files/' . $fileId . '/download'); + $this->assertEquals(404, $downloadWithoutJwt['headers']['status-code'], 'File should not be downloadable without JWT'); + + $this->client->call(Client::METHOD_DELETE, '/storage/buckets/' . $bucketId . '/files/' . $fileId, [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId, [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + $this->client->call(Client::METHOD_DELETE, '/storage/buckets/' . $bucketId, [ + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]); + } } From 223523f722f4a5b34ccc93e475d364334d1dd5ae Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:38:55 +1200 Subject: [PATCH 10/43] Mount uploads to migrations worker --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index da6362b4c4..0c187dd762 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -698,6 +698,7 @@ services: - appwrite volumes: - appwrite-imports:/storage/imports:rw + - appwrite-uploads:/storage/uploads:rw - ./app:/usr/src/code/app - ./src:/usr/src/code/src - ./tests:/usr/src/code/tests From 2494c9afb376e89311fd11e4904465b7c40f228c Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:39:06 +1200 Subject: [PATCH 11/43] Update to release migrations --- composer.json | 2 +- composer.lock | 133 ++++++++++++++++++++++++++------------------------ 2 files changed, 69 insertions(+), 66 deletions(-) diff --git a/composer.json b/composer.json index 8a1e325f7f..6f89312223 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.18.*", - "utopia-php/migration": "dev-feat-csv-export as 1.0.0", + "utopia-php/migration": "1.2.*", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index 73fb57f6f8..0fc58749f5 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": "954529a36566209d6687df9f41a0f2e6", + "content-hash": "5150254cf0d6aa361a31244b7f7d1eb7", "packages": [ { "name": "adhocore/jwt", @@ -1159,20 +1159,20 @@ }, { "name": "open-telemetry/api", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "7692075f486c14d8cfd37fba98a08a5667f089e5" + "reference": "ee17d937652eca06c2341b6fadc0f74c1c1a5af2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/7692075f486c14d8cfd37fba98a08a5667f089e5", - "reference": "7692075f486c14d8cfd37fba98a08a5667f089e5", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/ee17d937652eca06c2341b6fadc0f74c1c1a5af2", + "reference": "ee17d937652eca06c2341b6fadc0f74c1c1a5af2", "shasum": "" }, "require": { - "open-telemetry/context": "^1.0", + "open-telemetry/context": "^1.4", "php": "^8.1", "psr/log": "^1.1|^2.0|^3.0", "symfony/polyfill-php82": "^1.26" @@ -1225,20 +1225,20 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-08-07T23:07:38+00:00" + "time": "2025-09-19T00:05:49+00:00" }, { "name": "open-telemetry/context", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/context.git", - "reference": "438f71812242db3f196fb4c717c6f92cbc819be6" + "reference": "d4c4470b541ce72000d18c339cfee633e4c8e0cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/438f71812242db3f196fb4c717c6f92cbc819be6", - "reference": "438f71812242db3f196fb4c717c6f92cbc819be6", + "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/d4c4470b541ce72000d18c339cfee633e4c8e0cf", + "reference": "d4c4470b541ce72000d18c339cfee633e4c8e0cf", "shasum": "" }, "require": { @@ -1284,7 +1284,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-08-13T01:12:00+00:00" + "time": "2025-09-19T00:05:49+00:00" }, { "name": "open-telemetry/exporter-otlp", @@ -1415,23 +1415,23 @@ }, { "name": "open-telemetry/sdk", - "version": "1.7.1", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sdk.git", - "reference": "52690d4b37ae4f091af773eef3c238ed2bc0aa06" + "reference": "105c6e81e3d86150bd5704b00c7e4e165e957b89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/52690d4b37ae4f091af773eef3c238ed2bc0aa06", - "reference": "52690d4b37ae4f091af773eef3c238ed2bc0aa06", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/105c6e81e3d86150bd5704b00c7e4e165e957b89", + "reference": "105c6e81e3d86150bd5704b00c7e4e165e957b89", "shasum": "" }, "require": { "ext-json": "*", "nyholm/psr7-server": "^1.1", - "open-telemetry/api": "^1.4", - "open-telemetry/context": "^1.0", + "open-telemetry/api": "^1.6", + "open-telemetry/context": "^1.4", "open-telemetry/sem-conv": "^1.0", "php": "^8.1", "php-http/discovery": "^1.14", @@ -1508,7 +1508,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2025-09-05T07:17:06+00:00" + "time": "2025-09-19T00:05:49+00:00" }, { "name": "open-telemetry/sem-conv", @@ -1569,16 +1569,16 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v2.7.0", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + "reference": "e6352b9f43318821f148c1e8c2d9e944aa9accb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/e6352b9f43318821f148c1e8c2d9e944aa9accb5", + "reference": "e6352b9f43318821f148c1e8c2d9e944aa9accb5", "shasum": "" }, "require": { @@ -1632,7 +1632,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2024-05-08T12:18:48+00:00" + "time": "2025-09-24T01:40:13+00:00" }, { "name": "paragonie/random_compat", @@ -4187,16 +4187,16 @@ }, { "name": "utopia-php/migration", - "version": "dev-feat-csv-export", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "8435f1db0db4854ca27cb4c9cf275b905fcb3b41" + "reference": "42ff497c5231f5a727d1e229419ff1d2195d8093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/8435f1db0db4854ca27cb4c9cf275b905fcb3b41", - "reference": "8435f1db0db4854ca27cb4c9cf275b905fcb3b41", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/42ff497c5231f5a727d1e229419ff1d2195d8093", + "reference": "42ff497c5231f5a727d1e229419ff1d2195d8093", "shasum": "" }, "require": { @@ -4237,9 +4237,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/feat-csv-export" + "source": "https://github.com/utopia-php/migration/tree/1.2.0" }, - "time": "2025-08-21T12:56:18+00:00" + "time": "2025-09-24T10:32:24+00:00" }, { "name": "utopia-php/orchestration", @@ -5004,16 +5004,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.3.5", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "6fda9e58b37c9872c1a2a424e5467de8de1bc567" + "reference": "3583fa6fddb1d1a902b37ff2048527a5827fc008" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/6fda9e58b37c9872c1a2a424e5467de8de1bc567", - "reference": "6fda9e58b37c9872c1a2a424e5467de8de1bc567", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/3583fa6fddb1d1a902b37ff2048527a5827fc008", + "reference": "3583fa6fddb1d1a902b37ff2048527a5827fc008", "shasum": "" }, "require": { @@ -5049,9 +5049,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.3.5" + "source": "https://github.com/appwrite/sdk-generator/tree/1.4.0" }, - "time": "2025-09-15T04:19:40+00:00" + "time": "2025-09-23T02:27:10+00:00" }, { "name": "doctrine/annotations", @@ -5278,16 +5278,16 @@ }, { "name": "laravel/pint", - "version": "v1.25.0", + "version": "v1.25.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96" + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96", - "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96", + "url": "https://api.github.com/repos/laravel/pint/zipball/5016e263f95d97670d71b9a987bd8996ade6d8d9", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9", "shasum": "" }, "require": { @@ -5340,7 +5340,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-09-17T01:36:44+00:00" + "time": "2025-09-19T02:57:12+00:00" }, { "name": "matthiasmullie/minify", @@ -6230,16 +6230,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.27", + "version": "9.6.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0a9aa4440b6a9528cf360071502628d717af3e0a" + "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0a9aa4440b6a9528cf360071502628d717af3e0a", - "reference": "0a9aa4440b6a9528cf360071502628d717af3e0a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", + "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", "shasum": "" }, "require": { @@ -6264,7 +6264,7 @@ "sebastian/comparator": "^4.0.9", "sebastian/diff": "^4.0.6", "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", + "sebastian/exporter": "^4.0.8", "sebastian/global-state": "^5.0.8", "sebastian/object-enumerator": "^4.0.4", "sebastian/resource-operations": "^3.0.4", @@ -6313,7 +6313,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.27" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.29" }, "funding": [ { @@ -6337,7 +6337,7 @@ "type": "tidelift" } ], - "time": "2025-09-14T06:18:03+00:00" + "time": "2025-09-24T06:29:11+00:00" }, { "name": "psr/cache", @@ -6829,16 +6829,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -6894,15 +6894,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", @@ -8504,18 +8516,9 @@ "time": "2024-03-07T20:33:40+00:00" } ], - "aliases": [ - { - "package": "utopia-php/migration", - "version": "dev-feat-csv-export", - "alias": "1.0.0", - "alias_normalized": "1.0.0.0" - } - ], + "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "utopia-php/migration": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 16821a28fcad97655b94c48b02caa6970adc0ab9 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 24 Sep 2025 22:53:13 +1200 Subject: [PATCH 12/43] Format --- app/controllers/api/migrations.php | 1 - src/Appwrite/Platform/Workers/Migrations.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 6e0ecd218d..c69185d0e8 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -1,6 +1,5 @@ Date: Wed, 22 Oct 2025 01:12:18 +1300 Subject: [PATCH 13/43] Add queries for csv export --- app/controllers/api/migrations.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index c69185d0e8..5d1c19f473 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -19,6 +19,7 @@ use Utopia\Database\Exception\Query as QueryException; use Utopia\Database\Helpers\ID; use Utopia\Database\Query; use Utopia\Database\Validator\Authorization; +use Utopia\Database\Validator\Queries\Documents; use Utopia\Database\Validator\Query\Cursor; use Utopia\Database\Validator\UID; use Utopia\Migration\Resource; @@ -316,7 +317,7 @@ App::post('/v1/migrations/csv/imports') ->label('sdk', new Method( namespace: 'migrations', group: null, - name: 'createCsvImportMigration', + name: 'createCSVImportMigration', description: '/docs/references/migrations/migration-csv-import.md', auth: [AuthType::ADMIN], responses: [ @@ -456,7 +457,7 @@ App::post('/v1/migrations/csv/exports') ->label('sdk', new Method( namespace: 'migrations', group: null, - name: 'createCsvExportMigration', + name: 'createCSVExportMigration', description: '/docs/references/migrations/migration-csv-export.md', auth: [AuthType::ADMIN], responses: [ @@ -470,6 +471,7 @@ App::post('/v1/migrations/csv/exports') ->param('bucketId', '', new UID(), 'Storage bucket unique ID where the exported CSV will be stored.') ->param('filename', '', new Text(255), 'The name of the file to be created for the export, excluding the .csv extension.') ->param('columns', [], new ArrayList(new Text(Database::LENGTH_KEY)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.', true) + ->param('queries', [], new ArrayList(new Text(0)), 'Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long.', true) ->param('delimiter', ',', new Text(1), 'The character that separates each column value. Default is comma ",".', true) ->param('enclosure', '"', new Text(1), 'The character that encloses each column value. Default is double quotes \'"\'.', true) ->param('escape', '\\', new Text(1), 'The escape character for the enclosure character. Default is backslash "\\".', true) @@ -486,6 +488,7 @@ App::post('/v1/migrations/csv/exports') string $bucketId, string $filename, array $columns, + array $queries, string $delimiter, string $enclosure, string $escape, @@ -498,6 +501,12 @@ App::post('/v1/migrations/csv/exports') Event $queueForEvents, Migration $queueForMigrations ) { + try { + $queries = Query::parseQueries($queries); + } catch (QueryException $e) { + throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage()); + } + $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); if ($bucket->isEmpty()) { throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); @@ -521,6 +530,16 @@ App::post('/v1/migrations/csv/exports') throw new Exception(Exception::COLLECTION_NOT_FOUND); } + $validator = new Documents( + attributes: $collection->getAttribute('attributes', []), + indexes: $collection->getAttribute('indexes', []), + idAttributeType: $dbForProject->getAdapter()->getIdAttributeType(), + ); + + if (!$validator->isValid($queries)) { + throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription()); + } + $migration = $dbForProject->createDocument('migrations', new Document([ '$id' => ID::unique(), 'status' => 'pending', @@ -537,6 +556,7 @@ App::post('/v1/migrations/csv/exports') 'bucketId' => $bucketId, 'filename' => $filename, 'columns' => $columns, + 'queries' => $queries, 'delimiter' => $delimiter, 'enclosure' => $enclosure, 'escape' => $escape, From 4619e03d649a440af39bbac9e9442f525c0de798 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 01:26:01 +1300 Subject: [PATCH 14/43] Update specs --- app/config/specs/open-api3-1.8.x-client.json | 96 ++- app/config/specs/open-api3-1.8.x-console.json | 688 ++++++++++------- app/config/specs/open-api3-1.8.x-server.json | 474 ++++++------ app/config/specs/open-api3-latest-client.json | 96 ++- .../specs/open-api3-latest-console.json | 688 ++++++++++------- app/config/specs/open-api3-latest-server.json | 474 ++++++------ app/config/specs/swagger2-1.8.x-client.json | 96 ++- app/config/specs/swagger2-1.8.x-console.json | 700 +++++++++++------- app/config/specs/swagger2-1.8.x-server.json | 474 ++++++------ app/config/specs/swagger2-latest-client.json | 96 ++- app/config/specs/swagger2-latest-console.json | 700 +++++++++++------- app/config/specs/swagger2-latest-server.json | 474 ++++++------ app/controllers/api/migrations.php | 4 +- .../migrations/migration-csv-export.md | 1 + ...gration-csv.md => migration-csv-import.md} | 0 15 files changed, 2891 insertions(+), 2170 deletions(-) create mode 100644 docs/references/migrations/migration-csv-export.md rename docs/references/migrations/{migration-csv.md => migration-csv-import.md} (100%) diff --git a/app/config/specs/open-api3-1.8.x-client.json b/app/config/specs/open-api3-1.8.x-client.json index b6a6a1afe3..8a0aecb2a3 100644 --- a/app/config/specs/open-api3-1.8.x-client.json +++ b/app/config/specs/open-api3-1.8.x-client.json @@ -4934,7 +4934,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -4999,7 +4999,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5067,7 +5067,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5129,7 +5129,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5205,7 +5205,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5269,7 +5269,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5352,7 +5352,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -5451,7 +5451,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -5607,7 +5607,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -5716,7 +5716,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -5870,7 +5870,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -5978,7 +5978,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -6082,7 +6082,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -6206,7 +6206,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -6330,7 +6330,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -6405,7 +6405,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -6521,7 +6521,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -7115,7 +7115,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -7198,7 +7198,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -8076,7 +8076,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -8084,7 +8084,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -8141,7 +8144,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -8149,7 +8152,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8209,7 +8215,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -8217,7 +8223,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -8271,7 +8280,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -8279,7 +8288,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8347,7 +8359,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -8355,7 +8367,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8411,7 +8426,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -8419,7 +8434,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8494,7 +8512,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -8592,7 +8610,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -8743,7 +8761,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -8851,7 +8869,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -8996,7 +9014,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -9103,7 +9121,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -9206,7 +9224,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -9329,7 +9347,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", diff --git a/app/config/specs/open-api3-1.8.x-console.json b/app/config/specs/open-api3-1.8.x-console.json index c086fe03d0..35eab0c964 100644 --- a/app/config/specs/open-api3-1.8.x-console.json +++ b/app/config/specs/open-api3-1.8.x-console.json @@ -4992,7 +4992,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 508, + "weight": 509, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -5115,7 +5115,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -5219,7 +5219,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5333,7 +5333,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5398,7 +5398,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5466,7 +5466,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5528,7 +5528,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5604,7 +5604,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5668,7 +5668,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5751,7 +5751,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 319, + "weight": 320, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -5853,7 +5853,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5944,7 +5944,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -6055,7 +6055,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -6147,7 +6147,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -6234,7 +6234,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -6342,7 +6342,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6415,7 +6415,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6518,7 +6518,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6593,7 +6593,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6681,7 +6681,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6791,7 +6791,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6906,7 +6906,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -7016,7 +7016,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -7131,7 +7131,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -7241,7 +7241,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -7356,7 +7356,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7475,7 +7475,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7599,7 +7599,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7719,7 +7719,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7844,7 +7844,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7964,7 +7964,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -8089,7 +8089,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -8199,7 +8199,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -8314,7 +8314,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8427,7 +8427,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8548,7 +8548,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8661,7 +8661,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8782,7 +8782,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8895,7 +8895,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -9016,7 +9016,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -9151,7 +9151,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -9272,7 +9272,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -9392,7 +9392,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9502,7 +9502,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9648,7 +9648,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9723,7 +9723,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9807,7 +9807,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9919,7 +9919,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -10018,7 +10018,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -10203,7 +10203,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -10337,7 +10337,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -10440,7 +10440,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10540,7 +10540,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10649,7 +10649,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10803,7 +10803,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10911,7 +10911,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -11015,7 +11015,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -11112,7 +11112,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -11236,7 +11236,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -11360,7 +11360,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -11446,7 +11446,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11579,7 +11579,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11654,7 +11654,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11738,7 +11738,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -11825,7 +11825,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 326, + "weight": 327, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -11921,7 +11921,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -12027,7 +12027,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 318, + "weight": 319, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -12142,7 +12142,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -12215,7 +12215,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -12448,7 +12448,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -12497,7 +12497,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -12547,7 +12547,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 478, + "weight": 479, "cookies": false, "type": "", "demo": "functions\/list-templates.md", @@ -12647,7 +12647,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 477, + "weight": 478, "cookies": false, "type": "", "demo": "functions\/get-template.md", @@ -12707,7 +12707,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 471, + "weight": 472, "cookies": false, "type": "", "demo": "functions\/list-usage.md", @@ -12779,7 +12779,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -12838,7 +12838,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -13068,7 +13068,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -13129,7 +13129,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -13209,7 +13209,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -13292,7 +13292,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -13388,7 +13388,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -13473,7 +13473,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -13576,7 +13576,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -13673,7 +13673,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -13735,7 +13735,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -13799,7 +13799,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -13889,7 +13889,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -13960,7 +13960,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -14035,7 +14035,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -14151,7 +14151,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -14216,7 +14216,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -14287,7 +14287,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 470, + "weight": 471, "cookies": false, "type": "", "demo": "functions\/get-usage.md", @@ -14369,7 +14369,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -14428,7 +14428,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -14519,7 +14519,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -14588,7 +14588,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -14679,7 +14679,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -16565,7 +16565,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -16641,7 +16641,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -16785,7 +16785,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -16931,7 +16931,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -17105,7 +17105,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -17283,7 +17283,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -17460,7 +17460,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -17638,7 +17638,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -17691,7 +17691,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -17753,7 +17753,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -17828,7 +17828,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -17903,7 +17903,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -17979,7 +17979,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -18154,7 +18154,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -18330,7 +18330,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -18477,7 +18477,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -18625,7 +18625,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -18740,7 +18740,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -18858,7 +18858,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -18953,7 +18953,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -19051,7 +19051,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -19156,7 +19156,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -19264,7 +19264,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -19491,7 +19491,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -19716,7 +19716,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -19811,7 +19811,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -19909,7 +19909,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -20004,7 +20004,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -20102,7 +20102,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -20197,7 +20197,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -20295,7 +20295,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -20390,7 +20390,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -20488,7 +20488,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -20541,7 +20541,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -20603,7 +20603,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -20678,7 +20678,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -20753,7 +20753,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -20827,7 +20827,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -20910,7 +20910,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -20970,7 +20970,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -21047,7 +21047,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -21109,7 +21109,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -21184,7 +21184,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -21268,7 +21268,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -21358,7 +21358,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -21421,7 +21421,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -21496,7 +21496,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 258, + "weight": 259, "cookies": false, "type": "", "demo": "migrations\/list.md", @@ -21658,7 +21658,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 260, + "weight": 261, "cookies": false, "type": "", "demo": "migrations\/get-appwrite-report.md", @@ -21727,10 +21727,130 @@ ] } }, - "\/migrations\/csv": { + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "tags": [ + "migrations" + ], + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCSVExport", + "group": null, + "weight": 258, + "cookies": false, + "type": "", + "demo": "migrations\/create-csv-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "x-example": "" + }, + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID where the exported CSV will be stored.", + "x-example": "" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "x-example": "" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma \",\".", + "x-example": "" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes '\"'.", + "x-example": "" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "x-example": "" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "x-example": false + } + }, + "required": [ + "resourceId", + "bucketId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/csv\/imports": { "post": { "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCsvMigration", + "operationId": "migrationsCreateCSVImport", "tags": [ "migrations" ], @@ -21749,13 +21869,13 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCsvMigration", + "method": "createCSVImport", "group": null, "weight": 257, "cookies": false, "type": "", - "demo": "migrations\/create-csv-migration.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "demo": "migrations\/create-csv-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21911,7 +22031,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 261, + "weight": 262, "cookies": false, "type": "", "demo": "migrations\/get-firebase-report.md", @@ -22094,7 +22214,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 263, + "weight": 264, "cookies": false, "type": "", "demo": "migrations\/get-n-host-report.md", @@ -22332,7 +22452,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 262, + "weight": 263, "cookies": false, "type": "", "demo": "migrations\/get-supabase-report.md", @@ -22456,7 +22576,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 259, + "weight": 260, "cookies": false, "type": "", "demo": "migrations\/get.md", @@ -22514,7 +22634,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 264, + "weight": 265, "cookies": false, "type": "", "demo": "migrations\/retry.md", @@ -22565,7 +22685,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 265, + "weight": 266, "cookies": false, "type": "", "demo": "migrations\/delete.md", @@ -23035,7 +23155,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 448, + "weight": 449, "cookies": false, "type": "", "demo": "projects\/list.md", @@ -24670,7 +24790,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 446, + "weight": 447, "cookies": false, "type": "", "demo": "projects\/list-dev-keys.md", @@ -24741,7 +24861,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 443, + "weight": 444, "cookies": false, "type": "", "demo": "projects\/create-dev-key.md", @@ -24826,7 +24946,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 445, + "weight": 446, "cookies": false, "type": "", "demo": "projects\/get-dev-key.md", @@ -24894,7 +25014,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 444, + "weight": 445, "cookies": false, "type": "", "demo": "projects\/update-dev-key.md", @@ -24980,7 +25100,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 447, + "weight": 448, "cookies": false, "type": "", "demo": "projects\/delete-dev-key.md", @@ -28814,7 +28934,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 514, + "weight": 515, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -28888,7 +29008,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 509, + "weight": 510, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -28955,7 +29075,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 511, + "weight": 512, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -29033,7 +29153,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 512, + "weight": 513, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -29146,7 +29266,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 510, + "weight": 511, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -29224,7 +29344,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 513, + "weight": 514, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -29275,7 +29395,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 515, + "weight": 516, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -29335,7 +29455,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 516, + "weight": 517, "cookies": false, "type": "", "demo": "proxy\/update-rule-verification.md", @@ -29395,7 +29515,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -29468,7 +29588,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -29717,7 +29837,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -29766,7 +29886,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -29816,7 +29936,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 503, + "weight": 504, "cookies": false, "type": "", "demo": "sites\/list-templates.md", @@ -29916,7 +30036,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 504, + "weight": 505, "cookies": false, "type": "", "demo": "sites\/get-template.md", @@ -29976,7 +30096,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 505, + "weight": 506, "cookies": false, "type": "", "demo": "sites\/list-usage.md", @@ -30048,7 +30168,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -30107,7 +30227,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -30352,7 +30472,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -30413,7 +30533,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -30493,7 +30613,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -30576,7 +30696,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -30677,7 +30797,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -30757,7 +30877,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -30860,7 +30980,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -30958,7 +31078,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -31020,7 +31140,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -31084,7 +31204,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -31174,7 +31294,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -31245,7 +31365,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -31319,7 +31439,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -31381,7 +31501,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -31452,7 +31572,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 506, + "weight": 507, "cookies": false, "type": "", "demo": "sites\/get-usage.md", @@ -31534,7 +31654,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -31593,7 +31713,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -31684,7 +31804,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -31753,7 +31873,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -31844,7 +31964,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -33316,7 +33436,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -33389,7 +33509,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -33468,7 +33588,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -33476,7 +33596,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -33533,7 +33656,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -33541,7 +33664,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33601,7 +33727,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -33609,7 +33735,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -33663,7 +33792,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -33671,7 +33800,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33739,7 +33871,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -33747,7 +33879,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33803,7 +33938,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -33811,7 +33946,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33886,7 +34024,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 384, + "weight": 385, "cookies": false, "type": "", "demo": "tablesdb\/list-usage.md", @@ -33983,7 +34121,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -34042,7 +34180,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -34118,7 +34256,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -34179,7 +34317,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -34265,7 +34403,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -34372,7 +34510,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -34444,7 +34582,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -34546,7 +34684,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -34620,7 +34758,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -34707,7 +34845,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -34816,7 +34954,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -34930,7 +35068,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -35039,7 +35177,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -35153,7 +35291,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -35262,7 +35400,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -35376,7 +35514,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -35494,7 +35632,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -35617,7 +35755,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -35736,7 +35874,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -35860,7 +35998,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -35979,7 +36117,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -36103,7 +36241,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -36212,7 +36350,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -36326,7 +36464,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -36438,7 +36576,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -36558,7 +36696,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -36670,7 +36808,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -36790,7 +36928,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -36902,7 +37040,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -37022,7 +37160,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -37156,7 +37294,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -37276,7 +37414,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -37395,7 +37533,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -37504,7 +37642,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -37649,7 +37787,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -37723,7 +37861,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -37806,7 +37944,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -37917,7 +38055,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -38002,7 +38140,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -38134,7 +38272,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -38208,7 +38346,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -38291,7 +38429,7 @@ "x-appwrite": { "method": "listTableLogs", "group": "tables", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "demo": "tablesdb\/list-table-logs.md", @@ -38377,7 +38515,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -38475,7 +38613,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -38651,7 +38789,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -38780,7 +38918,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -38882,7 +39020,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -38981,7 +39119,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -39089,7 +39227,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -39234,7 +39372,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -39341,7 +39479,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -39444,7 +39582,7 @@ "x-appwrite": { "method": "listRowLogs", "group": "logs", - "weight": 434, + "weight": 435, "cookies": false, "type": "", "demo": "tablesdb\/list-row-logs.md", @@ -39540,7 +39678,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -39663,7 +39801,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -39786,7 +39924,7 @@ "x-appwrite": { "method": "getTableUsage", "group": null, - "weight": 391, + "weight": 392, "cookies": false, "type": "", "demo": "tablesdb\/get-table-usage.md", @@ -39881,7 +40019,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 383, + "weight": 384, "cookies": false, "type": "", "demo": "tablesdb\/get-usage.md", @@ -41093,7 +41231,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -41176,7 +41314,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -41265,7 +41403,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -41325,7 +41463,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -41395,7 +41533,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/open-api3-1.8.x-server.json b/app/config/specs/open-api3-1.8.x-server.json index 49adaeeefa..b29d214eff 100644 --- a/app/config/specs/open-api3-1.8.x-server.json +++ b/app/config/specs/open-api3-1.8.x-server.json @@ -4653,7 +4653,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -4759,7 +4759,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -4875,7 +4875,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -4942,7 +4942,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5012,7 +5012,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5076,7 +5076,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5154,7 +5154,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5220,7 +5220,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5305,7 +5305,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5398,7 +5398,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -5511,7 +5511,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -5605,7 +5605,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -5693,7 +5693,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -5802,7 +5802,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -5876,7 +5876,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -5980,7 +5980,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6056,7 +6056,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6145,7 +6145,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6256,7 +6256,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6372,7 +6372,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -6483,7 +6483,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -6599,7 +6599,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -6710,7 +6710,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -6826,7 +6826,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -6946,7 +6946,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7071,7 +7071,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7192,7 +7192,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7318,7 +7318,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7439,7 +7439,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -7565,7 +7565,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -7676,7 +7676,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -7792,7 +7792,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -7906,7 +7906,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8028,7 +8028,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8142,7 +8142,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8264,7 +8264,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8378,7 +8378,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -8500,7 +8500,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -8636,7 +8636,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -8758,7 +8758,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -8879,7 +8879,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -8990,7 +8990,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9137,7 +9137,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9213,7 +9213,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9298,7 +9298,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9411,7 +9411,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -9512,7 +9512,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -9701,7 +9701,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -9837,7 +9837,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -9941,7 +9941,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10042,7 +10042,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10153,7 +10153,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10310,7 +10310,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10420,7 +10420,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -10526,7 +10526,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -10652,7 +10652,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -10778,7 +10778,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -10865,7 +10865,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -10999,7 +10999,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11075,7 +11075,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11160,7 +11160,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -11234,7 +11234,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -11468,7 +11468,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -11518,7 +11518,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -11569,7 +11569,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -11629,7 +11629,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -11860,7 +11860,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -11922,7 +11922,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -12003,7 +12003,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -12087,7 +12087,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -12184,7 +12184,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -12270,7 +12270,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -12374,7 +12374,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -12472,7 +12472,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -12535,7 +12535,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -12600,7 +12600,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -12691,7 +12691,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -12763,7 +12763,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -12840,7 +12840,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -12958,7 +12958,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -13025,7 +13025,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -13097,7 +13097,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -13157,7 +13157,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -13249,7 +13249,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -13319,7 +13319,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -13411,7 +13411,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -15340,7 +15340,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -15417,7 +15417,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -15562,7 +15562,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -15709,7 +15709,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -15884,7 +15884,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -16063,7 +16063,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -16243,7 +16243,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -16424,7 +16424,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -16478,7 +16478,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -16541,7 +16541,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -16617,7 +16617,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -16693,7 +16693,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -16770,7 +16770,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -16948,7 +16948,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -17127,7 +17127,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -17277,7 +17277,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -17428,7 +17428,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -17544,7 +17544,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -17663,7 +17663,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -17759,7 +17759,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -17858,7 +17858,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -17964,7 +17964,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -18073,7 +18073,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -18303,7 +18303,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -18531,7 +18531,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -18627,7 +18627,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -18726,7 +18726,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -18822,7 +18822,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -18921,7 +18921,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -19017,7 +19017,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -19116,7 +19116,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -19212,7 +19212,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -19311,7 +19311,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -19365,7 +19365,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -19428,7 +19428,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -19504,7 +19504,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -19580,7 +19580,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -19655,7 +19655,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -19739,7 +19739,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -19800,7 +19800,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -19878,7 +19878,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -19941,7 +19941,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -20017,7 +20017,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -20102,7 +20102,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -20194,7 +20194,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -20258,7 +20258,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -20335,7 +20335,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -20409,7 +20409,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -20659,7 +20659,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -20709,7 +20709,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -20760,7 +20760,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -20820,7 +20820,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -21066,7 +21066,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -21128,7 +21128,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -21209,7 +21209,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -21293,7 +21293,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -21395,7 +21395,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -21476,7 +21476,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -21580,7 +21580,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -21679,7 +21679,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -21742,7 +21742,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -21807,7 +21807,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -21898,7 +21898,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -21970,7 +21970,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -22045,7 +22045,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -22108,7 +22108,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -22180,7 +22180,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -22240,7 +22240,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -22332,7 +22332,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -22402,7 +22402,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -22494,7 +22494,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -23834,7 +23834,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -23908,7 +23908,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -23988,7 +23988,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -23996,7 +23996,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -24055,7 +24058,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -24063,7 +24066,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24125,7 +24131,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -24133,7 +24139,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -24189,7 +24198,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -24197,7 +24206,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24267,7 +24279,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -24275,7 +24287,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24333,7 +24348,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -24341,7 +24356,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24418,7 +24436,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -24478,7 +24496,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -24555,7 +24573,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -24617,7 +24635,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -24704,7 +24722,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -24812,7 +24830,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -24885,7 +24903,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -24988,7 +25006,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -25063,7 +25081,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -25151,7 +25169,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -25261,7 +25279,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -25376,7 +25394,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -25486,7 +25504,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -25601,7 +25619,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -25711,7 +25729,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -25826,7 +25844,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -25945,7 +25963,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -26069,7 +26087,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -26189,7 +26207,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -26314,7 +26332,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -26434,7 +26452,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -26559,7 +26577,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -26669,7 +26687,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -26784,7 +26802,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -26897,7 +26915,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -27018,7 +27036,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -27131,7 +27149,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -27252,7 +27270,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -27365,7 +27383,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -27486,7 +27504,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -27621,7 +27639,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -27742,7 +27760,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -27862,7 +27880,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -27972,7 +27990,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -28118,7 +28136,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -28193,7 +28211,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -28277,7 +28295,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -28389,7 +28407,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -28475,7 +28493,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -28608,7 +28626,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -28683,7 +28701,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -28767,7 +28785,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -28867,7 +28885,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -29047,7 +29065,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -29178,7 +29196,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -29281,7 +29299,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -29381,7 +29399,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -29491,7 +29509,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -29639,7 +29657,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -29748,7 +29766,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -29853,7 +29871,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -29978,7 +29996,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -31158,7 +31176,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -31242,7 +31260,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -31332,7 +31350,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -31393,7 +31411,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -31464,7 +31482,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index b6a6a1afe3..8a0aecb2a3 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -4934,7 +4934,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -4999,7 +4999,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5067,7 +5067,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5129,7 +5129,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5205,7 +5205,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5269,7 +5269,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5352,7 +5352,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -5451,7 +5451,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -5607,7 +5607,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -5716,7 +5716,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -5870,7 +5870,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -5978,7 +5978,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -6082,7 +6082,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -6206,7 +6206,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -6330,7 +6330,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -6405,7 +6405,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -6521,7 +6521,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -7115,7 +7115,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -7198,7 +7198,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -8076,7 +8076,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -8084,7 +8084,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -8141,7 +8144,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -8149,7 +8152,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8209,7 +8215,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -8217,7 +8223,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -8271,7 +8280,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -8279,7 +8288,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8347,7 +8359,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -8355,7 +8367,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8411,7 +8426,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -8419,7 +8434,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -8494,7 +8512,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -8592,7 +8610,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -8743,7 +8761,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -8851,7 +8869,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -8996,7 +9014,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -9103,7 +9121,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -9206,7 +9224,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -9329,7 +9347,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index c086fe03d0..35eab0c964 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -4992,7 +4992,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 508, + "weight": 509, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -5115,7 +5115,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -5219,7 +5219,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5333,7 +5333,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5398,7 +5398,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5466,7 +5466,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5528,7 +5528,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5604,7 +5604,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5668,7 +5668,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5751,7 +5751,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 319, + "weight": 320, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -5853,7 +5853,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5944,7 +5944,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -6055,7 +6055,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -6147,7 +6147,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -6234,7 +6234,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -6342,7 +6342,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6415,7 +6415,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6518,7 +6518,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6593,7 +6593,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6681,7 +6681,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6791,7 +6791,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6906,7 +6906,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -7016,7 +7016,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -7131,7 +7131,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -7241,7 +7241,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -7356,7 +7356,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7475,7 +7475,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7599,7 +7599,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7719,7 +7719,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7844,7 +7844,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7964,7 +7964,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -8089,7 +8089,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -8199,7 +8199,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -8314,7 +8314,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8427,7 +8427,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8548,7 +8548,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8661,7 +8661,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8782,7 +8782,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8895,7 +8895,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -9016,7 +9016,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -9151,7 +9151,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -9272,7 +9272,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -9392,7 +9392,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9502,7 +9502,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9648,7 +9648,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9723,7 +9723,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9807,7 +9807,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9919,7 +9919,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -10018,7 +10018,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -10203,7 +10203,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -10337,7 +10337,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -10440,7 +10440,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10540,7 +10540,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10649,7 +10649,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10803,7 +10803,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10911,7 +10911,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -11015,7 +11015,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -11112,7 +11112,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -11236,7 +11236,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -11360,7 +11360,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -11446,7 +11446,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11579,7 +11579,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11654,7 +11654,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11738,7 +11738,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -11825,7 +11825,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 326, + "weight": 327, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -11921,7 +11921,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -12027,7 +12027,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 318, + "weight": 319, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -12142,7 +12142,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -12215,7 +12215,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -12448,7 +12448,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -12497,7 +12497,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -12547,7 +12547,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 478, + "weight": 479, "cookies": false, "type": "", "demo": "functions\/list-templates.md", @@ -12647,7 +12647,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 477, + "weight": 478, "cookies": false, "type": "", "demo": "functions\/get-template.md", @@ -12707,7 +12707,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 471, + "weight": 472, "cookies": false, "type": "", "demo": "functions\/list-usage.md", @@ -12779,7 +12779,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -12838,7 +12838,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -13068,7 +13068,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -13129,7 +13129,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -13209,7 +13209,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -13292,7 +13292,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -13388,7 +13388,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -13473,7 +13473,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -13576,7 +13576,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -13673,7 +13673,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -13735,7 +13735,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -13799,7 +13799,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -13889,7 +13889,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -13960,7 +13960,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -14035,7 +14035,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -14151,7 +14151,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -14216,7 +14216,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -14287,7 +14287,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 470, + "weight": 471, "cookies": false, "type": "", "demo": "functions\/get-usage.md", @@ -14369,7 +14369,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -14428,7 +14428,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -14519,7 +14519,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -14588,7 +14588,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -14679,7 +14679,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -16565,7 +16565,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -16641,7 +16641,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -16785,7 +16785,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -16931,7 +16931,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -17105,7 +17105,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -17283,7 +17283,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -17460,7 +17460,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -17638,7 +17638,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -17691,7 +17691,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -17753,7 +17753,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -17828,7 +17828,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -17903,7 +17903,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -17979,7 +17979,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -18154,7 +18154,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -18330,7 +18330,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -18477,7 +18477,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -18625,7 +18625,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -18740,7 +18740,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -18858,7 +18858,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -18953,7 +18953,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -19051,7 +19051,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -19156,7 +19156,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -19264,7 +19264,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -19491,7 +19491,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -19716,7 +19716,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -19811,7 +19811,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -19909,7 +19909,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -20004,7 +20004,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -20102,7 +20102,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -20197,7 +20197,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -20295,7 +20295,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -20390,7 +20390,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -20488,7 +20488,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -20541,7 +20541,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -20603,7 +20603,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -20678,7 +20678,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -20753,7 +20753,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -20827,7 +20827,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -20910,7 +20910,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -20970,7 +20970,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -21047,7 +21047,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -21109,7 +21109,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -21184,7 +21184,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -21268,7 +21268,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -21358,7 +21358,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -21421,7 +21421,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -21496,7 +21496,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 258, + "weight": 259, "cookies": false, "type": "", "demo": "migrations\/list.md", @@ -21658,7 +21658,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 260, + "weight": 261, "cookies": false, "type": "", "demo": "migrations\/get-appwrite-report.md", @@ -21727,10 +21727,130 @@ ] } }, - "\/migrations\/csv": { + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "tags": [ + "migrations" + ], + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCSVExport", + "group": null, + "weight": 258, + "cookies": false, + "type": "", + "demo": "migrations\/create-csv-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "x-example": "" + }, + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID where the exported CSV will be stored.", + "x-example": "" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "x-example": "" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma \",\".", + "x-example": "" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes '\"'.", + "x-example": "" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "x-example": "" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "x-example": false + } + }, + "required": [ + "resourceId", + "bucketId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/csv\/imports": { "post": { "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCsvMigration", + "operationId": "migrationsCreateCSVImport", "tags": [ "migrations" ], @@ -21749,13 +21869,13 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCsvMigration", + "method": "createCSVImport", "group": null, "weight": 257, "cookies": false, "type": "", - "demo": "migrations\/create-csv-migration.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "demo": "migrations\/create-csv-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21911,7 +22031,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 261, + "weight": 262, "cookies": false, "type": "", "demo": "migrations\/get-firebase-report.md", @@ -22094,7 +22214,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 263, + "weight": 264, "cookies": false, "type": "", "demo": "migrations\/get-n-host-report.md", @@ -22332,7 +22452,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 262, + "weight": 263, "cookies": false, "type": "", "demo": "migrations\/get-supabase-report.md", @@ -22456,7 +22576,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 259, + "weight": 260, "cookies": false, "type": "", "demo": "migrations\/get.md", @@ -22514,7 +22634,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 264, + "weight": 265, "cookies": false, "type": "", "demo": "migrations\/retry.md", @@ -22565,7 +22685,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 265, + "weight": 266, "cookies": false, "type": "", "demo": "migrations\/delete.md", @@ -23035,7 +23155,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 448, + "weight": 449, "cookies": false, "type": "", "demo": "projects\/list.md", @@ -24670,7 +24790,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 446, + "weight": 447, "cookies": false, "type": "", "demo": "projects\/list-dev-keys.md", @@ -24741,7 +24861,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 443, + "weight": 444, "cookies": false, "type": "", "demo": "projects\/create-dev-key.md", @@ -24826,7 +24946,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 445, + "weight": 446, "cookies": false, "type": "", "demo": "projects\/get-dev-key.md", @@ -24894,7 +25014,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 444, + "weight": 445, "cookies": false, "type": "", "demo": "projects\/update-dev-key.md", @@ -24980,7 +25100,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 447, + "weight": 448, "cookies": false, "type": "", "demo": "projects\/delete-dev-key.md", @@ -28814,7 +28934,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 514, + "weight": 515, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -28888,7 +29008,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 509, + "weight": 510, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -28955,7 +29075,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 511, + "weight": 512, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -29033,7 +29153,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 512, + "weight": 513, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -29146,7 +29266,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 510, + "weight": 511, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -29224,7 +29344,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 513, + "weight": 514, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -29275,7 +29395,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 515, + "weight": 516, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -29335,7 +29455,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 516, + "weight": 517, "cookies": false, "type": "", "demo": "proxy\/update-rule-verification.md", @@ -29395,7 +29515,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -29468,7 +29588,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -29717,7 +29837,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -29766,7 +29886,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -29816,7 +29936,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 503, + "weight": 504, "cookies": false, "type": "", "demo": "sites\/list-templates.md", @@ -29916,7 +30036,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 504, + "weight": 505, "cookies": false, "type": "", "demo": "sites\/get-template.md", @@ -29976,7 +30096,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 505, + "weight": 506, "cookies": false, "type": "", "demo": "sites\/list-usage.md", @@ -30048,7 +30168,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -30107,7 +30227,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -30352,7 +30472,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -30413,7 +30533,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -30493,7 +30613,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -30576,7 +30696,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -30677,7 +30797,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -30757,7 +30877,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -30860,7 +30980,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -30958,7 +31078,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -31020,7 +31140,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -31084,7 +31204,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -31174,7 +31294,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -31245,7 +31365,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -31319,7 +31439,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -31381,7 +31501,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -31452,7 +31572,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 506, + "weight": 507, "cookies": false, "type": "", "demo": "sites\/get-usage.md", @@ -31534,7 +31654,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -31593,7 +31713,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -31684,7 +31804,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -31753,7 +31873,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -31844,7 +31964,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -33316,7 +33436,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -33389,7 +33509,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -33468,7 +33588,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -33476,7 +33596,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -33533,7 +33656,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -33541,7 +33664,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33601,7 +33727,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -33609,7 +33735,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -33663,7 +33792,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -33671,7 +33800,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33739,7 +33871,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -33747,7 +33879,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33803,7 +33938,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -33811,7 +33946,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -33886,7 +34024,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 384, + "weight": 385, "cookies": false, "type": "", "demo": "tablesdb\/list-usage.md", @@ -33983,7 +34121,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -34042,7 +34180,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -34118,7 +34256,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -34179,7 +34317,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -34265,7 +34403,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -34372,7 +34510,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -34444,7 +34582,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -34546,7 +34684,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -34620,7 +34758,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -34707,7 +34845,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -34816,7 +34954,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -34930,7 +35068,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -35039,7 +35177,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -35153,7 +35291,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -35262,7 +35400,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -35376,7 +35514,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -35494,7 +35632,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -35617,7 +35755,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -35736,7 +35874,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -35860,7 +35998,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -35979,7 +36117,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -36103,7 +36241,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -36212,7 +36350,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -36326,7 +36464,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -36438,7 +36576,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -36558,7 +36696,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -36670,7 +36808,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -36790,7 +36928,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -36902,7 +37040,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -37022,7 +37160,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -37156,7 +37294,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -37276,7 +37414,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -37395,7 +37533,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -37504,7 +37642,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -37649,7 +37787,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -37723,7 +37861,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -37806,7 +37944,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -37917,7 +38055,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -38002,7 +38140,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -38134,7 +38272,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -38208,7 +38346,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -38291,7 +38429,7 @@ "x-appwrite": { "method": "listTableLogs", "group": "tables", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "demo": "tablesdb\/list-table-logs.md", @@ -38377,7 +38515,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -38475,7 +38613,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -38651,7 +38789,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -38780,7 +38918,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -38882,7 +39020,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -38981,7 +39119,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -39089,7 +39227,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -39234,7 +39372,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -39341,7 +39479,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -39444,7 +39582,7 @@ "x-appwrite": { "method": "listRowLogs", "group": "logs", - "weight": 434, + "weight": 435, "cookies": false, "type": "", "demo": "tablesdb\/list-row-logs.md", @@ -39540,7 +39678,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -39663,7 +39801,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -39786,7 +39924,7 @@ "x-appwrite": { "method": "getTableUsage", "group": null, - "weight": 391, + "weight": 392, "cookies": false, "type": "", "demo": "tablesdb\/get-table-usage.md", @@ -39881,7 +40019,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 383, + "weight": 384, "cookies": false, "type": "", "demo": "tablesdb\/get-usage.md", @@ -41093,7 +41231,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -41176,7 +41314,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -41265,7 +41403,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -41325,7 +41463,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -41395,7 +41533,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index 49adaeeefa..b29d214eff 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -4653,7 +4653,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -4759,7 +4759,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -4875,7 +4875,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -4942,7 +4942,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5012,7 +5012,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5076,7 +5076,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5154,7 +5154,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5220,7 +5220,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5305,7 +5305,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5398,7 +5398,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -5511,7 +5511,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -5605,7 +5605,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -5693,7 +5693,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -5802,7 +5802,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -5876,7 +5876,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -5980,7 +5980,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6056,7 +6056,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6145,7 +6145,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6256,7 +6256,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6372,7 +6372,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -6483,7 +6483,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -6599,7 +6599,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -6710,7 +6710,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -6826,7 +6826,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -6946,7 +6946,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7071,7 +7071,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7192,7 +7192,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7318,7 +7318,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7439,7 +7439,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -7565,7 +7565,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -7676,7 +7676,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -7792,7 +7792,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -7906,7 +7906,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8028,7 +8028,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8142,7 +8142,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8264,7 +8264,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8378,7 +8378,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -8500,7 +8500,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -8636,7 +8636,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -8758,7 +8758,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -8879,7 +8879,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -8990,7 +8990,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9137,7 +9137,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9213,7 +9213,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9298,7 +9298,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9411,7 +9411,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -9512,7 +9512,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -9701,7 +9701,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -9837,7 +9837,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -9941,7 +9941,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10042,7 +10042,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10153,7 +10153,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10310,7 +10310,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10420,7 +10420,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -10526,7 +10526,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -10652,7 +10652,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -10778,7 +10778,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -10865,7 +10865,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -10999,7 +10999,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11075,7 +11075,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11160,7 +11160,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -11234,7 +11234,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -11468,7 +11468,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -11518,7 +11518,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -11569,7 +11569,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -11629,7 +11629,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -11860,7 +11860,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -11922,7 +11922,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -12003,7 +12003,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -12087,7 +12087,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -12184,7 +12184,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -12270,7 +12270,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -12374,7 +12374,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -12472,7 +12472,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -12535,7 +12535,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -12600,7 +12600,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -12691,7 +12691,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -12763,7 +12763,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -12840,7 +12840,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -12958,7 +12958,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -13025,7 +13025,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -13097,7 +13097,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -13157,7 +13157,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -13249,7 +13249,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -13319,7 +13319,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -13411,7 +13411,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -15340,7 +15340,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -15417,7 +15417,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -15562,7 +15562,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -15709,7 +15709,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -15884,7 +15884,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -16063,7 +16063,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -16243,7 +16243,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -16424,7 +16424,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -16478,7 +16478,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -16541,7 +16541,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -16617,7 +16617,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -16693,7 +16693,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -16770,7 +16770,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -16948,7 +16948,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -17127,7 +17127,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -17277,7 +17277,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -17428,7 +17428,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -17544,7 +17544,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -17663,7 +17663,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -17759,7 +17759,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -17858,7 +17858,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -17964,7 +17964,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -18073,7 +18073,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -18303,7 +18303,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -18531,7 +18531,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -18627,7 +18627,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -18726,7 +18726,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -18822,7 +18822,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -18921,7 +18921,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -19017,7 +19017,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -19116,7 +19116,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -19212,7 +19212,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -19311,7 +19311,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -19365,7 +19365,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -19428,7 +19428,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -19504,7 +19504,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -19580,7 +19580,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -19655,7 +19655,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -19739,7 +19739,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -19800,7 +19800,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -19878,7 +19878,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -19941,7 +19941,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -20017,7 +20017,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -20102,7 +20102,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -20194,7 +20194,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -20258,7 +20258,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -20335,7 +20335,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -20409,7 +20409,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -20659,7 +20659,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -20709,7 +20709,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -20760,7 +20760,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -20820,7 +20820,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -21066,7 +21066,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -21128,7 +21128,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -21209,7 +21209,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -21293,7 +21293,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -21395,7 +21395,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -21476,7 +21476,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -21580,7 +21580,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -21679,7 +21679,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -21742,7 +21742,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -21807,7 +21807,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -21898,7 +21898,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -21970,7 +21970,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -22045,7 +22045,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -22108,7 +22108,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -22180,7 +22180,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -22240,7 +22240,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -22332,7 +22332,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -22402,7 +22402,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -22494,7 +22494,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -23834,7 +23834,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -23908,7 +23908,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -23988,7 +23988,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -23996,7 +23996,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -24055,7 +24058,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -24063,7 +24066,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24125,7 +24131,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -24133,7 +24139,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client", @@ -24189,7 +24198,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -24197,7 +24206,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24267,7 +24279,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -24275,7 +24287,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24333,7 +24348,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -24341,7 +24356,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client", @@ -24418,7 +24436,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -24478,7 +24496,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -24555,7 +24573,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -24617,7 +24635,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -24704,7 +24722,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -24812,7 +24830,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -24885,7 +24903,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -24988,7 +25006,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -25063,7 +25081,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -25151,7 +25169,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -25261,7 +25279,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -25376,7 +25394,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -25486,7 +25504,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -25601,7 +25619,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -25711,7 +25729,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -25826,7 +25844,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -25945,7 +25963,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -26069,7 +26087,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -26189,7 +26207,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -26314,7 +26332,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -26434,7 +26452,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -26559,7 +26577,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -26669,7 +26687,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -26784,7 +26802,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -26897,7 +26915,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -27018,7 +27036,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -27131,7 +27149,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -27252,7 +27270,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -27365,7 +27383,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -27486,7 +27504,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -27621,7 +27639,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -27742,7 +27760,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -27862,7 +27880,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -27972,7 +27990,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -28118,7 +28136,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -28193,7 +28211,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -28277,7 +28295,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -28389,7 +28407,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -28475,7 +28493,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -28608,7 +28626,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -28683,7 +28701,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -28767,7 +28785,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -28867,7 +28885,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -29047,7 +29065,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -29178,7 +29196,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -29281,7 +29299,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -29381,7 +29399,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -29491,7 +29509,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -29639,7 +29657,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -29748,7 +29766,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -29853,7 +29871,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -29978,7 +29996,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -31158,7 +31176,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -31242,7 +31260,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -31332,7 +31350,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -31393,7 +31411,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -31464,7 +31482,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/swagger2-1.8.x-client.json b/app/config/specs/swagger2-1.8.x-client.json index 89fc5e7e5c..7d4cb22dd4 100644 --- a/app/config/specs/swagger2-1.8.x-client.json +++ b/app/config/specs/swagger2-1.8.x-client.json @@ -5076,7 +5076,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5141,7 +5141,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5209,7 +5209,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5270,7 +5270,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5347,7 +5347,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5410,7 +5410,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5489,7 +5489,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -5582,7 +5582,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -5736,7 +5736,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -5837,7 +5837,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -5987,7 +5987,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -6093,7 +6093,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -6191,7 +6191,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -6309,7 +6309,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -6425,7 +6425,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -6498,7 +6498,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -6615,7 +6615,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -7240,7 +7240,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -7324,7 +7324,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -8153,7 +8153,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -8161,7 +8161,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -8218,7 +8221,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -8226,7 +8229,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8286,7 +8292,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -8294,7 +8300,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -8347,7 +8356,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -8355,7 +8364,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8424,7 +8436,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -8432,7 +8444,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8487,7 +8502,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -8495,7 +8510,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8566,7 +8584,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -8658,7 +8676,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -8807,7 +8825,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -8907,7 +8925,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -9048,7 +9066,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -9153,7 +9171,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -9250,7 +9268,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -9367,7 +9385,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", diff --git a/app/config/specs/swagger2-1.8.x-console.json b/app/config/specs/swagger2-1.8.x-console.json index 098f138b30..d7d48b9241 100644 --- a/app/config/specs/swagger2-1.8.x-console.json +++ b/app/config/specs/swagger2-1.8.x-console.json @@ -5156,7 +5156,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 508, + "weight": 509, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -5275,7 +5275,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -5378,7 +5378,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5495,7 +5495,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5560,7 +5560,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5628,7 +5628,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5689,7 +5689,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5766,7 +5766,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5829,7 +5829,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5908,7 +5908,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 319, + "weight": 320, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -6008,7 +6008,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -6099,7 +6099,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -6212,7 +6212,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -6302,7 +6302,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -6386,7 +6386,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -6495,7 +6495,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6566,7 +6566,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6671,7 +6671,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6742,7 +6742,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6827,7 +6827,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6937,7 +6937,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -7049,7 +7049,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -7159,7 +7159,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -7271,7 +7271,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -7381,7 +7381,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -7493,7 +7493,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7613,7 +7613,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7735,7 +7735,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7857,7 +7857,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7981,7 +7981,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -8103,7 +8103,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -8227,7 +8227,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -8337,7 +8337,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -8449,7 +8449,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8554,7 +8554,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8665,7 +8665,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8770,7 +8770,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8881,7 +8881,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8986,7 +8986,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -9097,7 +9097,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -9234,7 +9234,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -9357,7 +9357,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -9475,7 +9475,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9585,7 +9585,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9726,7 +9726,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9799,7 +9799,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9879,7 +9879,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9985,7 +9985,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -10078,7 +10078,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -10263,7 +10263,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -10395,7 +10395,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -10497,7 +10497,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10593,7 +10593,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10694,7 +10694,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10844,7 +10844,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10950,7 +10950,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -11046,7 +11046,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -11138,7 +11138,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -11256,7 +11256,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -11372,7 +11372,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -11455,7 +11455,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11587,7 +11587,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11660,7 +11660,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11738,7 +11738,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -11820,7 +11820,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 326, + "weight": 327, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -11910,7 +11910,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -12013,7 +12013,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 318, + "weight": 319, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -12124,7 +12124,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -12196,7 +12196,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -12447,7 +12447,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -12496,7 +12496,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -12546,7 +12546,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 478, + "weight": 479, "cookies": false, "type": "", "demo": "functions\/list-templates.md", @@ -12640,7 +12640,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 477, + "weight": 478, "cookies": false, "type": "", "demo": "functions\/get-template.md", @@ -12698,7 +12698,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 471, + "weight": 472, "cookies": false, "type": "", "demo": "functions\/list-usage.md", @@ -12768,7 +12768,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -12827,7 +12827,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -13074,7 +13074,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -13135,7 +13135,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -13212,7 +13212,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -13292,7 +13292,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -13384,7 +13384,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -13469,7 +13469,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -13575,7 +13575,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -13671,7 +13671,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -13733,7 +13733,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -13800,7 +13800,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -13885,7 +13885,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -13952,7 +13952,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -14025,7 +14025,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -14142,7 +14142,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -14206,7 +14206,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -14273,7 +14273,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 470, + "weight": 471, "cookies": false, "type": "", "demo": "functions\/get-usage.md", @@ -14351,7 +14351,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -14410,7 +14410,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -14500,7 +14500,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -14567,7 +14567,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -14659,7 +14659,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -16543,7 +16543,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -16618,7 +16618,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -16776,7 +16776,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -16931,7 +16931,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -17126,7 +17126,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -17320,7 +17320,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -17506,7 +17506,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -17686,7 +17686,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -17741,7 +17741,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -17801,7 +17801,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -17873,7 +17873,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -17945,7 +17945,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -18020,7 +18020,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -18205,7 +18205,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -18386,7 +18386,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -18539,7 +18539,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -18688,7 +18688,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -18815,7 +18815,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -18940,7 +18940,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -19043,7 +19043,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -19144,7 +19144,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -19259,7 +19259,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -19372,7 +19372,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -19615,7 +19615,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -19851,7 +19851,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -19954,7 +19954,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -20055,7 +20055,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -20158,7 +20158,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -20259,7 +20259,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -20362,7 +20362,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -20463,7 +20463,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -20566,7 +20566,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -20665,7 +20665,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -20720,7 +20720,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -20780,7 +20780,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -20852,7 +20852,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -20924,7 +20924,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -20997,7 +20997,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -21085,7 +21085,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -21145,7 +21145,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -21224,7 +21224,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -21284,7 +21284,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -21356,7 +21356,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -21437,7 +21437,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -21524,7 +21524,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -21587,7 +21587,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -21657,7 +21657,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 258, + "weight": 259, "cookies": false, "type": "", "demo": "migrations\/list.md", @@ -21822,7 +21822,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 260, + "weight": 261, "cookies": false, "type": "", "demo": "migrations\/get-appwrite-report.md", @@ -21884,10 +21884,142 @@ ] } }, - "\/migrations\/csv": { + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "migrations" + ], + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "schema": { + "$ref": "#\/definitions\/migration" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCSVExport", + "group": null, + "weight": 258, + "cookies": false, + "type": "", + "demo": "migrations\/create-csv-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "default": null, + "x-example": "" + }, + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID where the exported CSV will be stored.", + "default": null, + "x-example": "" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "default": null, + "x-example": "" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma \",\".", + "default": ",", + "x-example": "" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes '\"'.", + "default": "\"", + "x-example": "" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "default": "\\", + "x-example": "" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "default": true, + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "default": true, + "x-example": false + } + }, + "required": [ + "resourceId", + "bucketId", + "filename" + ] + } + } + ] + } + }, + "\/migrations\/csv\/imports": { "post": { "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCsvMigration", + "operationId": "migrationsCreateCSVImport", "consumes": [ "application\/json" ], @@ -21908,13 +22040,13 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCsvMigration", + "method": "createCSVImport", "group": null, "weight": 257, "cookies": false, "type": "", - "demo": "migrations\/create-csv-migration.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "demo": "migrations\/create-csv-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -22078,7 +22210,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 261, + "weight": 262, "cookies": false, "type": "", "demo": "migrations\/get-firebase-report.md", @@ -22268,7 +22400,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 263, + "weight": 264, "cookies": false, "type": "", "demo": "migrations\/get-n-host-report.md", @@ -22500,7 +22632,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 262, + "weight": 263, "cookies": false, "type": "", "demo": "migrations\/get-supabase-report.md", @@ -22611,7 +22743,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 259, + "weight": 260, "cookies": false, "type": "", "demo": "migrations\/get.md", @@ -22669,7 +22801,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 264, + "weight": 265, "cookies": false, "type": "", "demo": "migrations\/retry.md", @@ -22722,7 +22854,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 265, + "weight": 266, "cookies": false, "type": "", "demo": "migrations\/delete.md", @@ -23190,7 +23322,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 448, + "weight": 449, "cookies": false, "type": "", "demo": "projects\/list.md", @@ -24833,7 +24965,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 446, + "weight": 447, "cookies": false, "type": "", "demo": "projects\/list-dev-keys.md", @@ -24903,7 +25035,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 443, + "weight": 444, "cookies": false, "type": "", "demo": "projects\/create-dev-key.md", @@ -24986,7 +25118,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 445, + "weight": 446, "cookies": false, "type": "", "demo": "projects\/get-dev-key.md", @@ -25052,7 +25184,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 444, + "weight": 445, "cookies": false, "type": "", "demo": "projects\/update-dev-key.md", @@ -25138,7 +25270,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 447, + "weight": 448, "cookies": false, "type": "", "demo": "projects\/delete-dev-key.md", @@ -28951,7 +29083,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 514, + "weight": 515, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -29024,7 +29156,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 509, + "weight": 510, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -29094,7 +29226,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 511, + "weight": 512, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -29177,7 +29309,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 512, + "weight": 513, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -29297,7 +29429,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 510, + "weight": 511, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -29378,7 +29510,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 513, + "weight": 514, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -29431,7 +29563,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 515, + "weight": 516, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -29491,7 +29623,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 516, + "weight": 517, "cookies": false, "type": "", "demo": "proxy\/update-rule-verification.md", @@ -29549,7 +29681,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -29621,7 +29753,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -29888,7 +30020,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -29937,7 +30069,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -29987,7 +30119,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 503, + "weight": 504, "cookies": false, "type": "", "demo": "sites\/list-templates.md", @@ -30081,7 +30213,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 504, + "weight": 505, "cookies": false, "type": "", "demo": "sites\/get-template.md", @@ -30139,7 +30271,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 505, + "weight": 506, "cookies": false, "type": "", "demo": "sites\/list-usage.md", @@ -30209,7 +30341,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -30268,7 +30400,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -30530,7 +30662,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -30591,7 +30723,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -30668,7 +30800,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -30748,7 +30880,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -30848,7 +30980,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -30927,7 +31059,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -31033,7 +31165,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -31130,7 +31262,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -31192,7 +31324,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -31259,7 +31391,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -31344,7 +31476,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -31411,7 +31543,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -31482,7 +31614,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -31546,7 +31678,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -31613,7 +31745,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 506, + "weight": 507, "cookies": false, "type": "", "demo": "sites\/get-usage.md", @@ -31691,7 +31823,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -31750,7 +31882,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -31840,7 +31972,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -31907,7 +32039,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -31999,7 +32131,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -33433,7 +33565,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -33505,7 +33637,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -33587,7 +33719,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -33595,7 +33727,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -33652,7 +33787,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -33660,7 +33795,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33720,7 +33858,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -33728,7 +33866,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -33781,7 +33922,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -33789,7 +33930,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33858,7 +34002,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -33866,7 +34010,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33921,7 +34068,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -33929,7 +34076,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -34000,7 +34150,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 384, + "weight": 385, "cookies": false, "type": "", "demo": "tablesdb\/list-usage.md", @@ -34095,7 +34245,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -34154,7 +34304,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -34232,7 +34382,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -34291,7 +34441,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -34374,7 +34524,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -34482,7 +34632,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -34552,7 +34702,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -34656,7 +34806,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -34726,7 +34876,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -34810,7 +34960,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -34919,7 +35069,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -35030,7 +35180,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -35139,7 +35289,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -35250,7 +35400,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -35359,7 +35509,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -35470,7 +35620,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -35589,7 +35739,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -35710,7 +35860,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -35831,7 +35981,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -35954,7 +36104,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -36075,7 +36225,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -36198,7 +36348,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -36307,7 +36457,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -36418,7 +36568,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -36522,7 +36672,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -36632,7 +36782,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -36736,7 +36886,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -36846,7 +36996,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -36950,7 +37100,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -37060,7 +37210,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -37196,7 +37346,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -37318,7 +37468,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -37435,7 +37585,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -37544,7 +37694,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -37684,7 +37834,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -37756,7 +37906,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -37835,7 +37985,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -37940,7 +38090,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -38022,7 +38172,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -38153,7 +38303,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -38225,7 +38375,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -38302,7 +38452,7 @@ "x-appwrite": { "method": "listTableLogs", "group": "tables", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "demo": "tablesdb\/list-table-logs.md", @@ -38383,7 +38533,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -38475,7 +38625,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -38651,7 +38801,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -38778,7 +38928,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -38879,7 +39029,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -38974,7 +39124,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -39074,7 +39224,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -39215,7 +39365,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -39320,7 +39470,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -39415,7 +39565,7 @@ "x-appwrite": { "method": "listRowLogs", "group": "logs", - "weight": 434, + "weight": 435, "cookies": false, "type": "", "demo": "tablesdb\/list-row-logs.md", @@ -39506,7 +39656,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -39623,7 +39773,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -39738,7 +39888,7 @@ "x-appwrite": { "method": "getTableUsage", "group": null, - "weight": 391, + "weight": 392, "cookies": false, "type": "", "demo": "tablesdb\/get-table-usage.md", @@ -39827,7 +39977,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 383, + "weight": 384, "cookies": false, "type": "", "demo": "tablesdb\/get-usage.md", @@ -41012,7 +41162,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -41092,7 +41242,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -41176,7 +41326,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -41236,7 +41386,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -41307,7 +41457,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/swagger2-1.8.x-server.json b/app/config/specs/swagger2-1.8.x-server.json index 9c8ef73243..6f10a09162 100644 --- a/app/config/specs/swagger2-1.8.x-server.json +++ b/app/config/specs/swagger2-1.8.x-server.json @@ -4801,7 +4801,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -4906,7 +4906,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5025,7 +5025,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5092,7 +5092,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5162,7 +5162,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5225,7 +5225,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5304,7 +5304,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5369,7 +5369,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5450,7 +5450,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5543,7 +5543,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -5658,7 +5658,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -5750,7 +5750,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -5835,7 +5835,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -5945,7 +5945,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6017,7 +6017,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6123,7 +6123,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6195,7 +6195,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6281,7 +6281,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6392,7 +6392,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6505,7 +6505,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -6616,7 +6616,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -6729,7 +6729,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -6840,7 +6840,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -6953,7 +6953,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7074,7 +7074,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7197,7 +7197,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7320,7 +7320,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7445,7 +7445,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7568,7 +7568,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -7693,7 +7693,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -7804,7 +7804,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -7917,7 +7917,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8023,7 +8023,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8135,7 +8135,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8241,7 +8241,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8353,7 +8353,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8459,7 +8459,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -8571,7 +8571,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -8709,7 +8709,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -8833,7 +8833,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -8952,7 +8952,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9063,7 +9063,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9205,7 +9205,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9279,7 +9279,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9360,7 +9360,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9467,7 +9467,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -9562,7 +9562,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -9751,7 +9751,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -9885,7 +9885,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -9988,7 +9988,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10085,7 +10085,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10188,7 +10188,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10341,7 +10341,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10449,7 +10449,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -10549,7 +10549,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -10669,7 +10669,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -10787,7 +10787,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -10871,7 +10871,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11004,7 +11004,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11078,7 +11078,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11157,7 +11157,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -11230,7 +11230,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -11482,7 +11482,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -11532,7 +11532,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -11583,7 +11583,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -11643,7 +11643,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -11891,7 +11891,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -11953,7 +11953,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -12031,7 +12031,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -12112,7 +12112,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -12205,7 +12205,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -12291,7 +12291,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -12398,7 +12398,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -12495,7 +12495,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -12558,7 +12558,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -12626,7 +12626,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -12712,7 +12712,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -12780,7 +12780,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -12855,7 +12855,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -12974,7 +12974,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -13040,7 +13040,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -13108,7 +13108,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -13168,7 +13168,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -13259,7 +13259,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -13327,7 +13327,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -13420,7 +13420,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -15347,7 +15347,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -15423,7 +15423,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -15582,7 +15582,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -15738,7 +15738,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -15934,7 +15934,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -16129,7 +16129,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -16318,7 +16318,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -16501,7 +16501,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -16557,7 +16557,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -16618,7 +16618,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -16691,7 +16691,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -16764,7 +16764,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -16840,7 +16840,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -17028,7 +17028,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -17212,7 +17212,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -17368,7 +17368,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -17520,7 +17520,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -17648,7 +17648,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -17774,7 +17774,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -17878,7 +17878,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -17980,7 +17980,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -18096,7 +18096,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -18210,7 +18210,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -18456,7 +18456,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -18695,7 +18695,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -18799,7 +18799,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -18901,7 +18901,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -19005,7 +19005,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -19107,7 +19107,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -19211,7 +19211,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -19313,7 +19313,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -19417,7 +19417,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -19517,7 +19517,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -19573,7 +19573,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -19634,7 +19634,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -19707,7 +19707,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -19780,7 +19780,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -19854,7 +19854,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -19943,7 +19943,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -20004,7 +20004,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -20084,7 +20084,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -20145,7 +20145,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -20218,7 +20218,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -20300,7 +20300,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -20389,7 +20389,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -20453,7 +20453,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -20525,7 +20525,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -20598,7 +20598,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -20866,7 +20866,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -20916,7 +20916,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -20967,7 +20967,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -21027,7 +21027,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -21290,7 +21290,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -21352,7 +21352,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -21430,7 +21430,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -21511,7 +21511,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -21612,7 +21612,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -21692,7 +21692,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -21799,7 +21799,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -21897,7 +21897,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -21960,7 +21960,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -22028,7 +22028,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -22114,7 +22114,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -22182,7 +22182,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -22254,7 +22254,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -22319,7 +22319,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -22387,7 +22387,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -22447,7 +22447,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -22538,7 +22538,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -22606,7 +22606,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -22699,7 +22699,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -24007,7 +24007,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -24080,7 +24080,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -24163,7 +24163,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -24171,7 +24171,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -24230,7 +24233,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -24238,7 +24241,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24300,7 +24306,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -24308,7 +24314,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -24363,7 +24372,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -24371,7 +24380,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24442,7 +24454,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -24450,7 +24462,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24507,7 +24522,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -24515,7 +24530,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24588,7 +24606,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -24648,7 +24666,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -24727,7 +24745,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -24787,7 +24805,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -24871,7 +24889,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -24980,7 +24998,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -25051,7 +25069,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -25156,7 +25174,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -25227,7 +25245,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -25312,7 +25330,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -25422,7 +25440,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -25534,7 +25552,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -25644,7 +25662,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -25756,7 +25774,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -25866,7 +25884,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -25978,7 +25996,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -26098,7 +26116,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -26220,7 +26238,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -26342,7 +26360,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -26466,7 +26484,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -26588,7 +26606,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -26712,7 +26730,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -26822,7 +26840,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -26934,7 +26952,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -27039,7 +27057,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -27150,7 +27168,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -27255,7 +27273,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -27366,7 +27384,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -27471,7 +27489,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -27582,7 +27600,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -27719,7 +27737,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -27842,7 +27860,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -27960,7 +27978,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -28070,7 +28088,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -28211,7 +28229,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -28284,7 +28302,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -28364,7 +28382,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -28470,7 +28488,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -28553,7 +28571,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -28685,7 +28703,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -28758,7 +28776,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -28836,7 +28854,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -28930,7 +28948,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -29110,7 +29128,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -29239,7 +29257,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -29341,7 +29359,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -29437,7 +29455,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -29539,7 +29557,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -29683,7 +29701,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -29790,7 +29808,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -29889,7 +29907,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -30008,7 +30026,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -31160,7 +31178,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -31241,7 +31259,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -31326,7 +31344,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -31387,7 +31405,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -31459,7 +31477,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index 89fc5e7e5c..7d4cb22dd4 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -5076,7 +5076,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5141,7 +5141,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5209,7 +5209,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5270,7 +5270,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5347,7 +5347,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5410,7 +5410,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5489,7 +5489,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -5582,7 +5582,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -5736,7 +5736,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -5837,7 +5837,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -5987,7 +5987,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -6093,7 +6093,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -6191,7 +6191,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -6309,7 +6309,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -6425,7 +6425,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -6498,7 +6498,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -6615,7 +6615,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -7240,7 +7240,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -7324,7 +7324,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -8153,7 +8153,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -8161,7 +8161,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -8218,7 +8221,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -8226,7 +8229,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8286,7 +8292,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -8294,7 +8300,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -8347,7 +8356,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -8355,7 +8364,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8424,7 +8436,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -8432,7 +8444,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8487,7 +8502,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -8495,7 +8510,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -8566,7 +8584,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -8658,7 +8676,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -8807,7 +8825,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -8907,7 +8925,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -9048,7 +9066,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -9153,7 +9171,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -9250,7 +9268,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -9367,7 +9385,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index 098f138b30..d7d48b9241 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -5156,7 +5156,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 508, + "weight": 509, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -5275,7 +5275,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -5378,7 +5378,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5495,7 +5495,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5560,7 +5560,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5628,7 +5628,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5689,7 +5689,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5766,7 +5766,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5829,7 +5829,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5908,7 +5908,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 319, + "weight": 320, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -6008,7 +6008,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -6099,7 +6099,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -6212,7 +6212,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -6302,7 +6302,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -6386,7 +6386,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -6495,7 +6495,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6566,7 +6566,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6671,7 +6671,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6742,7 +6742,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6827,7 +6827,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6937,7 +6937,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -7049,7 +7049,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -7159,7 +7159,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -7271,7 +7271,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -7381,7 +7381,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -7493,7 +7493,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7613,7 +7613,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7735,7 +7735,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7857,7 +7857,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7981,7 +7981,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -8103,7 +8103,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -8227,7 +8227,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -8337,7 +8337,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -8449,7 +8449,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8554,7 +8554,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8665,7 +8665,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8770,7 +8770,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8881,7 +8881,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8986,7 +8986,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -9097,7 +9097,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -9234,7 +9234,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -9357,7 +9357,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -9475,7 +9475,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9585,7 +9585,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9726,7 +9726,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9799,7 +9799,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9879,7 +9879,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9985,7 +9985,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -10078,7 +10078,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -10263,7 +10263,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -10395,7 +10395,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -10497,7 +10497,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10593,7 +10593,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10694,7 +10694,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10844,7 +10844,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10950,7 +10950,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -11046,7 +11046,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -11138,7 +11138,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -11256,7 +11256,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -11372,7 +11372,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -11455,7 +11455,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11587,7 +11587,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11660,7 +11660,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11738,7 +11738,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 325, + "weight": 326, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -11820,7 +11820,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 326, + "weight": 327, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -11910,7 +11910,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -12013,7 +12013,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 318, + "weight": 319, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -12124,7 +12124,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -12196,7 +12196,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -12447,7 +12447,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -12496,7 +12496,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -12546,7 +12546,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 478, + "weight": 479, "cookies": false, "type": "", "demo": "functions\/list-templates.md", @@ -12640,7 +12640,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 477, + "weight": 478, "cookies": false, "type": "", "demo": "functions\/get-template.md", @@ -12698,7 +12698,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 471, + "weight": 472, "cookies": false, "type": "", "demo": "functions\/list-usage.md", @@ -12768,7 +12768,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -12827,7 +12827,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -13074,7 +13074,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -13135,7 +13135,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -13212,7 +13212,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -13292,7 +13292,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -13384,7 +13384,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -13469,7 +13469,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -13575,7 +13575,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -13671,7 +13671,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -13733,7 +13733,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -13800,7 +13800,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -13885,7 +13885,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -13952,7 +13952,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -14025,7 +14025,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -14142,7 +14142,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -14206,7 +14206,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -14273,7 +14273,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 470, + "weight": 471, "cookies": false, "type": "", "demo": "functions\/get-usage.md", @@ -14351,7 +14351,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -14410,7 +14410,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -14500,7 +14500,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -14567,7 +14567,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -14659,7 +14659,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -16543,7 +16543,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -16618,7 +16618,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -16776,7 +16776,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -16931,7 +16931,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -17126,7 +17126,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -17320,7 +17320,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -17506,7 +17506,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -17686,7 +17686,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -17741,7 +17741,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -17801,7 +17801,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -17873,7 +17873,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -17945,7 +17945,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -18020,7 +18020,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -18205,7 +18205,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -18386,7 +18386,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -18539,7 +18539,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -18688,7 +18688,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -18815,7 +18815,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -18940,7 +18940,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -19043,7 +19043,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -19144,7 +19144,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -19259,7 +19259,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -19372,7 +19372,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -19615,7 +19615,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -19851,7 +19851,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -19954,7 +19954,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -20055,7 +20055,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -20158,7 +20158,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -20259,7 +20259,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -20362,7 +20362,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -20463,7 +20463,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -20566,7 +20566,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -20665,7 +20665,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -20720,7 +20720,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -20780,7 +20780,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -20852,7 +20852,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -20924,7 +20924,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -20997,7 +20997,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -21085,7 +21085,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -21145,7 +21145,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -21224,7 +21224,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -21284,7 +21284,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -21356,7 +21356,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -21437,7 +21437,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -21524,7 +21524,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -21587,7 +21587,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -21657,7 +21657,7 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 258, + "weight": 259, "cookies": false, "type": "", "demo": "migrations\/list.md", @@ -21822,7 +21822,7 @@ "x-appwrite": { "method": "getAppwriteReport", "group": null, - "weight": 260, + "weight": 261, "cookies": false, "type": "", "demo": "migrations\/get-appwrite-report.md", @@ -21884,10 +21884,142 @@ ] } }, - "\/migrations\/csv": { + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "migrations" + ], + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "schema": { + "$ref": "#\/definitions\/migration" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCSVExport", + "group": null, + "weight": 258, + "cookies": false, + "type": "", + "demo": "migrations\/create-csv-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "default": null, + "x-example": "" + }, + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID where the exported CSV will be stored.", + "default": null, + "x-example": "" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "default": null, + "x-example": "" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma \",\".", + "default": ",", + "x-example": "" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes '\"'.", + "default": "\"", + "x-example": "" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "default": "\\", + "x-example": "" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "default": true, + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "default": true, + "x-example": false + } + }, + "required": [ + "resourceId", + "bucketId", + "filename" + ] + } + } + ] + } + }, + "\/migrations\/csv\/imports": { "post": { "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCsvMigration", + "operationId": "migrationsCreateCSVImport", "consumes": [ "application\/json" ], @@ -21908,13 +22040,13 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCsvMigration", + "method": "createCSVImport", "group": null, "weight": 257, "cookies": false, "type": "", - "demo": "migrations\/create-csv-migration.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv.md", + "demo": "migrations\/create-csv-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -22078,7 +22210,7 @@ "x-appwrite": { "method": "getFirebaseReport", "group": null, - "weight": 261, + "weight": 262, "cookies": false, "type": "", "demo": "migrations\/get-firebase-report.md", @@ -22268,7 +22400,7 @@ "x-appwrite": { "method": "getNHostReport", "group": null, - "weight": 263, + "weight": 264, "cookies": false, "type": "", "demo": "migrations\/get-n-host-report.md", @@ -22500,7 +22632,7 @@ "x-appwrite": { "method": "getSupabaseReport", "group": null, - "weight": 262, + "weight": 263, "cookies": false, "type": "", "demo": "migrations\/get-supabase-report.md", @@ -22611,7 +22743,7 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 259, + "weight": 260, "cookies": false, "type": "", "demo": "migrations\/get.md", @@ -22669,7 +22801,7 @@ "x-appwrite": { "method": "retry", "group": null, - "weight": 264, + "weight": 265, "cookies": false, "type": "", "demo": "migrations\/retry.md", @@ -22722,7 +22854,7 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 265, + "weight": 266, "cookies": false, "type": "", "demo": "migrations\/delete.md", @@ -23190,7 +23322,7 @@ "x-appwrite": { "method": "list", "group": "projects", - "weight": 448, + "weight": 449, "cookies": false, "type": "", "demo": "projects\/list.md", @@ -24833,7 +24965,7 @@ "x-appwrite": { "method": "listDevKeys", "group": "devKeys", - "weight": 446, + "weight": 447, "cookies": false, "type": "", "demo": "projects\/list-dev-keys.md", @@ -24903,7 +25035,7 @@ "x-appwrite": { "method": "createDevKey", "group": "devKeys", - "weight": 443, + "weight": 444, "cookies": false, "type": "", "demo": "projects\/create-dev-key.md", @@ -24986,7 +25118,7 @@ "x-appwrite": { "method": "getDevKey", "group": "devKeys", - "weight": 445, + "weight": 446, "cookies": false, "type": "", "demo": "projects\/get-dev-key.md", @@ -25052,7 +25184,7 @@ "x-appwrite": { "method": "updateDevKey", "group": "devKeys", - "weight": 444, + "weight": 445, "cookies": false, "type": "", "demo": "projects\/update-dev-key.md", @@ -25138,7 +25270,7 @@ "x-appwrite": { "method": "deleteDevKey", "group": "devKeys", - "weight": 447, + "weight": 448, "cookies": false, "type": "", "demo": "projects\/delete-dev-key.md", @@ -28951,7 +29083,7 @@ "x-appwrite": { "method": "listRules", "group": null, - "weight": 514, + "weight": 515, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -29024,7 +29156,7 @@ "x-appwrite": { "method": "createAPIRule", "group": null, - "weight": 509, + "weight": 510, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -29094,7 +29226,7 @@ "x-appwrite": { "method": "createFunctionRule", "group": null, - "weight": 511, + "weight": 512, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -29177,7 +29309,7 @@ "x-appwrite": { "method": "createRedirectRule", "group": null, - "weight": 512, + "weight": 513, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -29297,7 +29429,7 @@ "x-appwrite": { "method": "createSiteRule", "group": null, - "weight": 510, + "weight": 511, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -29378,7 +29510,7 @@ "x-appwrite": { "method": "getRule", "group": null, - "weight": 513, + "weight": 514, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -29431,7 +29563,7 @@ "x-appwrite": { "method": "deleteRule", "group": null, - "weight": 515, + "weight": 516, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -29491,7 +29623,7 @@ "x-appwrite": { "method": "updateRuleVerification", "group": null, - "weight": 516, + "weight": 517, "cookies": false, "type": "", "demo": "proxy\/update-rule-verification.md", @@ -29549,7 +29681,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -29621,7 +29753,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -29888,7 +30020,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -29937,7 +30069,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -29987,7 +30119,7 @@ "x-appwrite": { "method": "listTemplates", "group": "templates", - "weight": 503, + "weight": 504, "cookies": false, "type": "", "demo": "sites\/list-templates.md", @@ -30081,7 +30213,7 @@ "x-appwrite": { "method": "getTemplate", "group": "templates", - "weight": 504, + "weight": 505, "cookies": false, "type": "", "demo": "sites\/get-template.md", @@ -30139,7 +30271,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 505, + "weight": 506, "cookies": false, "type": "", "demo": "sites\/list-usage.md", @@ -30209,7 +30341,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -30268,7 +30400,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -30530,7 +30662,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -30591,7 +30723,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -30668,7 +30800,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -30748,7 +30880,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -30848,7 +30980,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -30927,7 +31059,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -31033,7 +31165,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -31130,7 +31262,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -31192,7 +31324,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -31259,7 +31391,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -31344,7 +31476,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -31411,7 +31543,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -31482,7 +31614,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -31546,7 +31678,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -31613,7 +31745,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 506, + "weight": 507, "cookies": false, "type": "", "demo": "sites\/get-usage.md", @@ -31691,7 +31823,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -31750,7 +31882,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -31840,7 +31972,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -31907,7 +32039,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -31999,7 +32131,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -33433,7 +33565,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -33505,7 +33637,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -33587,7 +33719,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -33595,7 +33727,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -33652,7 +33787,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -33660,7 +33795,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33720,7 +33858,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -33728,7 +33866,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -33781,7 +33922,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -33789,7 +33930,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33858,7 +34002,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -33866,7 +34010,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -33921,7 +34068,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -33929,7 +34076,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -34000,7 +34150,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 384, + "weight": 385, "cookies": false, "type": "", "demo": "tablesdb\/list-usage.md", @@ -34095,7 +34245,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -34154,7 +34304,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -34232,7 +34382,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -34291,7 +34441,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -34374,7 +34524,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -34482,7 +34632,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -34552,7 +34702,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -34656,7 +34806,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -34726,7 +34876,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -34810,7 +34960,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -34919,7 +35069,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -35030,7 +35180,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -35139,7 +35289,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -35250,7 +35400,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -35359,7 +35509,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -35470,7 +35620,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -35589,7 +35739,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -35710,7 +35860,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -35831,7 +35981,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -35954,7 +36104,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -36075,7 +36225,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -36198,7 +36348,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -36307,7 +36457,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -36418,7 +36568,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -36522,7 +36672,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -36632,7 +36782,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -36736,7 +36886,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -36846,7 +36996,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -36950,7 +37100,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -37060,7 +37210,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -37196,7 +37346,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -37318,7 +37468,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -37435,7 +37585,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -37544,7 +37694,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -37684,7 +37834,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -37756,7 +37906,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -37835,7 +37985,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -37940,7 +38090,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -38022,7 +38172,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -38153,7 +38303,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -38225,7 +38375,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -38302,7 +38452,7 @@ "x-appwrite": { "method": "listTableLogs", "group": "tables", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "demo": "tablesdb\/list-table-logs.md", @@ -38383,7 +38533,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -38475,7 +38625,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -38651,7 +38801,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -38778,7 +38928,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -38879,7 +39029,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -38974,7 +39124,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -39074,7 +39224,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -39215,7 +39365,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -39320,7 +39470,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -39415,7 +39565,7 @@ "x-appwrite": { "method": "listRowLogs", "group": "logs", - "weight": 434, + "weight": 435, "cookies": false, "type": "", "demo": "tablesdb\/list-row-logs.md", @@ -39506,7 +39656,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -39623,7 +39773,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -39738,7 +39888,7 @@ "x-appwrite": { "method": "getTableUsage", "group": null, - "weight": 391, + "weight": 392, "cookies": false, "type": "", "demo": "tablesdb\/get-table-usage.md", @@ -39827,7 +39977,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 383, + "weight": 384, "cookies": false, "type": "", "demo": "tablesdb\/get-usage.md", @@ -41012,7 +41162,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -41092,7 +41242,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -41176,7 +41326,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -41236,7 +41386,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -41307,7 +41457,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 9c8ef73243..6f10a09162 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -4801,7 +4801,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -4906,7 +4906,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -5025,7 +5025,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5092,7 +5092,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -5162,7 +5162,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -5225,7 +5225,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -5304,7 +5304,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -5369,7 +5369,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -5450,7 +5450,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -5543,7 +5543,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -5658,7 +5658,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -5750,7 +5750,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 324, + "weight": 325, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -5835,7 +5835,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -5945,7 +5945,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 321, + "weight": 322, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -6017,7 +6017,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 322, + "weight": 323, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -6123,7 +6123,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 323, + "weight": 324, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -6195,7 +6195,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -6281,7 +6281,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -6392,7 +6392,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -6505,7 +6505,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 344, + "weight": 345, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -6616,7 +6616,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 345, + "weight": 346, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -6729,7 +6729,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -6840,7 +6840,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -6953,7 +6953,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -7074,7 +7074,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -7197,7 +7197,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -7320,7 +7320,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -7445,7 +7445,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -7568,7 +7568,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -7693,7 +7693,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -7804,7 +7804,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -7917,7 +7917,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -8023,7 +8023,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -8135,7 +8135,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -8241,7 +8241,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -8353,7 +8353,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -8459,7 +8459,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -8571,7 +8571,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -8709,7 +8709,7 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -8833,7 +8833,7 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -8952,7 +8952,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -9063,7 +9063,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -9205,7 +9205,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -9279,7 +9279,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -9360,7 +9360,7 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -9467,7 +9467,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -9562,7 +9562,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 327, + "weight": 328, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -9751,7 +9751,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -9885,7 +9885,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 330, + "weight": 331, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -9988,7 +9988,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -10085,7 +10085,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 328, + "weight": 329, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -10188,7 +10188,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 331, + "weight": 332, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -10341,7 +10341,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 329, + "weight": 330, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -10449,7 +10449,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -10549,7 +10549,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -10669,7 +10669,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -10787,7 +10787,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -10871,7 +10871,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -11004,7 +11004,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -11078,7 +11078,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -11157,7 +11157,7 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 452, + "weight": 453, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -11230,7 +11230,7 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 449, + "weight": 450, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -11482,7 +11482,7 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 454, + "weight": 455, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -11532,7 +11532,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 455, + "weight": 456, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -11583,7 +11583,7 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 450, + "weight": 451, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -11643,7 +11643,7 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 451, + "weight": 452, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -11891,7 +11891,7 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 453, + "weight": 454, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -11953,7 +11953,7 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 458, + "weight": 459, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -12031,7 +12031,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 459, + "weight": 460, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -12112,7 +12112,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 456, + "weight": 457, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -12205,7 +12205,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 464, + "weight": 465, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -12291,7 +12291,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 461, + "weight": 462, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -12398,7 +12398,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 462, + "weight": 463, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -12495,7 +12495,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 457, + "weight": 458, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -12558,7 +12558,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 460, + "weight": 461, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -12626,7 +12626,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 463, + "weight": 464, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -12712,7 +12712,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 465, + "weight": 466, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -12780,7 +12780,7 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 468, + "weight": 469, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -12855,7 +12855,7 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 466, + "weight": 467, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -12974,7 +12974,7 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 467, + "weight": 468, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -13040,7 +13040,7 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 469, + "weight": 470, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -13108,7 +13108,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 474, + "weight": 475, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -13168,7 +13168,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 472, + "weight": 473, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -13259,7 +13259,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 473, + "weight": 474, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -13327,7 +13327,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 475, + "weight": 476, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -13420,7 +13420,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 476, + "weight": 477, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -15347,7 +15347,7 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -15423,7 +15423,7 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -15582,7 +15582,7 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -15738,7 +15738,7 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -15934,7 +15934,7 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -16129,7 +16129,7 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -16318,7 +16318,7 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -16501,7 +16501,7 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -16557,7 +16557,7 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -16618,7 +16618,7 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -16691,7 +16691,7 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -16764,7 +16764,7 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 276, + "weight": 277, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -16840,7 +16840,7 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 275, + "weight": 276, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -17028,7 +17028,7 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -17212,7 +17212,7 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -17368,7 +17368,7 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -17520,7 +17520,7 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -17648,7 +17648,7 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -17774,7 +17774,7 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -17878,7 +17878,7 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -17980,7 +17980,7 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -18096,7 +18096,7 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -18210,7 +18210,7 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -18456,7 +18456,7 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -18695,7 +18695,7 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -18799,7 +18799,7 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 283, + "weight": 284, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -18901,7 +18901,7 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -19005,7 +19005,7 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -19107,7 +19107,7 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -19211,7 +19211,7 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -19313,7 +19313,7 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -19417,7 +19417,7 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -19517,7 +19517,7 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -19573,7 +19573,7 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -19634,7 +19634,7 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -19707,7 +19707,7 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -19780,7 +19780,7 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -19854,7 +19854,7 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -19943,7 +19943,7 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -20004,7 +20004,7 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -20084,7 +20084,7 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -20145,7 +20145,7 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -20218,7 +20218,7 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -20300,7 +20300,7 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 296, + "weight": 297, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -20389,7 +20389,7 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 299, + "weight": 300, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -20453,7 +20453,7 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -20525,7 +20525,7 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 481, + "weight": 482, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -20598,7 +20598,7 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 479, + "weight": 480, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -20866,7 +20866,7 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 484, + "weight": 485, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -20916,7 +20916,7 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 507, + "weight": 508, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -20967,7 +20967,7 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 480, + "weight": 481, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -21027,7 +21027,7 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 482, + "weight": 483, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -21290,7 +21290,7 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 483, + "weight": 484, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -21352,7 +21352,7 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 490, + "weight": 491, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -21430,7 +21430,7 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 489, + "weight": 490, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -21511,7 +21511,7 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 485, + "weight": 486, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -21612,7 +21612,7 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 493, + "weight": 494, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -21692,7 +21692,7 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 486, + "weight": 487, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -21799,7 +21799,7 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 487, + "weight": 488, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -21897,7 +21897,7 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 488, + "weight": 489, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -21960,7 +21960,7 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 491, + "weight": 492, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -22028,7 +22028,7 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 492, + "weight": 493, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -22114,7 +22114,7 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 494, + "weight": 495, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -22182,7 +22182,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 496, + "weight": 497, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -22254,7 +22254,7 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 495, + "weight": 496, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -22319,7 +22319,7 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 497, + "weight": 498, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -22387,7 +22387,7 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 500, + "weight": 501, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -22447,7 +22447,7 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 498, + "weight": 499, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -22538,7 +22538,7 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 499, + "weight": 500, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -22606,7 +22606,7 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 501, + "weight": 502, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -22699,7 +22699,7 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 502, + "weight": 503, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -24007,7 +24007,7 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -24080,7 +24080,7 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -24163,7 +24163,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 441, + "weight": 442, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -24171,7 +24171,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -24230,7 +24233,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 437, + "weight": 438, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -24238,7 +24241,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24300,7 +24306,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 438, + "weight": 439, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -24308,7 +24314,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "server", "client" @@ -24363,7 +24372,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 439, + "weight": 440, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -24371,7 +24380,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24442,7 +24454,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 440, + "weight": 441, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -24450,7 +24462,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24507,7 +24522,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 442, + "weight": 443, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -24515,7 +24530,10 @@ "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "server", "client" @@ -24588,7 +24606,7 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -24648,7 +24666,7 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -24727,7 +24745,7 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -24787,7 +24805,7 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -24871,7 +24889,7 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -24980,7 +24998,7 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -25051,7 +25069,7 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -25156,7 +25174,7 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -25227,7 +25245,7 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -25312,7 +25330,7 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -25422,7 +25440,7 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -25534,7 +25552,7 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -25644,7 +25662,7 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 398, + "weight": 399, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -25756,7 +25774,7 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 399, + "weight": 400, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -25866,7 +25884,7 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 400, + "weight": 401, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -25978,7 +25996,7 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 401, + "weight": 402, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -26098,7 +26116,7 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 402, + "weight": 403, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -26220,7 +26238,7 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 403, + "weight": 404, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -26342,7 +26360,7 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 404, + "weight": 405, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -26466,7 +26484,7 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 405, + "weight": 406, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -26588,7 +26606,7 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 406, + "weight": 407, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -26712,7 +26730,7 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 407, + "weight": 408, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -26822,7 +26840,7 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 408, + "weight": 409, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -26934,7 +26952,7 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 409, + "weight": 410, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -27039,7 +27057,7 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 410, + "weight": 411, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -27150,7 +27168,7 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 411, + "weight": 412, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -27255,7 +27273,7 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 412, + "weight": 413, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -27366,7 +27384,7 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 413, + "weight": 414, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -27471,7 +27489,7 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 414, + "weight": 415, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -27582,7 +27600,7 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 415, + "weight": 416, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -27719,7 +27737,7 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 417, + "weight": 418, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -27842,7 +27860,7 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 418, + "weight": 419, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -27960,7 +27978,7 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 419, + "weight": 420, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -28070,7 +28088,7 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 420, + "weight": 421, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -28211,7 +28229,7 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -28284,7 +28302,7 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -28364,7 +28382,7 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 416, + "weight": 417, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -28470,7 +28488,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 424, + "weight": 425, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -28553,7 +28571,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 421, + "weight": 422, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -28685,7 +28703,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 422, + "weight": 423, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -28758,7 +28776,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 423, + "weight": 424, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -28836,7 +28854,7 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 433, + "weight": 434, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -28930,7 +28948,7 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 425, + "weight": 426, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -29110,7 +29128,7 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 430, + "weight": 431, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -29239,7 +29257,7 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 428, + "weight": 429, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -29341,7 +29359,7 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 432, + "weight": 433, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -29437,7 +29455,7 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 426, + "weight": 427, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -29539,7 +29557,7 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 429, + "weight": 430, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -29683,7 +29701,7 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 427, + "weight": 428, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -29790,7 +29808,7 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 431, + "weight": 432, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -29889,7 +29907,7 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 436, + "weight": 437, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -30008,7 +30026,7 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 435, + "weight": 436, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -31160,7 +31178,7 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 519, + "weight": 520, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -31241,7 +31259,7 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 517, + "weight": 518, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -31326,7 +31344,7 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 518, + "weight": 519, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -31387,7 +31405,7 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 520, + "weight": 521, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -31459,7 +31477,7 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 521, + "weight": 522, "cookies": false, "type": "", "demo": "tokens\/delete.md", diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 5d1c19f473..82762c370e 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -317,7 +317,7 @@ App::post('/v1/migrations/csv/imports') ->label('sdk', new Method( namespace: 'migrations', group: null, - name: 'createCSVImportMigration', + name: 'createCSVImport', description: '/docs/references/migrations/migration-csv-import.md', auth: [AuthType::ADMIN], responses: [ @@ -457,7 +457,7 @@ App::post('/v1/migrations/csv/exports') ->label('sdk', new Method( namespace: 'migrations', group: null, - name: 'createCSVExportMigration', + name: 'createCSVExport', description: '/docs/references/migrations/migration-csv-export.md', auth: [AuthType::ADMIN], responses: [ diff --git a/docs/references/migrations/migration-csv-export.md b/docs/references/migrations/migration-csv-export.md new file mode 100644 index 0000000000..866faed2d2 --- /dev/null +++ b/docs/references/migrations/migration-csv-export.md @@ -0,0 +1 @@ +Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket. \ No newline at end of file diff --git a/docs/references/migrations/migration-csv.md b/docs/references/migrations/migration-csv-import.md similarity index 100% rename from docs/references/migrations/migration-csv.md rename to docs/references/migrations/migration-csv-import.md From 94c309d61ea4687695081f501efd6830ad2e686e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 16:41:00 +1300 Subject: [PATCH 15/43] Fix default escape --- app/controllers/api/migrations.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 82762c370e..ccd121f48f 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -472,9 +472,9 @@ App::post('/v1/migrations/csv/exports') ->param('filename', '', new Text(255), 'The name of the file to be created for the export, excluding the .csv extension.') ->param('columns', [], new ArrayList(new Text(Database::LENGTH_KEY)), 'List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.', true) ->param('queries', [], new ArrayList(new Text(0)), 'Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long.', true) - ->param('delimiter', ',', new Text(1), 'The character that separates each column value. Default is comma ",".', true) - ->param('enclosure', '"', new Text(1), 'The character that encloses each column value. Default is double quotes \'"\'.', true) - ->param('escape', '\\', new Text(1), 'The escape character for the enclosure character. Default is backslash "\\".', true) + ->param('delimiter', ',', new Text(1), 'The character that separates each column value. Default is comma.', true) + ->param('enclosure', '"', new Text(1), 'The character that encloses each column value. Default is double quotes.', true) + ->param('escape', '"', new Text(1), 'The escape character for the enclosure character. Default is double quotes.', true) ->param('header', true, new Boolean(), 'Whether to include the header row with column names. Default is true.', true) ->param('notify', true, new Boolean(), 'Set to true to receive an email when the export is complete. Default is true.', true) ->inject('user') From 8ded7c594261964f92270660bdf1dc334342cc78 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 17:15:06 +1300 Subject: [PATCH 16/43] Add options on response --- src/Appwrite/Utopia/Response/Model/Migration.php | 14 +++++++++----- tests/e2e/Services/Migrations/MigrationsBase.php | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Appwrite/Utopia/Response/Model/Migration.php b/src/Appwrite/Utopia/Response/Model/Migration.php index 76e00b3097..5f8e859b93 100644 --- a/src/Appwrite/Utopia/Response/Model/Migration.php +++ b/src/Appwrite/Utopia/Response/Model/Migration.php @@ -86,6 +86,12 @@ class Migration extends Model 'default' => [], 'example' => [], ]) + ->addRule('options', [ + 'type' => self::TYPE_JSON, + 'description' => 'Migration options used during the migration process.', + 'default' => [], + 'example' => '{"bucketId": "exports", "notify": false}', + ]) ; } @@ -117,18 +123,16 @@ class Migration extends Model } foreach ($errors as $index => $error) { - $decoded = json_decode($error, true); + $decoded = \json_decode($error, true); - // frontend doesn't need too many details. - if (is_array($decoded)) { - $errors[$index] = json_encode([ + if (\is_array($decoded)) { + $errors[$index] = \json_encode([ 'code' => $decoded['code'] ?? 0, 'message' => $decoded['message'] ?? null, ]); } } - // errors now only have code and message. $document->setAttribute('errors', $errors); return $document; diff --git a/tests/e2e/Services/Migrations/MigrationsBase.php b/tests/e2e/Services/Migrations/MigrationsBase.php index 4d27cf2828..42882afaed 100644 --- a/tests/e2e/Services/Migrations/MigrationsBase.php +++ b/tests/e2e/Services/Migrations/MigrationsBase.php @@ -1341,6 +1341,7 @@ trait MigrationsBase $this->assertEquals('completed', $response['body']['status']); $this->assertEquals('Appwrite', $response['body']['source']); $this->assertEquals('CSV', $response['body']['destination']); + $this->assertEquals($bucketId, $response['body']['options']['bucketId']); return true; }, 30000, 500); From 929baa17dbb802d70460f78dd0bf309e7ed96629 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 17:18:57 +1300 Subject: [PATCH 17/43] Fix capture --- tests/e2e/Services/Migrations/MigrationsBase.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/Services/Migrations/MigrationsBase.php b/tests/e2e/Services/Migrations/MigrationsBase.php index 42882afaed..5aac84f0cd 100644 --- a/tests/e2e/Services/Migrations/MigrationsBase.php +++ b/tests/e2e/Services/Migrations/MigrationsBase.php @@ -1329,7 +1329,7 @@ trait MigrationsBase $this->assertNotEmpty($migration['body']['$id']); $migrationId = $migration['body']['$id']; - $this->assertEventually(function () use ($migrationId) { + $this->assertEventually(function () use ($bucketId, $migrationId) { $response = $this->client->call(Client::METHOD_GET, '/migrations/' . $migrationId, [ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], From c9d83cb3f5f9b85f1ef6232036170a6e0cd17c0e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 20:37:03 +1300 Subject: [PATCH 18/43] Custom writer --- composer.json | 2 +- composer.lock | 51 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/composer.json b/composer.json index bb843fd771..fd9d4ef290 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.19.*", - "utopia-php/migration": "1.*", + "utopia-php/migration": "dev-fix-array-export as 1.3.1", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index 833c121490..4d8e3450c5 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": "407c1717bfef580d733ff2bbb232ec8a", + "content-hash": "d9398a28db0b870dc52955d3495ff4c2", "packages": [ { "name": "adhocore/jwt", @@ -4394,16 +4394,16 @@ }, { "name": "utopia-php/migration", - "version": "1.3.1", + "version": "dev-fix-array-export", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "b6985b235ab64f07a6b88569e20cf9b2df7d838c" + "reference": "4b72f60c866898687035acf04cedef9fbe966d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/b6985b235ab64f07a6b88569e20cf9b2df7d838c", - "reference": "b6985b235ab64f07a6b88569e20cf9b2df7d838c", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/4b72f60c866898687035acf04cedef9fbe966d16", + "reference": "4b72f60c866898687035acf04cedef9fbe966d16", "shasum": "" }, "require": { @@ -4443,9 +4443,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/1.3.1" + "source": "https://github.com/utopia-php/migration/tree/fix-array-export" }, - "time": "2025-10-21T08:13:54+00:00" + "time": "2025-10-22T07:28:29+00:00" }, { "name": "utopia-php/mongo", @@ -5271,16 +5271,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.4.6", + "version": "1.4.7", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "997e27a1224767a8da890454213d3123936b64bc" + "reference": "a61c8be551e10f4970bf46f75a54e4b0385c550d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/997e27a1224767a8da890454213d3123936b64bc", - "reference": "997e27a1224767a8da890454213d3123936b64bc", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/a61c8be551e10f4970bf46f75a54e4b0385c550d", + "reference": "a61c8be551e10f4970bf46f75a54e4b0385c550d", "shasum": "" }, "require": { @@ -5316,9 +5316,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.4.6" + "source": "https://github.com/appwrite/sdk-generator/tree/1.4.7" }, - "time": "2025-10-21T08:49:37+00:00" + "time": "2025-10-22T06:03:44+00:00" }, { "name": "doctrine/annotations", @@ -5795,16 +5795,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.6.1", + "version": "v5.6.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2" + "reference": "3a454ca033b9e06b63282ce19562e892747449bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", - "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb", "shasum": "" }, "require": { @@ -5847,9 +5847,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" }, - "time": "2025-08-13T20:13:15+00:00" + "time": "2025-10-21T19:32:17+00:00" }, { "name": "phar-io/manifest", @@ -8783,9 +8783,18 @@ "time": "2024-03-07T20:33:40+00:00" } ], - "aliases": [], + "aliases": [ + { + "package": "utopia-php/migration", + "version": "dev-fix-array-export", + "alias": "1.3.1", + "alias_normalized": "1.3.1.0" + } + ], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "utopia-php/migration": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { From d5bd6a04751ee6ef63ccf9a4241de1ae347c9c0d Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 22:06:55 +1300 Subject: [PATCH 19/43] Fix file ID --- src/Appwrite/Platform/Workers/Migrations.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index a5ca929e03..311b36ff2b 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -15,6 +15,7 @@ use Utopia\Database\Exception\Authorization; use Utopia\Database\Exception\Conflict; use Utopia\Database\Exception\Restricted; use Utopia\Database\Exception\Structure; +use Utopia\Database\Helpers\ID; use Utopia\Database\Query; use Utopia\Locale\Locale; use Utopia\Migration\Destination; @@ -484,7 +485,7 @@ class Migrations extends Action $mime = $this->deviceForFiles->getFileMimeType($path); $hash = $this->deviceForFiles->getFileHash($path); $algorithm = Compression::NONE; - $fileId = \md5($resourceId); + $fileId = ID::unique(); $this->dbForProject->createDocument('bucket_' . $bucket->getSequence(), new Document([ '$id' => $fileId, @@ -524,7 +525,7 @@ class Migrations extends Action $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); - // Generate JWT + // Generate JWT valid for 1 hour $expiry = (new \DateTime())->add(new \DateInterval('PT1H'))->format('U'); $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', \intval($expiry), 0); $jwt = $encoder->encode([ From 7249083152b5efdf0722add42924e72f1f3c9867 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 23:23:07 +1300 Subject: [PATCH 20/43] Pass through queries --- composer.lock | 8 ++++---- src/Appwrite/Platform/Workers/Migrations.php | 14 +++++--------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/composer.lock b/composer.lock index 4d8e3450c5..4da22c7a22 100644 --- a/composer.lock +++ b/composer.lock @@ -4398,12 +4398,12 @@ "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "4b72f60c866898687035acf04cedef9fbe966d16" + "reference": "f45c403ae8d81058118f363226df2cf9fa70a3ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/4b72f60c866898687035acf04cedef9fbe966d16", - "reference": "4b72f60c866898687035acf04cedef9fbe966d16", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/f45c403ae8d81058118f363226df2cf9fa70a3ba", + "reference": "f45c403ae8d81058118f363226df2cf9fa70a3ba", "shasum": "" }, "require": { @@ -4445,7 +4445,7 @@ "issues": "https://github.com/utopia-php/migration/issues", "source": "https://github.com/utopia-php/migration/tree/fix-array-export" }, - "time": "2025-10-22T07:28:29+00:00" + "time": "2025-10-22T09:45:50+00:00" }, { "name": "utopia-php/mongo", diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 311b36ff2b..f7f567727e 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -139,10 +139,12 @@ class Migrations extends Action $migrationOptions = $migration->getAttribute('options'); $dataSource = Appwrite::SOURCE_API; $database = null; + $queries = []; if ($source === Appwrite::getName() && $destination === DestinationCSV::getName()) { $dataSource = Appwrite::SOURCE_DATABASE; $database = $this->dbForProject; + $queries = Query::parseQueries($migrationOptions['queries']); } $migrationSource = match ($source) { @@ -172,7 +174,8 @@ class Migrations extends Action $credentials['endpoint'] === 'http://localhost/v1' ? 'http://appwrite/v1' : $credentials['endpoint'], $credentials['apiKey'], $dataSource, - $database + $database, + $queries, ), CSV::getName() => new CSV( $resourceId, @@ -210,6 +213,7 @@ class Migrations extends Action $options['bucketId'], $options['filename'], $options['columns'], + $options['queries'], $options['delimiter'], $options['enclosure'], $options['escape'], @@ -372,14 +376,6 @@ class Migrations extends Action ); } - // Debug logging for CSV exports before shutdown - if ($migration->getAttribute('destination') === DestinationCSV::getName()) { - $statusCounters = $transfer->getStatusCounters(); - Console::info('CSV export transfer completed. Status counters: ' . json_encode($statusCounters)); - Console::info('CSV export options: ' . json_encode($migration->getAttribute('options'))); - Console::info('CSV export errors: ' . json_encode($destination->getErrors())); - } - $destination->shutdown(); $source->shutdown(); From de7f69ae3f3a0d3fb3c1c1dc6b70ab8628d4178e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 23:49:11 +1300 Subject: [PATCH 21/43] Remove invalid param --- src/Appwrite/Platform/Workers/Migrations.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index f7f567727e..6b3a8cf7e4 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -213,7 +213,6 @@ class Migrations extends Action $options['bucketId'], $options['filename'], $options['columns'], - $options['queries'], $options['delimiter'], $options['enclosure'], $options['escape'], From c177d54f598bbce7f9c63d1674a22128025b9fb8 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 22 Oct 2025 23:51:28 +1300 Subject: [PATCH 22/43] Update lock --- composer.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.lock b/composer.lock index 4da22c7a22..e332325fa8 100644 --- a/composer.lock +++ b/composer.lock @@ -4445,7 +4445,7 @@ "issues": "https://github.com/utopia-php/migration/issues", "source": "https://github.com/utopia-php/migration/tree/fix-array-export" }, - "time": "2025-10-22T09:45:50+00:00" + "time": "2025-10-22T10:21:21+00:00" }, { "name": "utopia-php/mongo", From 9a1b5d4eee479348f26ff474886bb00cd46aba71 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 01:28:06 +1300 Subject: [PATCH 23/43] Only parse for validation --- app/controllers/api/migrations.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index ccd121f48f..2256247684 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -502,7 +502,7 @@ App::post('/v1/migrations/csv/exports') Migration $queueForMigrations ) { try { - $queries = Query::parseQueries($queries); + $parsedQueries = Query::parseQueries($queries); } catch (QueryException $e) { throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage()); } @@ -536,7 +536,7 @@ App::post('/v1/migrations/csv/exports') idAttributeType: $dbForProject->getAdapter()->getIdAttributeType(), ); - if (!$validator->isValid($queries)) { + if (!$validator->isValid($parsedQueries)) { throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription()); } From d2aa971ed3964f4f2fd901b81eb82db928e6ea53 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 01:33:28 +1300 Subject: [PATCH 24/43] Update lock --- composer.json | 2 +- composer.lock | 27 +++++++++------------------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/composer.json b/composer.json index fd9d4ef290..bb843fd771 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "utopia-php/locale": "0.8.*", "utopia-php/logger": "0.6.*", "utopia-php/messaging": "0.19.*", - "utopia-php/migration": "dev-fix-array-export as 1.3.1", + "utopia-php/migration": "1.*", "utopia-php/orchestration": "0.9.*", "utopia-php/platform": "0.7.*", "utopia-php/pools": "0.8.*", diff --git a/composer.lock b/composer.lock index e332325fa8..b117dd43a7 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": "d9398a28db0b870dc52955d3495ff4c2", + "content-hash": "407c1717bfef580d733ff2bbb232ec8a", "packages": [ { "name": "adhocore/jwt", @@ -4394,16 +4394,16 @@ }, { "name": "utopia-php/migration", - "version": "dev-fix-array-export", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "f45c403ae8d81058118f363226df2cf9fa70a3ba" + "reference": "f5c1d2cae764290766a4c2d1546c1d51de95b67f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/f45c403ae8d81058118f363226df2cf9fa70a3ba", - "reference": "f45c403ae8d81058118f363226df2cf9fa70a3ba", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/f5c1d2cae764290766a4c2d1546c1d51de95b67f", + "reference": "f5c1d2cae764290766a4c2d1546c1d51de95b67f", "shasum": "" }, "require": { @@ -4443,9 +4443,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/fix-array-export" + "source": "https://github.com/utopia-php/migration/tree/1.3.2" }, - "time": "2025-10-22T10:21:21+00:00" + "time": "2025-10-21T08:13:54+00:00" }, { "name": "utopia-php/mongo", @@ -8783,18 +8783,9 @@ "time": "2024-03-07T20:33:40+00:00" } ], - "aliases": [ - { - "package": "utopia-php/migration", - "version": "dev-fix-array-export", - "alias": "1.3.1", - "alias_normalized": "1.3.1.0" - } - ], + "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "utopia-php/migration": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 95902fa897e3d9768348f6c09a598fc1d9922a97 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 01:39:25 +1300 Subject: [PATCH 25/43] Fix lock --- composer.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.lock b/composer.lock index b117dd43a7..584b50f997 100644 --- a/composer.lock +++ b/composer.lock @@ -4445,7 +4445,7 @@ "issues": "https://github.com/utopia-php/migration/issues", "source": "https://github.com/utopia-php/migration/tree/1.3.2" }, - "time": "2025-10-21T08:13:54+00:00" + "time": "2025-10-22T12:30:47+00:00" }, { "name": "utopia-php/mongo", From 597dc308a6d9d7b8df40544d7382c829661a56fa Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 02:22:49 +1300 Subject: [PATCH 26/43] Fix test --- .../Services/Migrations/MigrationsBase.php | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/tests/e2e/Services/Migrations/MigrationsBase.php b/tests/e2e/Services/Migrations/MigrationsBase.php index 5aac84f0cd..16e58c9c2c 100644 --- a/tests/e2e/Services/Migrations/MigrationsBase.php +++ b/tests/e2e/Services/Migrations/MigrationsBase.php @@ -1347,21 +1347,28 @@ trait MigrationsBase }, 30000, 500); // Check that the file was created in the bucket - // File ID is MD5 of the resourceId (not the filename) - $fileId = \md5($databaseId . ':' . $collectionId); - - $file = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files/' . $fileId, [ + // Query files by filename + $files = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files', [ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'queries' => [ + Query::equal('name', ['test-export'])->toString() + ] ]); - $this->assertEquals(200, $file['headers']['status-code']); - $this->assertEquals($fileId, $file['body']['$id']); - $this->assertEquals($bucketId, $file['body']['bucketId']); - $this->assertEquals('test-export', $file['body']['name']); - $this->assertEquals('text/csv', $file['body']['mimeType']); - $this->assertGreaterThan(0, $file['body']['sizeOriginal']); + $this->assertEquals(200, $files['headers']['status-code']); + $this->assertEquals(1, $files['body']['total'], 'Expected exactly one file with name "test-export"'); + + // Get the exported file + $file = $files['body']['files'][0]; + $fileId = $file['$id']; + + $this->assertEquals($bucketId, $file['bucketId']); + $this->assertEquals('test-export', $file['name']); + $this->assertEquals('text/csv', $file['mimeType']); + $this->assertGreaterThan(0, $file['sizeOriginal']); // Download and verify CSV content $download = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucketId . '/files/' . $fileId . '/download', \array_merge([ From 2a4f191a69c139fddaa0a8b717df1077cfe6b48d Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 16:49:37 +1300 Subject: [PATCH 27/43] Fix log sets --- src/Appwrite/Platform/Workers/Migrations.php | 28 ++++++++++++++++--- .../Utopia/Response/Model/Migration.php | 8 +++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 6b3a8cf7e4..2ac8bd5a1f 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -248,9 +248,13 @@ class Migrations extends Action $errors = $migration->getAttribute('errors', []); foreach ($errors as $error) { $decoded = \json_decode($error, true); - if (\is_array($decoded) && isset($decoded['trace'])) { - unset($decoded['trace']); + if (\is_array($decoded)) { + if (isset($decoded['trace'])) { + unset($decoded['trace']); + } $messages[] = json_encode($decoded); + } else { + $messages[] = $error; } } @@ -387,7 +391,15 @@ class Migrations extends Action $errors = []; foreach ([...$sourceErrors, ...$destinationErrors] as $error) { - $errors[] = \json_encode($error); + $encoded = \json_decode(\json_encode($error), true); + if (\is_array($encoded)) { + if (isset($encoded['trace'])) { + unset($encoded['trace']); + } + $errors[] = \json_encode($encoded); + } else { + $errors[] = \json_encode($error); + } } $migration->setAttribute('errors', $errors); @@ -419,7 +431,15 @@ class Migrations extends Action $errors = []; foreach ([...$sourceErrors, ...$destinationErrors] as $error) { - $errors[] = \json_encode($error); + $encoded = \json_decode(\json_encode($error), true); + if (\is_array($encoded)) { + if (isset($encoded['trace'])) { + unset($encoded['trace']); + } + $errors[] = \json_encode($encoded); + } else { + $errors[] = \json_encode($error); + } } $migration->setAttribute('errors', $errors); diff --git a/src/Appwrite/Utopia/Response/Model/Migration.php b/src/Appwrite/Utopia/Response/Model/Migration.php index 5f8e859b93..df8b2d79ec 100644 --- a/src/Appwrite/Utopia/Response/Model/Migration.php +++ b/src/Appwrite/Utopia/Response/Model/Migration.php @@ -126,10 +126,10 @@ class Migration extends Model $decoded = \json_decode($error, true); if (\is_array($decoded)) { - $errors[$index] = \json_encode([ - 'code' => $decoded['code'] ?? 0, - 'message' => $decoded['message'] ?? null, - ]); + if (isset($decoded['trace'])) { + unset($decoded['trace']); + } + $errors[$index] = \json_encode($decoded); } } From 26e07b8c266e8ba9d041810f0afa0edbf3b7d0c1 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 16:58:29 +1300 Subject: [PATCH 28/43] Update specs --- app/config/specs/open-api3-1.8.x-console.json | 25 +++++++++++++---- .../specs/open-api3-latest-console.json | 25 +++++++++++++---- app/config/specs/swagger2-1.8.x-console.json | 28 +++++++++++++++---- app/config/specs/swagger2-latest-console.json | 28 +++++++++++++++---- 4 files changed, 84 insertions(+), 22 deletions(-) diff --git a/app/config/specs/open-api3-1.8.x-console.json b/app/config/specs/open-api3-1.8.x-console.json index 35eab0c964..99fa9a2d63 100644 --- a/app/config/specs/open-api3-1.8.x-console.json +++ b/app/config/specs/open-api3-1.8.x-console.json @@ -21812,17 +21812,17 @@ }, "delimiter": { "type": "string", - "description": "The character that separates each column value. Default is comma \",\".", + "description": "The character that separates each column value. Default is comma.", "x-example": "" }, "enclosure": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes '\"'.", + "description": "The character that encloses each column value. Default is double quotes.", "x-example": "" }, "escape": { "type": "string", - "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "description": "The escape character for the enclosure character. Default is double quotes.", "x-example": "" }, "header": { @@ -57546,6 +57546,12 @@ "description": "A target for your Appwrite custom domains.", "x-example": "127.0.0.1" }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "x-example": 900, + "format": "int32" + }, "_APP_DOMAIN_TARGET_AAAA": { "type": "string", "description": "AAAA target for your Appwrite custom domains.", @@ -57612,6 +57618,7 @@ "required": [ "_APP_DOMAIN_TARGET_CNAME", "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", "_APP_DOMAIN_TARGET_AAAA", "_APP_DOMAIN_TARGET_CAA", "_APP_STORAGE_LIMIT", @@ -57628,6 +57635,7 @@ "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, "_APP_DOMAIN_TARGET_AAAA": "::1", "_APP_DOMAIN_TARGET_CAA": "digicert.com", "_APP_STORAGE_LIMIT": "30000000", @@ -58355,6 +58363,11 @@ "type": "string" }, "x-example": [] + }, + "options": { + "type": "object", + "description": "Migration options used during the migration process.", + "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "required": [ @@ -58369,7 +58382,8 @@ "resourceId", "statusCounters", "resourceData", - "errors" + "errors", + "options" ], "example": { "$id": "5e5ea5c16897e", @@ -58385,7 +58399,8 @@ "resourceId": "databaseId:collectionId", "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", - "errors": [] + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "migrationReport": { diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 35eab0c964..99fa9a2d63 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -21812,17 +21812,17 @@ }, "delimiter": { "type": "string", - "description": "The character that separates each column value. Default is comma \",\".", + "description": "The character that separates each column value. Default is comma.", "x-example": "" }, "enclosure": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes '\"'.", + "description": "The character that encloses each column value. Default is double quotes.", "x-example": "" }, "escape": { "type": "string", - "description": "The escape character for the enclosure character. Default is backslash \"\\\".", + "description": "The escape character for the enclosure character. Default is double quotes.", "x-example": "" }, "header": { @@ -57546,6 +57546,12 @@ "description": "A target for your Appwrite custom domains.", "x-example": "127.0.0.1" }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "x-example": 900, + "format": "int32" + }, "_APP_DOMAIN_TARGET_AAAA": { "type": "string", "description": "AAAA target for your Appwrite custom domains.", @@ -57612,6 +57618,7 @@ "required": [ "_APP_DOMAIN_TARGET_CNAME", "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", "_APP_DOMAIN_TARGET_AAAA", "_APP_DOMAIN_TARGET_CAA", "_APP_STORAGE_LIMIT", @@ -57628,6 +57635,7 @@ "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, "_APP_DOMAIN_TARGET_AAAA": "::1", "_APP_DOMAIN_TARGET_CAA": "digicert.com", "_APP_STORAGE_LIMIT": "30000000", @@ -58355,6 +58363,11 @@ "type": "string" }, "x-example": [] + }, + "options": { + "type": "object", + "description": "Migration options used during the migration process.", + "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "required": [ @@ -58369,7 +58382,8 @@ "resourceId", "statusCounters", "resourceData", - "errors" + "errors", + "options" ], "example": { "$id": "5e5ea5c16897e", @@ -58385,7 +58399,8 @@ "resourceId": "databaseId:collectionId", "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", - "errors": [] + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "migrationReport": { diff --git a/app/config/specs/swagger2-1.8.x-console.json b/app/config/specs/swagger2-1.8.x-console.json index d7d48b9241..8e29ee46d5 100644 --- a/app/config/specs/swagger2-1.8.x-console.json +++ b/app/config/specs/swagger2-1.8.x-console.json @@ -21977,20 +21977,20 @@ }, "delimiter": { "type": "string", - "description": "The character that separates each column value. Default is comma \",\".", + "description": "The character that separates each column value. Default is comma.", "default": ",", "x-example": "" }, "enclosure": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes '\"'.", + "description": "The character that encloses each column value. Default is double quotes.", "default": "\"", "x-example": "" }, "escape": { "type": "string", - "description": "The escape character for the enclosure character. Default is backslash \"\\\".", - "default": "\\", + "description": "The escape character for the enclosure character. Default is double quotes.", + "default": "\"", "x-example": "" }, "header": { @@ -57590,6 +57590,12 @@ "description": "A target for your Appwrite custom domains.", "x-example": "127.0.0.1" }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "x-example": 900, + "format": "int32" + }, "_APP_DOMAIN_TARGET_AAAA": { "type": "string", "description": "AAAA target for your Appwrite custom domains.", @@ -57656,6 +57662,7 @@ "required": [ "_APP_DOMAIN_TARGET_CNAME", "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", "_APP_DOMAIN_TARGET_AAAA", "_APP_DOMAIN_TARGET_CAA", "_APP_STORAGE_LIMIT", @@ -57672,6 +57679,7 @@ "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, "_APP_DOMAIN_TARGET_AAAA": "::1", "_APP_DOMAIN_TARGET_CAA": "digicert.com", "_APP_STORAGE_LIMIT": "30000000", @@ -58404,6 +58412,12 @@ "type": "string" }, "x-example": [] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Migration options used during the migration process.", + "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "required": [ @@ -58418,7 +58432,8 @@ "resourceId", "statusCounters", "resourceData", - "errors" + "errors", + "options" ], "example": { "$id": "5e5ea5c16897e", @@ -58434,7 +58449,8 @@ "resourceId": "databaseId:collectionId", "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", - "errors": [] + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "migrationReport": { diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index d7d48b9241..8e29ee46d5 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -21977,20 +21977,20 @@ }, "delimiter": { "type": "string", - "description": "The character that separates each column value. Default is comma \",\".", + "description": "The character that separates each column value. Default is comma.", "default": ",", "x-example": "" }, "enclosure": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes '\"'.", + "description": "The character that encloses each column value. Default is double quotes.", "default": "\"", "x-example": "" }, "escape": { "type": "string", - "description": "The escape character for the enclosure character. Default is backslash \"\\\".", - "default": "\\", + "description": "The escape character for the enclosure character. Default is double quotes.", + "default": "\"", "x-example": "" }, "header": { @@ -57590,6 +57590,12 @@ "description": "A target for your Appwrite custom domains.", "x-example": "127.0.0.1" }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "x-example": 900, + "format": "int32" + }, "_APP_DOMAIN_TARGET_AAAA": { "type": "string", "description": "AAAA target for your Appwrite custom domains.", @@ -57656,6 +57662,7 @@ "required": [ "_APP_DOMAIN_TARGET_CNAME", "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", "_APP_DOMAIN_TARGET_AAAA", "_APP_DOMAIN_TARGET_CAA", "_APP_STORAGE_LIMIT", @@ -57672,6 +57679,7 @@ "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, "_APP_DOMAIN_TARGET_AAAA": "::1", "_APP_DOMAIN_TARGET_CAA": "digicert.com", "_APP_STORAGE_LIMIT": "30000000", @@ -58404,6 +58412,12 @@ "type": "string" }, "x-example": [] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Migration options used during the migration process.", + "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "required": [ @@ -58418,7 +58432,8 @@ "resourceId", "statusCounters", "resourceData", - "errors" + "errors", + "options" ], "example": { "$id": "5e5ea5c16897e", @@ -58434,7 +58449,8 @@ "resourceId": "databaseId:collectionId", "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", - "errors": [] + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "migrationReport": { From d4e5a1bdf253bbcc5fce48f7e32306d16b4bfe72 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 17:03:16 +1300 Subject: [PATCH 29/43] Update src/Appwrite/Platform/Workers/Migrations.php Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- src/Appwrite/Platform/Workers/Migrations.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 2ac8bd5a1f..c8ca2a92ac 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -535,6 +535,11 @@ class Migrations extends Action $user = $this->dbForPlatform->findOne('users', [ Query::equal('$sequence', [$userInternalId]) ]); + + if (!$user || $user->isEmpty()) { + Console::warning("User not found for CSV export notification: $userInternalId"); + return; + } // Set up locale $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); From 654125a6a80067fcd3121642223772488d25c55d Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 17:21:05 +1300 Subject: [PATCH 30/43] Review comments --- src/Appwrite/Platform/Workers/Migrations.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index c8ca2a92ac..508899fa97 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -485,11 +485,9 @@ class Migrations extends Action { $options = $migration->getAttribute('options', []); $bucketId = $options['bucketId'] ?? null; - $filename = $options['filename'] ?? 'export.csv'; + $filename = $options['filename'] ?? 'export_' . \time(); $userInternalId = $options['userInternalId'] ?? ''; - $resourceId = $migration->getAttribute('resourceId'); - // Save file to bucket $bucket = $this->dbForProject->getDocument('buckets', $bucketId); if ($bucket->isEmpty()) { throw new \Exception("Bucket not found: $bucketId"); @@ -535,19 +533,18 @@ class Migrations extends Action $user = $this->dbForPlatform->findOne('users', [ Query::equal('$sequence', [$userInternalId]) ]); - - if (!$user || $user->isEmpty()) { + + if ($user->isEmpty()) { Console::warning("User not found for CSV export notification: $userInternalId"); return; } - // Set up locale $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); // Generate JWT valid for 1 hour - $expiry = (new \DateTime())->add(new \DateInterval('PT1H'))->format('U'); - $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', \intval($expiry), 0); + $maxAge = 60 * 60; + $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $maxAge, 0); $jwt = $encoder->encode([ 'bucketId' => $bucketId, 'fileId' => $fileId, @@ -570,8 +567,7 @@ class Migrations extends Action $signature = $locale->getText('emails.csvExport.signature'); // Build email body using inner template - $message = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-inner-base.tpl'); - $message + $message = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-inner-base.tpl') ->setParam('{{body}}', $body, escapeHtml: false) ->setParam('{{hello}}', $hello) ->setParam('{{footer}}', $footer) From 462a2d505d58dd2f5aec0e21a30e7676be1db267 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 18:17:35 +1300 Subject: [PATCH 31/43] Remove unused scopes --- src/Appwrite/Platform/Workers/Migrations.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 508899fa97..ae43a1b481 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -303,15 +303,6 @@ class Migrations extends Action 'files.write', 'functions.read', 'functions.write', - 'databases.read', - 'collections.read', - 'collections.write', - 'tables.read', - 'tables.write', - 'documents.read', - 'documents.write', - 'rows.read', - 'rows.write', 'tokens.read', 'tokens.write', ] From e21f53f4c7a0458b7ed0ec7a9338faebee19a8b8 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 18:47:11 +1300 Subject: [PATCH 32/43] Abstract error sanitization --- src/Appwrite/Platform/Workers/Migrations.php | 68 ++++++++------------ 1 file changed, 26 insertions(+), 42 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index ae43a1b481..bf3b5356b7 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -243,24 +243,10 @@ class Migrations extends Action */ protected function updateMigrationDocument(Document $migration, Document $project, Realtime $queueForRealtime): Document { - $messages = []; - $errors = $migration->getAttribute('errors', []); - foreach ($errors as $error) { - $decoded = \json_decode($error, true); - if (\is_array($decoded)) { - if (isset($decoded['trace'])) { - unset($decoded['trace']); - } - $messages[] = json_encode($decoded); - } else { - $messages[] = $error; - } - } - - $migration->setAttribute('errors', $messages); - - /** Trigger Realtime Events */ + $errors = $this->sanitizeErrors($errors, []); + $migration->setAttribute('errors', $errors); + $queueForRealtime ->setProject($project) ->setSubscribers(['console', $project->getId()]) @@ -380,18 +366,7 @@ class Migrations extends Action $migration->setAttribute('status', 'failed'); $migration->setAttribute('stage', 'finished'); - $errors = []; - foreach ([...$sourceErrors, ...$destinationErrors] as $error) { - $encoded = \json_decode(\json_encode($error), true); - if (\is_array($encoded)) { - if (isset($encoded['trace'])) { - unset($encoded['trace']); - } - $errors[] = \json_encode($encoded); - } else { - $errors[] = \json_encode($error); - } - } + $errors = $this->sanitizeErrors($sourceErrors, $destinationErrors); $migration->setAttribute('errors', $errors); return; @@ -419,19 +394,7 @@ class Migrations extends Action if ($transfer) { $sourceErrors = $source->getErrors(); $destinationErrors = $destination->getErrors(); - - $errors = []; - foreach ([...$sourceErrors, ...$destinationErrors] as $error) { - $encoded = \json_decode(\json_encode($error), true); - if (\is_array($encoded)) { - if (isset($encoded['trace'])) { - unset($encoded['trace']); - } - $errors[] = \json_encode($encoded); - } else { - $errors[] = \json_encode($error); - } - } + $errors = $this->sanitizeErrors($sourceErrors, $destinationErrors); $migration->setAttribute('errors', $errors); } @@ -472,6 +435,27 @@ class Migrations extends Action } } + protected function sanitizeErrors( + array $sourceErrors, + array $destinationErrors, + ): array + { + $errors = []; + foreach ([...$sourceErrors, ...$destinationErrors] as $error) { + $encoded = \json_decode(\json_encode($error), true); + if (\is_array($encoded)) { + if (isset($encoded['trace'])) { + unset($encoded['trace']); + } + $errors[] = \json_encode($encoded); + } else { + $errors[] = \json_encode($error); + } + } + + return $error; + } + protected function handleCSVExportComplete(Document $project, Document $migration, Mail $queueForMails): void { $options = $migration->getAttribute('options', []); From c03b56c0de8a38a6c5562e4e95d42d5c0848606e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 18:47:55 +1300 Subject: [PATCH 33/43] Check plan file size max --- src/Appwrite/Platform/Workers/Migrations.php | 123 ++++++++++++------- 1 file changed, 81 insertions(+), 42 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index bf3b5356b7..0aff4192c9 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -7,6 +7,7 @@ use Appwrite\Event\Mail; use Appwrite\Event\Realtime; use Appwrite\Template\Template; use Exception; +use Utopia\App; use Utopia\CLI\Console; use Utopia\Config\Config; use Utopia\Database\Database; @@ -47,9 +48,9 @@ class Migrations extends Action protected Document $project; + protected array $plan; + /** - * Cached for performance. - * * @var array */ protected array $sourceReport = []; @@ -80,6 +81,7 @@ class Migrations extends Action ->inject('deviceForMigrations') ->inject('deviceForFiles') ->inject('queueForMails') + ->inject('plan') ->callback($this->action(...)); } @@ -96,16 +98,18 @@ class Migrations extends Action Device $deviceForMigrations, Device $deviceForFiles, Mail $queueForMails, + array $plan, ): void { $payload = $message->getPayload() ?? []; $this->deviceForMigrations = $deviceForMigrations; $this->deviceForFiles = $deviceForFiles; + $this->plan = $plan; if (empty($payload)) { throw new Exception('Missing payload'); } - $events = $payload['events'] ?? []; + $events = $payload['events'] ?? []; $migration = new Document($payload['migration'] ?? []); if ($project->getId() === 'console') { @@ -117,10 +121,7 @@ class Migrations extends Action $this->project = $project; $this->logError = $logError; - /** - * Handle Event execution. - */ - if (! empty($events)) { + if (!empty($events)) { return; } @@ -222,18 +223,6 @@ class Migrations extends Action }; } - /** - * Sanitize a filename to make it filesystem-safe - */ - protected function sanitizeFilename(string $filename): string - { - // Replace problematic characters with underscores - $sanitized = \preg_replace('/[:\/<>"|*?]/', '_', $filename); - $sanitized = \preg_replace('/[^\x20-\x7E]/', '_', $sanitized); - $sanitized = \trim($sanitized); - return empty($sanitized) ? 'export' : $sanitized; - } - /** * @throws Authorization * @throws Structure @@ -246,7 +235,7 @@ class Migrations extends Action $errors = $migration->getAttribute('errors', []); $errors = $this->sanitizeErrors($errors, []); $migration->setAttribute('errors', $errors); - + $queueForRealtime ->setProject($project) ->setSubscribers(['console', $project->getId()]) @@ -435,28 +424,23 @@ class Migrations extends Action } } - protected function sanitizeErrors( - array $sourceErrors, - array $destinationErrors, - ): array - { - $errors = []; - foreach ([...$sourceErrors, ...$destinationErrors] as $error) { - $encoded = \json_decode(\json_encode($error), true); - if (\is_array($encoded)) { - if (isset($encoded['trace'])) { - unset($encoded['trace']); - } - $errors[] = \json_encode($encoded); - } else { - $errors[] = \json_encode($error); - } - } - - return $error; - } - - protected function handleCSVExportComplete(Document $project, Document $migration, Mail $queueForMails): void + /** + * Handle actions to be performed when a CSV export migration is successfully completed + * + * @param Document $project + * @param Document $migration + * @param Mail $queueForMails + * @return void + * @throws Authorization + * @throws Structure + * @throws \Utopia\Database\Exception + * @throws Exception + */ + protected function handleCSVExportComplete( + Document $project, + Document $migration, + Mail $queueForMails + ): void { $options = $migration->getAttribute('options', []); $bucketId = $options['bucketId'] ?? null; @@ -475,6 +459,21 @@ class Migrations extends Action $algorithm = Compression::NONE; $fileId = ID::unique(); + $sizeMB = \round($size / (1000 * 1000), 2); + if ($sizeMB > $plan['fileSize'] ?? PHP_INT_MAX) { + try { + $this->deviceForFiles->delete($path); + } finally { + $message = "Export file size {$sizeMB}MB exceeds your plan limit."; + $this->dbForProject->updateDocument('migrations', $migration->getId(), $migration->setAttribute( + 'errors', + $message, + Document::SET_TYPE_APPEND, + )); + throw new \Exception($message); + } + } + $this->dbForProject->createDocument('bucket_' . $bucket->getSequence(), new Document([ '$id' => $fileId, '$permissions' => [], @@ -575,4 +574,44 @@ class Migrations extends Action Console::info('CSV export notification email sent to ' . $user->getAttribute('email')); } + + /** + * Sanitize a filename to make it filesystem-safe + */ + protected function sanitizeFilename(string $filename): string + { + // Replace problematic characters with underscores + $sanitized = \preg_replace('/[:\/<>"|*?]/', '_', $filename); + $sanitized = \preg_replace('/[^\x20-\x7E]/', '_', $sanitized); + $sanitized = \trim($sanitized); + return empty($sanitized) ? 'export' : $sanitized; + } + + /** + * Sanitize migration errors, removing sensitive information like stack traces + * + * @param array $sourceErrors + * @param array $destinationErrors + * @return array + */ + protected function sanitizeErrors( + array $sourceErrors, + array $destinationErrors, + ): array + { + $errors = []; + foreach ([...$sourceErrors, ...$destinationErrors] as $error) { + $encoded = \json_decode(\json_encode($error), true); + if (\is_array($encoded)) { + if (isset($encoded['trace'])) { + unset($encoded['trace']); + } + $errors[] = \json_encode($encoded); + } else { + $errors[] = \json_encode($error); + } + } + + return $errors; + } } From 28a6f6de006a55bac0cffc00665084e20860fbc2 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 18:57:10 +1300 Subject: [PATCH 34/43] Format --- src/Appwrite/Platform/Workers/Migrations.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 0aff4192c9..576765cc38 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -7,7 +7,6 @@ use Appwrite\Event\Mail; use Appwrite\Event\Realtime; use Appwrite\Template\Template; use Exception; -use Utopia\App; use Utopia\CLI\Console; use Utopia\Config\Config; use Utopia\Database\Database; @@ -440,8 +439,7 @@ class Migrations extends Action Document $project, Document $migration, Mail $queueForMails - ): void - { + ): void { $options = $migration->getAttribute('options', []); $bucketId = $options['bucketId'] ?? null; $filename = $options['filename'] ?? 'export_' . \time(); @@ -597,8 +595,7 @@ class Migrations extends Action protected function sanitizeErrors( array $sourceErrors, array $destinationErrors, - ): array - { + ): array { $errors = []; foreach ([...$sourceErrors, ...$destinationErrors] as $error) { $encoded = \json_decode(\json_encode($error), true); From fdf5367e391db5fa0e2da80dca568cdad812393e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 20:35:17 +1300 Subject: [PATCH 35/43] Fix options not fired from realtime --- src/Appwrite/Platform/Workers/Migrations.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 576765cc38..e7fd4857b3 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -240,7 +240,7 @@ class Migrations extends Action ->setSubscribers(['console', $project->getId()]) ->setEvent('migrations.[migrationId].update') ->setParam('migrationId', $migration->getId()) - ->setPayload($migration->getArrayCopy(), sensitive: ['options', 'credentials']) + ->setPayload($migration->getArrayCopy(), sensitive: ['credentials']) ->trigger(); return $this->dbForProject->updateDocument( From e222221ec968ceceb8236da504480da9f9ecb3ee Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 23 Oct 2025 21:34:09 +1300 Subject: [PATCH 36/43] Add failure email --- app/config/locale/translations/en.json | 23 ++-- src/Appwrite/Platform/Workers/Migrations.php | 109 ++++++++++++++----- 2 files changed, 97 insertions(+), 35 deletions(-) diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json index 03aaf90290..cfac62d5ef 100644 --- a/app/config/locale/translations/en.json +++ b/app/config/locale/translations/en.json @@ -57,14 +57,21 @@ "emails.recovery.thanks": "Thanks,", "emails.recovery.buttonText": "Reset password", "emails.recovery.signature": "{{project}} team", - "emails.csvExport.subject": "Your CSV export is ready", - "emails.csvExport.preview": "Your data export has been completed successfully.", - "emails.csvExport.hello": "Hello {{user}},", - "emails.csvExport.body": "Your CSV export is ready for download. Click the link below to download your data export.", - "emails.csvExport.footer": "This download link will expire in 1 hour.", - "emails.csvExport.thanks": "Thanks,", - "emails.csvExport.buttonText": "Download CSV", - "emails.csvExport.signature": "{{project}} team", + "emails.csvExport.success.subject": "Your CSV export is ready", + "emails.csvExport.success.preview": "Your data export has been completed successfully.", + "emails.csvExport.success.hello": "Hello {{user}},", + "emails.csvExport.success.body": "Your CSV export is ready for download. Click the link below to download your data export.", + "emails.csvExport.success.footer": "This download link will expire in 1 hour.", + "emails.csvExport.success.thanks": "Thanks,", + "emails.csvExport.success.buttonText": "Download CSV", + "emails.csvExport.success.signature": "{{project}} team", + "emails.csvExport.failure.subject": "Your CSV export failed - file too large", + "emails.csvExport.failure.preview": "Your data export failed because the file size exceeds your plan limit.", + "emails.csvExport.failure.hello": "Hello {{user}},", + "emails.csvExport.failure.body": "Your CSV export could not be completed because the export file size ({{size}}MB) exceeds your plan limit. Please consider upgrading your plan or exporting a smaller dataset.", + "emails.csvExport.failure.footer": "If you have any questions, please contact our support team.", + "emails.csvExport.failure.thanks": "Thanks,", + "emails.csvExport.failure.signature": "{{project}} team", "emails.invitation.subject": "Invitation to {{team}} Team at {{project}}", "emails.invitation.preview": "{{owner}} invited you to join {{team}} at {{project}}", "emails.invitation.hello": "Hello {{user}},", diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index e7fd4857b3..a532517c97 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -5,8 +5,8 @@ namespace Appwrite\Platform\Workers; use Ahc\Jwt\JWT; use Appwrite\Event\Mail; use Appwrite\Event\Realtime; +use Appwrite\Extend\Exception; use Appwrite\Template\Template; -use Exception; use Utopia\CLI\Console; use Utopia\Config\Config; use Utopia\Database\Database; @@ -458,16 +458,27 @@ class Migrations extends Action $fileId = ID::unique(); $sizeMB = \round($size / (1000 * 1000), 2); - if ($sizeMB > $plan['fileSize'] ?? PHP_INT_MAX) { + if ($sizeMB > $this->plan['fileSize'] ?? PHP_INT_MAX) { try { $this->deviceForFiles->delete($path); } finally { $message = "Export file size {$sizeMB}MB exceeds your plan limit."; + $this->dbForProject->updateDocument('migrations', $migration->getId(), $migration->setAttribute( 'errors', $message, Document::SET_TYPE_APPEND, )); + + $this->sendCSVEmail( + success: false, + project: $project, + userInternalId: $userInternalId, + options: $options, + queueForMails: $queueForMails, + sizeMB: $sizeMB + ); + throw new \Exception($message); } } @@ -497,7 +508,52 @@ class Migrations extends Action Console::info("Created file document in bucket: $fileId"); - // No notification required, skip email sending + // Generate JWT valid for 1 hour + $maxAge = 60 * 60; + $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $maxAge, 0); + $jwt = $encoder->encode([ + 'bucketId' => $bucketId, + 'fileId' => $fileId, + 'projectId' => $project->getId(), + ]); + + // Generate download URL with JWT + $endpoint = System::getEnv('_APP_DOMAIN', ''); + $protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS', 'disabled') === 'enabled' ? 'https' : 'http'; + $downloadUrl = "{$protocol}://{$endpoint}/v1/storage/buckets/{$bucketId}/files/{$fileId}/push?project={$project->getId()}&jwt={$jwt}"; + + $this->sendCSVEmail( + success: true, + project: $project, + userInternalId: $userInternalId, + options: $options, + queueForMails: $queueForMails, + downloadUrl: $downloadUrl + ); + } + + /** + * Send CSV export notification email + * + * @param bool $success Whether the export was successful + * @param Document $project + * @param string $userInternalId Internal ID of the user + * @param array $options Migration options + * @param Mail $queueForMails + * @param string $downloadUrl Download URL for successful exports + * @param float $sizeMB File size in MB for failed exports + * @return void + * @throws \Exception + */ + protected function sendCSVEmail( + bool $success, + Document $project, + string $userInternalId, + array $options, + Mail $queueForMails, + string $downloadUrl = '', + float $sizeMB = 0.0 + ): void { if (!($options['notify'] ?? false)) { return; } @@ -514,29 +570,19 @@ class Migrations extends Action $locale = new Locale(System::getEnv('_APP_LOCALE', 'en')); $locale->setFallback(System::getEnv('_APP_LOCALE', 'en')); - // Generate JWT valid for 1 hour - $maxAge = 60 * 60; - $encoder = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $maxAge, 0); - $jwt = $encoder->encode([ - 'bucketId' => $bucketId, - 'fileId' => $fileId, - 'projectId' => $project->getId(), - ]); - - // Generate download URL with JWT - $endpoint = System::getEnv('_APP_DOMAIN', ''); - $protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS', 'disabled') === 'enabled' ? 'https' : 'http'; - $downloadUrl = "{$protocol}://{$endpoint}/v1/storage/buckets/{$bucketId}/files/{$fileId}/push?project={$project->getId()}&jwt={$jwt}"; + $emailType = $success + ? 'success' + : 'failure'; // Get localized email content - $subject = $locale->getText('emails.csvExport.subject'); - $preview = $locale->getText('emails.csvExport.preview'); - $hello = $locale->getText('emails.csvExport.hello'); - $body = $locale->getText('emails.csvExport.body'); - $footer = $locale->getText('emails.csvExport.footer'); - $thanks = $locale->getText('emails.csvExport.thanks'); - $buttonText = $locale->getText('emails.csvExport.buttonText'); - $signature = $locale->getText('emails.csvExport.signature'); + $subject = $locale->getText("emails.csvExport.{$emailType}.subject"); + $preview = $locale->getText("emails.csvExport.{$emailType}.preview"); + $hello = $locale->getText("emails.csvExport.{$emailType}.hello"); + $body = $locale->getText("emails.csvExport.{$emailType}.body"); + $footer = $locale->getText("emails.csvExport.{$emailType}.footer"); + $thanks = $locale->getText("emails.csvExport.{$emailType}.thanks"); + $signature = $locale->getText("emails.csvExport.{$emailType}.signature"); + $buttonText = $success ? $locale->getText("emails.csvExport.{$emailType}.buttonText") : ''; // Build email body using inner template $message = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-inner-base.tpl') @@ -549,7 +595,8 @@ class Migrations extends Action ->setParam('{{direction}}', $locale->getText('settings.direction')) ->setParam('{{project}}', $project->getAttribute('name')) ->setParam('{{user}}', $user->getAttribute('name', $user->getAttribute('email'))) - ->setParam('{{redirect}}', $downloadUrl); + ->setParam('{{redirect}}', $downloadUrl) + ->setParam('{{size}}', $success ? '' : (string)$sizeMB); $emailBody = $message->render(); @@ -557,9 +604,14 @@ class Migrations extends Action 'direction' => $locale->getText('settings.direction'), 'project' => $project->getAttribute('name'), 'user' => $user->getAttribute('name', $user->getAttribute('email')), - 'redirect' => $downloadUrl, ]; + if ($success) { + $emailVariables['redirect'] = $downloadUrl; + } else { + $emailVariables['size'] = (string)$sizeMB; + } + $queueForMails ->setSubject($subject) ->setPreview($preview) @@ -570,11 +622,14 @@ class Migrations extends Action ->setRecipient($user->getAttribute('email')) ->trigger(); - Console::info('CSV export notification email sent to ' . $user->getAttribute('email')); + Console::info("CSV export {$emailType} notification email sent to " . $user->getAttribute('email')); } /** * Sanitize a filename to make it filesystem-safe + * + * @param string $filename + * @return string */ protected function sanitizeFilename(string $filename): string { From 720dfb97e8de814675048ff5c545681646591586 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 27 Oct 2025 14:13:54 +0530 Subject: [PATCH 37/43] feat: improve doc examples to use Permission and Roles helper classes --- composer.lock | 30 +++++++++---------- .../java/databases/create-document.md | 4 ++- .../java/databases/update-document.md | 4 ++- .../java/databases/upsert-document.md | 4 ++- .../java/storage/create-file.md | 4 ++- .../java/storage/update-file.md | 4 ++- .../java/tablesdb/create-row.md | 4 ++- .../java/tablesdb/update-row.md | 4 ++- .../java/tablesdb/upsert-row.md | 4 ++- .../kotlin/databases/create-document.md | 4 ++- .../kotlin/databases/update-document.md | 4 ++- .../kotlin/databases/upsert-document.md | 4 ++- .../kotlin/storage/create-file.md | 4 ++- .../kotlin/storage/update-file.md | 4 ++- .../kotlin/tablesdb/create-row.md | 4 ++- .../kotlin/tablesdb/update-row.md | 4 ++- .../kotlin/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-document.md | 2 +- .../examples/databases/update-document.md | 2 +- .../examples/databases/upsert-document.md | 2 +- .../examples/storage/create-file.md | 2 +- .../examples/storage/update-file.md | 2 +- .../examples/tablesdb/create-row.md | 2 +- .../examples/tablesdb/update-row.md | 2 +- .../examples/tablesdb/upsert-row.md | 2 +- .../examples/databases/create-document.md | 4 +-- .../examples/databases/update-document.md | 4 +-- .../examples/databases/upsert-document.md | 4 +-- .../examples/storage/create-file.md | 4 +-- .../examples/storage/update-file.md | 4 +-- .../examples/tablesdb/create-row.md | 4 +-- .../examples/tablesdb/update-row.md | 4 +-- .../examples/tablesdb/upsert-row.md | 4 +-- .../messaging/create-resend-provider.md | 3 ++ .../messaging/update-resend-provider.md | 2 ++ .../examples/databases/create-collection.md | 4 +-- .../examples/databases/create-document.md | 4 +-- .../examples/databases/update-collection.md | 4 +-- .../examples/databases/update-document.md | 4 +-- .../examples/databases/upsert-document.md | 4 +-- .../messaging/create-resend-provider.md | 20 +++++++++++++ .../messaging/update-resend-provider.md | 20 +++++++++++++ .../examples/storage/create-bucket.md | 4 +-- .../examples/storage/create-file.md | 4 +-- .../examples/storage/update-bucket.md | 4 +-- .../examples/storage/update-file.md | 4 +-- .../examples/tablesdb/create-row.md | 4 +-- .../examples/tablesdb/create-table.md | 4 +-- .../examples/tablesdb/update-row.md | 4 +-- .../examples/tablesdb/update-table.md | 4 +-- .../examples/tablesdb/upsert-row.md | 4 +-- .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 19 ++++++++++++ .../messaging/update-resend-provider.md | 19 ++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 21 +++++++++++++ .../messaging/update-resend-provider.md | 21 +++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../messaging/create-resend-provider.md | 26 ++++++++++++++++ .../messaging/update-resend-provider.md | 26 ++++++++++++++++ .../messaging/create-resend-provider.md | 22 ++++++++++++++ .../messaging/update-resend-provider.md | 22 ++++++++++++++ .../java/databases/create-collection.md | 4 ++- .../java/databases/create-document.md | 4 ++- .../java/databases/update-collection.md | 4 ++- .../java/databases/update-document.md | 4 ++- .../java/databases/upsert-document.md | 4 ++- .../java/messaging/create-resend-provider.md | 30 +++++++++++++++++++ .../java/messaging/update-resend-provider.md | 30 +++++++++++++++++++ .../java/storage/create-bucket.md | 4 ++- .../server-kotlin/java/storage/create-file.md | 4 ++- .../java/storage/update-bucket.md | 4 ++- .../server-kotlin/java/storage/update-file.md | 4 ++- .../server-kotlin/java/tablesdb/create-row.md | 4 ++- .../java/tablesdb/create-table.md | 4 ++- .../server-kotlin/java/tablesdb/update-row.md | 4 ++- .../java/tablesdb/update-table.md | 4 ++- .../server-kotlin/java/tablesdb/upsert-row.md | 4 ++- .../kotlin/databases/create-collection.md | 4 ++- .../kotlin/databases/create-document.md | 4 ++- .../kotlin/databases/update-collection.md | 4 ++- .../kotlin/databases/update-document.md | 4 ++- .../kotlin/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 21 +++++++++++++ .../messaging/update-resend-provider.md | 21 +++++++++++++ .../kotlin/storage/create-bucket.md | 4 ++- .../kotlin/storage/create-file.md | 4 ++- .../kotlin/storage/update-bucket.md | 4 ++- .../kotlin/storage/update-file.md | 4 ++- .../kotlin/tablesdb/create-row.md | 4 ++- .../kotlin/tablesdb/create-table.md | 4 ++- .../kotlin/tablesdb/update-row.md | 4 ++- .../kotlin/tablesdb/update-table.md | 4 ++- .../kotlin/tablesdb/upsert-row.md | 4 ++- .../messaging/create-resend-provider.md | 19 ++++++++++++ .../messaging/update-resend-provider.md | 19 ++++++++++++ .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 22 ++++++++++++++ .../messaging/update-resend-provider.md | 22 ++++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 20 +++++++++++++ .../messaging/update-resend-provider.md | 20 +++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../messaging/create-resend-provider.md | 17 +++++++++++ .../messaging/update-resend-provider.md | 16 ++++++++++ .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 21 +++++++++++++ .../messaging/update-resend-provider.md | 21 +++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- .../examples/databases/create-collection.md | 4 ++- .../examples/databases/create-document.md | 4 ++- .../examples/databases/update-collection.md | 4 ++- .../examples/databases/update-document.md | 4 ++- .../examples/databases/upsert-document.md | 4 ++- .../messaging/create-resend-provider.md | 20 +++++++++++++ .../messaging/update-resend-provider.md | 20 +++++++++++++ .../examples/storage/create-bucket.md | 4 ++- .../examples/storage/create-file.md | 4 ++- .../examples/storage/update-bucket.md | 4 ++- .../examples/storage/update-file.md | 4 ++- .../examples/tablesdb/create-row.md | 4 ++- .../examples/tablesdb/create-table.md | 4 ++- .../examples/tablesdb/update-row.md | 4 ++- .../examples/tablesdb/update-table.md | 4 ++- .../examples/tablesdb/upsert-row.md | 4 ++- 203 files changed, 1059 insertions(+), 211 deletions(-) create mode 100644 docs/examples/1.8.x/console-cli/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/console-cli/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/console-web/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/console-web/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-dart/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-dart/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-dotnet/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-dotnet/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-go/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-go/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-graphql/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-graphql/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-kotlin/java/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-kotlin/java/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-nodejs/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-nodejs/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-php/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-php/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-python/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-python/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-rest/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-rest/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-ruby/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-ruby/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/1.8.x/server-swift/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/1.8.x/server-swift/examples/messaging/update-resend-provider.md diff --git a/composer.lock b/composer.lock index 36c2c94265..39f5896bdc 100644 --- a/composer.lock +++ b/composer.lock @@ -5318,16 +5318,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.4.11", + "version": "1.4.13", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "5970defc3c6e64817fe9847c0b33c87af71709c5" + "reference": "db1a0f9b4ae003759bc67e15470160f3775536f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/5970defc3c6e64817fe9847c0b33c87af71709c5", - "reference": "5970defc3c6e64817fe9847c0b33c87af71709c5", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/db1a0f9b4ae003759bc67e15470160f3775536f8", + "reference": "db1a0f9b4ae003759bc67e15470160f3775536f8", "shasum": "" }, "require": { @@ -5363,9 +5363,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.4.11" + "source": "https://github.com/appwrite/sdk-generator/tree/1.4.13" }, - "time": "2025-10-24T10:03:09+00:00" + "time": "2025-10-27T08:35:36+00:00" }, { "name": "doctrine/annotations", @@ -6069,16 +6069,16 @@ }, { "name": "phpbench/phpbench", - "version": "1.4.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/phpbench/phpbench.git", - "reference": "78cd98a9aa34e0f8f80ca01972a8b88d2c30194b" + "reference": "bb61ae6c54b3d58642be154eb09f4e73c3511018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpbench/phpbench/zipball/78cd98a9aa34e0f8f80ca01972a8b88d2c30194b", - "reference": "78cd98a9aa34e0f8f80ca01972a8b88d2c30194b", + "url": "https://api.github.com/repos/phpbench/phpbench/zipball/bb61ae6c54b3d58642be154eb09f4e73c3511018", + "reference": "bb61ae6c54b3d58642be154eb09f4e73c3511018", "shasum": "" }, "require": { @@ -6105,7 +6105,7 @@ "ergebnis/composer-normalize": "^2.39", "friendsofphp/php-cs-fixer": "^3.0", "jangregor/phpstan-prophecy": "^1.0", - "phpspec/prophecy": "dev-master", + "phpspec/prophecy": "^1.22", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.0", "phpstan/phpstan-phpunit": "^1.0", @@ -6155,7 +6155,7 @@ ], "support": { "issues": "https://github.com/phpbench/phpbench/issues", - "source": "https://github.com/phpbench/phpbench/tree/1.4.1" + "source": "https://github.com/phpbench/phpbench/tree/1.4.2" }, "funding": [ { @@ -6163,7 +6163,7 @@ "type": "github" } ], - "time": "2025-03-12T08:01:40+00:00" + "time": "2025-10-26T14:21:59+00:00" }, { "name": "phpstan/phpstan", @@ -8832,7 +8832,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { @@ -8856,5 +8856,5 @@ "platform-overrides": { "php": "8.3" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/docs/examples/1.8.x/client-android/java/databases/create-document.md b/docs/examples/1.8.x/client-android/java/databases/create-document.md index 694d99a089..bfd4601ab4 100644 --- a/docs/examples/1.8.x/client-android/java/databases/create-document.md +++ b/docs/examples/1.8.x/client-android/java/databases/create-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -19,7 +21,7 @@ databases.createDocument( "age" to 30, "isAdmin" to false ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/java/databases/update-document.md b/docs/examples/1.8.x/client-android/java/databases/update-document.md index a6103e44d1..d3a3967d5b 100644 --- a/docs/examples/1.8.x/client-android/java/databases/update-document.md +++ b/docs/examples/1.8.x/client-android/java/databases/update-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ databases.updateDocument( "", // collectionId "", // documentId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/java/databases/upsert-document.md b/docs/examples/1.8.x/client-android/java/databases/upsert-document.md index 52be46ebe6..e46afa10a9 100644 --- a/docs/examples/1.8.x/client-android/java/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-android/java/databases/upsert-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ databases.upsertDocument( "", // collectionId "", // documentId mapOf( "a" to "b" ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/java/storage/create-file.md b/docs/examples/1.8.x/client-android/java/storage/create-file.md index 598e683150..8de00099b0 100644 --- a/docs/examples/1.8.x/client-android/java/storage/create-file.md +++ b/docs/examples/1.8.x/client-android/java/storage/create-file.md @@ -2,6 +2,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.models.InputFile; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ storage.createFile( "", // bucketId "", // fileId InputFile.fromPath("file.png"), // file - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/client-android/java/storage/update-file.md b/docs/examples/1.8.x/client-android/java/storage/update-file.md index 14fa77939d..1e21b3fae1 100644 --- a/docs/examples/1.8.x/client-android/java/storage/update-file.md +++ b/docs/examples/1.8.x/client-android/java/storage/update-file.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ storage.updateFile( "", // bucketId "", // fileId "", // name (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/client-android/java/tablesdb/create-row.md b/docs/examples/1.8.x/client-android/java/tablesdb/create-row.md index 92a9058401..f7aa10e5c7 100644 --- a/docs/examples/1.8.x/client-android/java/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-android/java/tablesdb/create-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -19,7 +21,7 @@ tablesDB.createRow( "age" to 30, "isAdmin" to false ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/java/tablesdb/update-row.md b/docs/examples/1.8.x/client-android/java/tablesdb/update-row.md index cea7baaa16..3abaf90603 100644 --- a/docs/examples/1.8.x/client-android/java/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-android/java/tablesdb/update-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ tablesDB.updateRow( "", // tableId "", // rowId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/java/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-android/java/tablesdb/upsert-row.md index 9d6323fffa..6f979fc126 100644 --- a/docs/examples/1.8.x/client-android/java/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-android/java/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ tablesDB.upsertRow( "", // tableId "", // rowId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/client-android/kotlin/databases/create-document.md b/docs/examples/1.8.x/client-android/kotlin/databases/create-document.md index 7d4b04d13a..3e27c44ab2 100644 --- a/docs/examples/1.8.x/client-android/kotlin/databases/create-document.md +++ b/docs/examples/1.8.x/client-android/kotlin/databases/create-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -19,6 +21,6 @@ val result = databases.createDocument( "age" to 30, "isAdmin" to false ), - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/databases/update-document.md b/docs/examples/1.8.x/client-android/kotlin/databases/update-document.md index 2cacce6f95..ba6d4d189f 100644 --- a/docs/examples/1.8.x/client-android/kotlin/databases/update-document.md +++ b/docs/examples/1.8.x/client-android/kotlin/databases/update-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +15,6 @@ val result = databases.updateDocument( collectionId = "", documentId = "", data = mapOf( "a" to "b" ), // (optional) - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/databases/upsert-document.md b/docs/examples/1.8.x/client-android/kotlin/databases/upsert-document.md index e5ac4375e8..4d95c9d684 100644 --- a/docs/examples/1.8.x/client-android/kotlin/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-android/kotlin/databases/upsert-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +15,6 @@ val result = databases.upsertDocument( collectionId = "", documentId = "", data = mapOf( "a" to "b" ), - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/storage/create-file.md b/docs/examples/1.8.x/client-android/kotlin/storage/create-file.md index 1c78c51e67..8a454b7ee2 100644 --- a/docs/examples/1.8.x/client-android/kotlin/storage/create-file.md +++ b/docs/examples/1.8.x/client-android/kotlin/storage/create-file.md @@ -2,6 +2,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.models.InputFile import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,5 +15,5 @@ val result = storage.createFile( bucketId = "", fileId = "", file = InputFile.fromPath("file.png"), - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/storage/update-file.md b/docs/examples/1.8.x/client-android/kotlin/storage/update-file.md index 116d156ead..32c19a8252 100644 --- a/docs/examples/1.8.x/client-android/kotlin/storage/update-file.md +++ b/docs/examples/1.8.x/client-android/kotlin/storage/update-file.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,5 +14,5 @@ val result = storage.updateFile( bucketId = "", fileId = "", name = "", // (optional) - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/tablesdb/create-row.md b/docs/examples/1.8.x/client-android/kotlin/tablesdb/create-row.md index f5850b23be..5c54cdcdca 100644 --- a/docs/examples/1.8.x/client-android/kotlin/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-android/kotlin/tablesdb/create-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -19,6 +21,6 @@ val result = tablesDB.createRow( "age" to 30, "isAdmin" to false ), - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/tablesdb/update-row.md b/docs/examples/1.8.x/client-android/kotlin/tablesdb/update-row.md index a17f231418..91b2709058 100644 --- a/docs/examples/1.8.x/client-android/kotlin/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-android/kotlin/tablesdb/update-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +15,6 @@ val result = tablesDB.updateRow( tableId = "", rowId = "", data = mapOf( "a" to "b" ), // (optional) - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-android/kotlin/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-android/kotlin/tablesdb/upsert-row.md index 074fa339cb..6b1a45e5eb 100644 --- a/docs/examples/1.8.x/client-android/kotlin/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-android/kotlin/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +15,6 @@ val result = tablesDB.upsertRow( tableId = "", rowId = "", data = mapOf( "a" to "b" ), // (optional) - permissions = listOf("read("any")"), // (optional) + permissions = listOf(Permission.read(Role.any())), // (optional) transactionId = "", // (optional) ) \ No newline at end of file diff --git a/docs/examples/1.8.x/client-apple/examples/databases/create-document.md b/docs/examples/1.8.x/client-apple/examples/databases/create-document.md index d7fa796ed1..059c166a5c 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/create-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/create-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -17,7 +19,7 @@ let document = try await databases.createDocument( "age": 30, "isAdmin": false ], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/databases/update-document.md b/docs/examples/1.8.x/client-apple/examples/databases/update-document.md index d626d7d3c0..74208c6085 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/update-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/update-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let document = try await databases.updateDocument( collectionId: "", documentId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md b/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md index 8e2a4a09e9..0ddff28a33 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let document = try await databases.upsertDocument( collectionId: "", documentId: "", data: [:], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/storage/create-file.md b/docs/examples/1.8.x/client-apple/examples/storage/create-file.md index 2db9b20e1b..37c014a04a 100644 --- a/docs/examples/1.8.x/client-apple/examples/storage/create-file.md +++ b/docs/examples/1.8.x/client-apple/examples/storage/create-file.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -10,6 +12,6 @@ let file = try await storage.createFile( bucketId: "", fileId: "", file: InputFile.fromPath("file.png"), - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/storage/update-file.md b/docs/examples/1.8.x/client-apple/examples/storage/update-file.md index adef969845..cf6b152754 100644 --- a/docs/examples/1.8.x/client-apple/examples/storage/update-file.md +++ b/docs/examples/1.8.x/client-apple/examples/storage/update-file.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -10,6 +12,6 @@ let file = try await storage.updateFile( bucketId: "", fileId: "", name: "", // optional - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md index 4d66980bb5..a364e58c17 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -17,7 +19,7 @@ let row = try await tablesDB.createRow( "age": 30, "isAdmin": false ], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md index cd5591db80..8c3d832bad 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let row = try await tablesDB.updateRow( tableId: "", rowId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md index 955935adef..2618de440a 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let row = try await tablesDB.upsertRow( tableId: "", rowId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/client-flutter/examples/databases/create-document.md b/docs/examples/1.8.x/client-flutter/examples/databases/create-document.md index 0acbe689dc..20a1c3c354 100644 --- a/docs/examples/1.8.x/client-flutter/examples/databases/create-document.md +++ b/docs/examples/1.8.x/client-flutter/examples/databases/create-document.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,6 +19,6 @@ Document result = await databases.createDocument( "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/databases/update-document.md b/docs/examples/1.8.x/client-flutter/examples/databases/update-document.md index 44ade30c3a..9a5b3ee7dd 100644 --- a/docs/examples/1.8.x/client-flutter/examples/databases/update-document.md +++ b/docs/examples/1.8.x/client-flutter/examples/databases/update-document.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +13,6 @@ Document result = await databases.updateDocument( collectionId: '', documentId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/databases/upsert-document.md b/docs/examples/1.8.x/client-flutter/examples/databases/upsert-document.md index 10117ac78d..7e6eb1aea9 100644 --- a/docs/examples/1.8.x/client-flutter/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-flutter/examples/databases/upsert-document.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +13,6 @@ Document result = await databases.upsertDocument( collectionId: '', documentId: '', data: {}, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/storage/create-file.md b/docs/examples/1.8.x/client-flutter/examples/storage/create-file.md index 661f6b8b1e..ed1021c9a6 100644 --- a/docs/examples/1.8.x/client-flutter/examples/storage/create-file.md +++ b/docs/examples/1.8.x/client-flutter/examples/storage/create-file.md @@ -1,5 +1,7 @@ import 'dart:io'; import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,5 +13,5 @@ File result = await storage.createFile( bucketId: '', fileId: '', file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/storage/update-file.md b/docs/examples/1.8.x/client-flutter/examples/storage/update-file.md index 8e598121c1..8aa292348d 100644 --- a/docs/examples/1.8.x/client-flutter/examples/storage/update-file.md +++ b/docs/examples/1.8.x/client-flutter/examples/storage/update-file.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,5 +12,5 @@ File result = await storage.updateFile( bucketId: '', fileId: '', name: '', // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/tablesdb/create-row.md b/docs/examples/1.8.x/client-flutter/examples/tablesdb/create-row.md index 345f0c239a..ede8c4044a 100644 --- a/docs/examples/1.8.x/client-flutter/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-flutter/examples/tablesdb/create-row.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,6 +19,6 @@ Row result = await tablesDB.createRow( "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/tablesdb/update-row.md b/docs/examples/1.8.x/client-flutter/examples/tablesdb/update-row.md index 08ab309363..91f2dd3cdf 100644 --- a/docs/examples/1.8.x/client-flutter/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-flutter/examples/tablesdb/update-row.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +13,6 @@ Row result = await tablesDB.updateRow( tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-flutter/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-flutter/examples/tablesdb/upsert-row.md index 061bb0b85a..4fb785d744 100644 --- a/docs/examples/1.8.x/client-flutter/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-flutter/examples/tablesdb/upsert-row.md @@ -1,4 +1,6 @@ import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/permission.dart'; +import 'package:appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +13,6 @@ Row result = await tablesDB.upsertRow( tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '', // optional ); diff --git a/docs/examples/1.8.x/client-react-native/examples/databases/create-document.md b/docs/examples/1.8.x/client-react-native/examples/databases/create-document.md index 3f7fd9af8f..58ea6ee1ef 100644 --- a/docs/examples/1.8.x/client-react-native/examples/databases/create-document.md +++ b/docs/examples/1.8.x/client-react-native/examples/databases/create-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "react-native-appwrite"; +import { Client, Databases, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/databases/update-document.md b/docs/examples/1.8.x/client-react-native/examples/databases/update-document.md index 29674bd3d0..a82fa5238c 100644 --- a/docs/examples/1.8.x/client-react-native/examples/databases/update-document.md +++ b/docs/examples/1.8.x/client-react-native/examples/databases/update-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "react-native-appwrite"; +import { Client, Databases, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/databases/upsert-document.md b/docs/examples/1.8.x/client-react-native/examples/databases/upsert-document.md index aa8fd1ca94..b6d2bed4d3 100644 --- a/docs/examples/1.8.x/client-react-native/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-react-native/examples/databases/upsert-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "react-native-appwrite"; +import { Client, Databases, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/storage/create-file.md b/docs/examples/1.8.x/client-react-native/examples/storage/create-file.md index 965c8d42cf..c1a383d533 100644 --- a/docs/examples/1.8.x/client-react-native/examples/storage/create-file.md +++ b/docs/examples/1.8.x/client-react-native/examples/storage/create-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "react-native-appwrite"; +import { Client, Storage, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/storage/update-file.md b/docs/examples/1.8.x/client-react-native/examples/storage/update-file.md index 2a8092f86d..dd98cdbbfa 100644 --- a/docs/examples/1.8.x/client-react-native/examples/storage/update-file.md +++ b/docs/examples/1.8.x/client-react-native/examples/storage/update-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "react-native-appwrite"; +import { Client, Storage, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/tablesdb/create-row.md b/docs/examples/1.8.x/client-react-native/examples/tablesdb/create-row.md index 6be799f547..33f1c8d458 100644 --- a/docs/examples/1.8.x/client-react-native/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-react-native/examples/tablesdb/create-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "react-native-appwrite"; +import { Client, TablesDB, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/tablesdb/update-row.md b/docs/examples/1.8.x/client-react-native/examples/tablesdb/update-row.md index a83e3ea3e1..b53b927b3b 100644 --- a/docs/examples/1.8.x/client-react-native/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-react-native/examples/tablesdb/update-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "react-native-appwrite"; +import { Client, TablesDB, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-react-native/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-react-native/examples/tablesdb/upsert-row.md index 7a82e0711e..28909273a5 100644 --- a/docs/examples/1.8.x/client-react-native/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-react-native/examples/tablesdb/upsert-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "react-native-appwrite"; +import { Client, TablesDB, Permission, Role } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/docs/examples/1.8.x/client-web/examples/databases/create-document.md b/docs/examples/1.8.x/client-web/examples/databases/create-document.md index 8417575ebf..8c1b0ec03a 100644 --- a/docs/examples/1.8.x/client-web/examples/databases/create-document.md +++ b/docs/examples/1.8.x/client-web/examples/databases/create-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "appwrite"; +import { Client, Databases, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,7 +17,7 @@ const result = await databases.createDocument({ "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/client-web/examples/databases/update-document.md b/docs/examples/1.8.x/client-web/examples/databases/update-document.md index 33a6d73a12..b5d90fd58d 100644 --- a/docs/examples/1.8.x/client-web/examples/databases/update-document.md +++ b/docs/examples/1.8.x/client-web/examples/databases/update-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "appwrite"; +import { Client, Databases, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await databases.updateDocument({ collectionId: '', documentId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/client-web/examples/databases/upsert-document.md b/docs/examples/1.8.x/client-web/examples/databases/upsert-document.md index e14ad5fc6b..7af42d6337 100644 --- a/docs/examples/1.8.x/client-web/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-web/examples/databases/upsert-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "appwrite"; +import { Client, Databases, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await databases.upsertDocument({ collectionId: '', documentId: '', data: {}, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/client-web/examples/storage/create-file.md b/docs/examples/1.8.x/client-web/examples/storage/create-file.md index 999fcb20ac..565f6ee435 100644 --- a/docs/examples/1.8.x/client-web/examples/storage/create-file.md +++ b/docs/examples/1.8.x/client-web/examples/storage/create-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "appwrite"; +import { Client, Storage, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await storage.createFile({ bucketId: '', fileId: '', file: document.getElementById('uploader').files[0], - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional }); console.log(result); diff --git a/docs/examples/1.8.x/client-web/examples/storage/update-file.md b/docs/examples/1.8.x/client-web/examples/storage/update-file.md index 96e1dc5ee2..1f1c460fc0 100644 --- a/docs/examples/1.8.x/client-web/examples/storage/update-file.md +++ b/docs/examples/1.8.x/client-web/examples/storage/update-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "appwrite"; +import { Client, Storage, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await storage.updateFile({ bucketId: '', fileId: '', name: '', // optional - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional }); console.log(result); diff --git a/docs/examples/1.8.x/client-web/examples/tablesdb/create-row.md b/docs/examples/1.8.x/client-web/examples/tablesdb/create-row.md index 3bbcf89d4f..2f786b7138 100644 --- a/docs/examples/1.8.x/client-web/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-web/examples/tablesdb/create-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "appwrite"; +import { Client, TablesDB, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,7 +17,7 @@ const result = await tablesDB.createRow({ "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/client-web/examples/tablesdb/update-row.md b/docs/examples/1.8.x/client-web/examples/tablesdb/update-row.md index ecbcd4fc7a..cda74edb07 100644 --- a/docs/examples/1.8.x/client-web/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-web/examples/tablesdb/update-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "appwrite"; +import { Client, TablesDB, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await tablesDB.updateRow({ tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/client-web/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-web/examples/tablesdb/upsert-row.md index ddac9ff327..c0cb973c79 100644 --- a/docs/examples/1.8.x/client-web/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-web/examples/tablesdb/upsert-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "appwrite"; +import { Client, TablesDB, Permission, Role } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await tablesDB.upsertRow({ tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-cli/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/console-cli/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..9a16a17a94 --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/messaging/create-resend-provider.md @@ -0,0 +1,3 @@ +appwrite messaging create-resend-provider \ + --provider-id \ + --name diff --git a/docs/examples/1.8.x/console-cli/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/console-cli/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..df22cf075f --- /dev/null +++ b/docs/examples/1.8.x/console-cli/examples/messaging/update-resend-provider.md @@ -0,0 +1,2 @@ +appwrite messaging update-resend-provider \ + --provider-id diff --git a/docs/examples/1.8.x/console-web/examples/databases/create-collection.md b/docs/examples/1.8.x/console-web/examples/databases/create-collection.md index f3c2efaaee..f02b110e51 100644 --- a/docs/examples/1.8.x/console-web/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/console-web/examples/databases/create-collection.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "@appwrite.io/console"; +import { Client, Databases, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await databases.createCollection({ databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/databases/create-document.md b/docs/examples/1.8.x/console-web/examples/databases/create-document.md index 80f3fe66ad..ae93f274a9 100644 --- a/docs/examples/1.8.x/console-web/examples/databases/create-document.md +++ b/docs/examples/1.8.x/console-web/examples/databases/create-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "@appwrite.io/console"; +import { Client, Databases, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,7 +17,7 @@ const result = await databases.createDocument({ "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/databases/update-collection.md b/docs/examples/1.8.x/console-web/examples/databases/update-collection.md index 83763e4509..23b55658e1 100644 --- a/docs/examples/1.8.x/console-web/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/console-web/examples/databases/update-collection.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "@appwrite.io/console"; +import { Client, Databases, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await databases.updateCollection({ databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/databases/update-document.md b/docs/examples/1.8.x/console-web/examples/databases/update-document.md index 8a92d5b9f4..5ab73b3210 100644 --- a/docs/examples/1.8.x/console-web/examples/databases/update-document.md +++ b/docs/examples/1.8.x/console-web/examples/databases/update-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "@appwrite.io/console"; +import { Client, Databases, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await databases.updateDocument({ collectionId: '', documentId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/databases/upsert-document.md b/docs/examples/1.8.x/console-web/examples/databases/upsert-document.md index e7a52fd7cd..9c29601d67 100644 --- a/docs/examples/1.8.x/console-web/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/console-web/examples/databases/upsert-document.md @@ -1,4 +1,4 @@ -import { Client, Databases } from "@appwrite.io/console"; +import { Client, Databases, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await databases.upsertDocument({ collectionId: '', documentId: '', data: {}, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/console-web/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..22a905c2c0 --- /dev/null +++ b/docs/examples/1.8.x/console-web/examples/messaging/create-resend-provider.md @@ -0,0 +1,20 @@ +import { Client, Messaging } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const messaging = new Messaging(client); + +const result = await messaging.createResendProvider({ + providerId: '', + name: '', + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: 'email@example.com', // optional + enabled: false // optional +}); + +console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/console-web/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..daea9920a1 --- /dev/null +++ b/docs/examples/1.8.x/console-web/examples/messaging/update-resend-provider.md @@ -0,0 +1,20 @@ +import { Client, Messaging } from "@appwrite.io/console"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const messaging = new Messaging(client); + +const result = await messaging.updateResendProvider({ + providerId: '', + name: '', // optional + enabled: false, // optional + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: '' // optional +}); + +console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md b/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md index 7727d1c7bb..343568a408 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md @@ -1,4 +1,4 @@ -import { Client, Storage, } from "@appwrite.io/console"; +import { Client, Storage, , Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +9,7 @@ const storage = new Storage(client); const result = await storage.createBucket({ bucketId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/console-web/examples/storage/create-file.md b/docs/examples/1.8.x/console-web/examples/storage/create-file.md index 1dcab62ba4..95a19050d1 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/create-file.md +++ b/docs/examples/1.8.x/console-web/examples/storage/create-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "@appwrite.io/console"; +import { Client, Storage, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await storage.createFile({ bucketId: '', fileId: '', file: document.getElementById('uploader').files[0], - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional }); console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md b/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md index 58ad29fe15..b2c2eaa885 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md @@ -1,4 +1,4 @@ -import { Client, Storage, } from "@appwrite.io/console"; +import { Client, Storage, , Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +9,7 @@ const storage = new Storage(client); const result = await storage.updateBucket({ bucketId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/console-web/examples/storage/update-file.md b/docs/examples/1.8.x/console-web/examples/storage/update-file.md index b73149db13..b014b0bf62 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/update-file.md +++ b/docs/examples/1.8.x/console-web/examples/storage/update-file.md @@ -1,4 +1,4 @@ -import { Client, Storage } from "@appwrite.io/console"; +import { Client, Storage, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await storage.updateFile({ bucketId: '', fileId: '', name: '', // optional - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional }); console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/tablesdb/create-row.md b/docs/examples/1.8.x/console-web/examples/tablesdb/create-row.md index 1991d44258..80c8a9763d 100644 --- a/docs/examples/1.8.x/console-web/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/console-web/examples/tablesdb/create-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "@appwrite.io/console"; +import { Client, TablesDB, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -17,7 +17,7 @@ const result = await tablesDB.createRow({ "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/tablesdb/create-table.md b/docs/examples/1.8.x/console-web/examples/tablesdb/create-table.md index aad0eceb73..a203aeb7e4 100644 --- a/docs/examples/1.8.x/console-web/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/console-web/examples/tablesdb/create-table.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "@appwrite.io/console"; +import { Client, TablesDB, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await tablesDB.createTable({ databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional rowSecurity: false, // optional enabled: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/tablesdb/update-row.md b/docs/examples/1.8.x/console-web/examples/tablesdb/update-row.md index 6193d79567..952ed62e64 100644 --- a/docs/examples/1.8.x/console-web/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/console-web/examples/tablesdb/update-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "@appwrite.io/console"; +import { Client, TablesDB, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await tablesDB.updateRow({ tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/tablesdb/update-table.md b/docs/examples/1.8.x/console-web/examples/tablesdb/update-table.md index 11eec2e343..ee6b193be9 100644 --- a/docs/examples/1.8.x/console-web/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/console-web/examples/tablesdb/update-table.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "@appwrite.io/console"; +import { Client, TablesDB, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await tablesDB.updateTable({ databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional rowSecurity: false, // optional enabled: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/console-web/examples/tablesdb/upsert-row.md index f56eff55fa..dee8dd0a6b 100644 --- a/docs/examples/1.8.x/console-web/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/console-web/examples/tablesdb/upsert-row.md @@ -1,4 +1,4 @@ -import { Client, TablesDB } from "@appwrite.io/console"; +import { Client, TablesDB, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,7 @@ const result = await tablesDB.upsertRow({ tableId: '', rowId: '', data: {}, // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: '' // optional }); diff --git a/docs/examples/1.8.x/server-dart/examples/databases/create-collection.md b/docs/examples/1.8.x/server-dart/examples/databases/create-collection.md index 61401761ec..51a7c12626 100644 --- a/docs/examples/1.8.x/server-dart/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-dart/examples/databases/create-collection.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +13,7 @@ Collection result = await databases.createCollection( databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) documentSecurity: false, // (optional) enabled: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/databases/create-document.md b/docs/examples/1.8.x/server-dart/examples/databases/create-document.md index 0f663a67f6..359ef2368c 100644 --- a/docs/examples/1.8.x/server-dart/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-dart/examples/databases/create-document.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -18,6 +20,6 @@ Document result = await databases.createDocument( "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/databases/update-collection.md b/docs/examples/1.8.x/server-dart/examples/databases/update-collection.md index c3c565b231..ff9b7eb4ee 100644 --- a/docs/examples/1.8.x/server-dart/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-dart/examples/databases/update-collection.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +13,7 @@ Collection result = await databases.updateCollection( databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) documentSecurity: false, // (optional) enabled: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/databases/update-document.md b/docs/examples/1.8.x/server-dart/examples/databases/update-document.md index 077a08f606..b48041e228 100644 --- a/docs/examples/1.8.x/server-dart/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-dart/examples/databases/update-document.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +14,6 @@ Document result = await databases.updateDocument( collectionId: '', documentId: '', data: {}, // (optional) - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-dart/examples/databases/upsert-document.md index be4216da67..95a6d9d4a4 100644 --- a/docs/examples/1.8.x/server-dart/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-dart/examples/databases/upsert-document.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +14,6 @@ Document result = await databases.upsertDocument( collectionId: '', documentId: '', data: {}, - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-dart/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..ca5e2a0e7d --- /dev/null +++ b/docs/examples/1.8.x/server-dart/examples/messaging/create-resend-provider.md @@ -0,0 +1,19 @@ +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Messaging messaging = Messaging(client); + +Provider result = await messaging.createResendProvider( + providerId: '', + name: '', + apiKey: '', // (optional) + fromName: '', // (optional) + fromEmail: 'email@example.com', // (optional) + replyToName: '', // (optional) + replyToEmail: 'email@example.com', // (optional) + enabled: false, // (optional) +); diff --git a/docs/examples/1.8.x/server-dart/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-dart/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..cd4755280a --- /dev/null +++ b/docs/examples/1.8.x/server-dart/examples/messaging/update-resend-provider.md @@ -0,0 +1,19 @@ +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Messaging messaging = Messaging(client); + +Provider result = await messaging.updateResendProvider( + providerId: '', + name: '', // (optional) + enabled: false, // (optional) + apiKey: '', // (optional) + fromName: '', // (optional) + fromEmail: 'email@example.com', // (optional) + replyToName: '', // (optional) + replyToEmail: '', // (optional) +); diff --git a/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md index c09a4f2c5d..79357d0e4a 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +12,7 @@ Storage storage = Storage(client); Bucket result = await storage.createBucket( bucketId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) fileSecurity: false, // (optional) enabled: false, // (optional) maximumFileSize: 1, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/create-file.md b/docs/examples/1.8.x/server-dart/examples/storage/create-file.md index e631416ecb..25d7ea6fbb 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/create-file.md @@ -1,5 +1,7 @@ import 'dart:io'; import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,5 +14,5 @@ File result = await storage.createFile( bucketId: '', fileId: '', file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md index b4e45e059c..f3eea941a3 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +12,7 @@ Storage storage = Storage(client); Bucket result = await storage.updateBucket( bucketId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) fileSecurity: false, // (optional) enabled: false, // (optional) maximumFileSize: 1, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/update-file.md b/docs/examples/1.8.x/server-dart/examples/storage/update-file.md index 966883a1f9..4ecc9ecf91 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/update-file.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,5 +13,5 @@ File result = await storage.updateFile( bucketId: '', fileId: '', name: '', // (optional) - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-dart/examples/tablesdb/create-row.md index 255bd9615e..ff91143812 100644 --- a/docs/examples/1.8.x/server-dart/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-dart/examples/tablesdb/create-row.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -18,6 +20,6 @@ Row result = await tablesDB.createRow( "age": 30, "isAdmin": false }, - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-dart/examples/tablesdb/create-table.md index c055e93fec..ee6776f08c 100644 --- a/docs/examples/1.8.x/server-dart/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-dart/examples/tablesdb/create-table.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +13,7 @@ Table result = await tablesDB.createTable( databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) rowSecurity: false, // (optional) enabled: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-dart/examples/tablesdb/update-row.md index e4f683cae0..02ba458c0f 100644 --- a/docs/examples/1.8.x/server-dart/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-dart/examples/tablesdb/update-row.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +14,6 @@ Row result = await tablesDB.updateRow( tableId: '', rowId: '', data: {}, // (optional) - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-dart/examples/tablesdb/update-table.md index fd6646a01b..bdaffe9c68 100644 --- a/docs/examples/1.8.x/server-dart/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-dart/examples/tablesdb/update-table.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +13,7 @@ Table result = await tablesDB.updateTable( databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) rowSecurity: false, // (optional) enabled: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-dart/examples/tablesdb/upsert-row.md index f9b8c848ae..72f1ae2064 100644 --- a/docs/examples/1.8.x/server-dart/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-dart/examples/tablesdb/upsert-row.md @@ -1,4 +1,6 @@ import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/permission.dart'; +import 'package:dart_appwrite/role.dart'; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +14,6 @@ Row result = await tablesDB.upsertRow( tableId: '', rowId: '', data: {}, // (optional) - permissions: ["read("any")"], // (optional) + permissions: [Permission.read(Role.any())], // (optional) transactionId: '', // (optional) ); diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md b/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md index 75a1c5c311..cd7bfe0e8c 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Collection result = await databases.CreateCollection( databaseId: "", collectionId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional documentSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md index 9fcfdd041d..24a709c2bd 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,6 +22,6 @@ Document result = await databases.CreateDocument( age = 30, isAdmin = false }, - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md b/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md index 7885ad3969..e8e63c9fee 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Collection result = await databases.UpdateCollection( databaseId: "", collectionId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional documentSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md index 838b2790a9..7ad9073642 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ Document result = await databases.UpdateDocument( collectionId: "", documentId: "", data: [object], // optional - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md index e12c5dd0d7..903e5b90b9 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ Document result = await databases.UpsertDocument( collectionId: "", documentId: "", data: [object], - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-dotnet/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..526e7916b6 --- /dev/null +++ b/docs/examples/1.8.x/server-dotnet/examples/messaging/create-resend-provider.md @@ -0,0 +1,21 @@ +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Messaging messaging = new Messaging(client); + +Provider result = await messaging.CreateResendProvider( + providerId: "", + name: "", + apiKey: "", // optional + fromName: "", // optional + fromEmail: "email@example.com", // optional + replyToName: "", // optional + replyToEmail: "email@example.com", // optional + enabled: false // optional +); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-dotnet/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..0d295cf007 --- /dev/null +++ b/docs/examples/1.8.x/server-dotnet/examples/messaging/update-resend-provider.md @@ -0,0 +1,21 @@ +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Messaging messaging = new Messaging(client); + +Provider result = await messaging.UpdateResendProvider( + providerId: "", + name: "", // optional + enabled: false, // optional + apiKey: "", // optional + fromName: "", // optional + fromEmail: "email@example.com", // optional + replyToName: "", // optional + replyToEmail: "" // optional +); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md index 0cc317d9a6..57fbefb61e 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md @@ -2,6 +2,8 @@ using Appwrite; using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Storage storage = new Storage(client); Bucket result = await storage.CreateBucket( bucketId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md b/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md index a4cedb8214..94bda90ea6 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,5 +15,5 @@ File result = await storage.CreateFile( bucketId: "", fileId: "", file: InputFile.FromPath("./path-to-files/image.jpg"), - permissions: ["read("any")"] // optional + permissions: new List { Permission.Read(Role.Any()) } // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md index 2a439ba2af..ca919d9f5b 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md @@ -2,6 +2,8 @@ using Appwrite; using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Storage storage = new Storage(client); Bucket result = await storage.UpdateBucket( bucketId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md b/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md index 3f6ea608d7..4f9daf5a1f 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,5 +15,5 @@ File result = await storage.UpdateFile( bucketId: "", fileId: "", name: "", // optional - permissions: ["read("any")"] // optional + permissions: new List { Permission.Read(Role.Any()) } // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md index 8d56063f1f..7c53febcaa 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,6 +22,6 @@ Row result = await tablesDB.CreateRow( age = 30, isAdmin = false }, - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md index 7085b9a0f7..e9c7819f69 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Table result = await tablesDB.CreateTable( databaseId: "", tableId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional rowSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md index 40f4eb4314..9e7f543504 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ Row result = await tablesDB.UpdateRow( tableId: "", rowId: "", data: [object], // optional - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md index b2d52b755c..b55e95efc4 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ Table result = await tablesDB.UpdateTable( databaseId: "", tableId: "", name: "", - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional rowSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md index 18b8419146..8dfb8666c7 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; +using Appwrite.Permission; +using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ Row result = await tablesDB.UpsertRow( tableId: "", rowId: "", data: [object], // optional - permissions: ["read("any")"], // optional + permissions: new List { Permission.Read(Role.Any()) }, // optional transactionId: "" // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-go/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-go/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..a8ec0ad31e --- /dev/null +++ b/docs/examples/1.8.x/server-go/examples/messaging/create-resend-provider.md @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/client" + "github.com/appwrite/sdk-for-go/messaging" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := messaging.New(client) + +response, error := service.CreateResendProvider( + "", + "", + messaging.WithCreateResendProviderApiKey(""), + messaging.WithCreateResendProviderFromName(""), + messaging.WithCreateResendProviderFromEmail("email@example.com"), + messaging.WithCreateResendProviderReplyToName(""), + messaging.WithCreateResendProviderReplyToEmail("email@example.com"), + messaging.WithCreateResendProviderEnabled(false), +) diff --git a/docs/examples/1.8.x/server-go/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-go/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..d67320f478 --- /dev/null +++ b/docs/examples/1.8.x/server-go/examples/messaging/update-resend-provider.md @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" + "github.com/appwrite/sdk-for-go/client" + "github.com/appwrite/sdk-for-go/messaging" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := messaging.New(client) + +response, error := service.UpdateResendProvider( + "", + messaging.WithUpdateResendProviderName(""), + messaging.WithUpdateResendProviderEnabled(false), + messaging.WithUpdateResendProviderApiKey(""), + messaging.WithUpdateResendProviderFromName(""), + messaging.WithUpdateResendProviderFromEmail("email@example.com"), + messaging.WithUpdateResendProviderReplyToName(""), + messaging.WithUpdateResendProviderReplyToEmail(""), +) diff --git a/docs/examples/1.8.x/server-graphql/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-graphql/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..799cd19f96 --- /dev/null +++ b/docs/examples/1.8.x/server-graphql/examples/messaging/create-resend-provider.md @@ -0,0 +1,22 @@ +mutation { + messagingCreateResendProvider( + providerId: "", + name: "", + apiKey: "", + fromName: "", + fromEmail: "email@example.com", + replyToName: "", + replyToEmail: "email@example.com", + enabled: false + ) { + _id + _createdAt + _updatedAt + name + provider + enabled + type + credentials + options + } +} diff --git a/docs/examples/1.8.x/server-graphql/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-graphql/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..a66316d805 --- /dev/null +++ b/docs/examples/1.8.x/server-graphql/examples/messaging/update-resend-provider.md @@ -0,0 +1,22 @@ +mutation { + messagingUpdateResendProvider( + providerId: "", + name: "", + enabled: false, + apiKey: "", + fromName: "", + fromEmail: "email@example.com", + replyToName: "", + replyToEmail: "" + ) { + _id + _createdAt + _updatedAt + name + provider + enabled + type + credentials + options + } +} diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/create-collection.md b/docs/examples/1.8.x/server-kotlin/java/databases/create-collection.md index 8ec51e698a..10eed04a4f 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/create-collection.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/create-collection.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ databases.createCollection( "", // databaseId "", // collectionId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // documentSecurity (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/create-document.md b/docs/examples/1.8.x/server-kotlin/java/databases/create-document.md index 9c6357dfae..aa6c9ea203 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/create-document.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/create-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,7 +22,7 @@ databases.createDocument( "age" to 30, "isAdmin" to false ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/update-collection.md b/docs/examples/1.8.x/server-kotlin/java/databases/update-collection.md index 6805c1149d..24d312da8c 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/update-collection.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/update-collection.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ databases.updateCollection( "", // databaseId "", // collectionId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // documentSecurity (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/update-document.md b/docs/examples/1.8.x/server-kotlin/java/databases/update-document.md index f3019ab95b..749de99fce 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/update-document.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/update-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +16,7 @@ databases.updateDocument( "", // collectionId "", // documentId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/upsert-document.md b/docs/examples/1.8.x/server-kotlin/java/databases/upsert-document.md index 39864b9ac3..4f156bbf8b 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/upsert-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +16,7 @@ databases.upsertDocument( "", // collectionId "", // documentId mapOf( "a" to "b" ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-kotlin/java/messaging/create-resend-provider.md new file mode 100644 index 0000000000..37681f9d33 --- /dev/null +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/create-resend-provider.md @@ -0,0 +1,30 @@ +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Messaging; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Messaging messaging = new Messaging(client); + +messaging.createResendProvider( + "", // providerId + "", // name + "", // apiKey (optional) + "", // fromName (optional) + "email@example.com", // fromEmail (optional) + "", // replyToName (optional) + "email@example.com", // replyToEmail (optional) + false, // enabled (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-kotlin/java/messaging/update-resend-provider.md new file mode 100644 index 0000000000..3282e5d26a --- /dev/null +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/update-resend-provider.md @@ -0,0 +1,30 @@ +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Messaging; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Messaging messaging = new Messaging(client); + +messaging.updateResendProvider( + "", // providerId + "", // name (optional) + false, // enabled (optional) + "", // apiKey (optional) + "", // fromName (optional) + "email@example.com", // fromEmail (optional) + "", // replyToName (optional) + "", // replyToEmail (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md b/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md index a3a3308420..d48db24094 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ Storage storage = new Storage(client); storage.createBucket( "", // bucketId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // fileSecurity (optional) false, // enabled (optional) 1, // maximumFileSize (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/create-file.md b/docs/examples/1.8.x/server-kotlin/java/storage/create-file.md index 583f8569a5..7ddf8913e1 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/create-file.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/create-file.md @@ -2,6 +2,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.models.InputFile; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +16,7 @@ storage.createFile( "", // bucketId "", // fileId InputFile.fromPath("file.png"), // file - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md b/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md index 2d80e2648c..586b113578 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ Storage storage = new Storage(client); storage.updateBucket( "", // bucketId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // fileSecurity (optional) false, // enabled (optional) 1, // maximumFileSize (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/update-file.md b/docs/examples/1.8.x/server-kotlin/java/storage/update-file.md index 7f325f91fb..d534e0eb64 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/update-file.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/update-file.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ storage.updateFile( "", // bucketId "", // fileId "", // name (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-row.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-row.md index d041511c11..9e47167cd1 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,7 +22,7 @@ tablesDB.createRow( "age" to 30, "isAdmin" to false ), // data - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-table.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-table.md index 5bd3b6d0d9..1f9fd10d5c 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-table.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ tablesDB.createTable( "", // databaseId "", // tableId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // rowSecurity (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-row.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-row.md index b4f9631222..835f63b19a 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +16,7 @@ tablesDB.updateRow( "", // tableId "", // rowId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-table.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-table.md index e593a04641..257803b984 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-table.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ tablesDB.updateTable( "", // databaseId "", // tableId "", // name - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) false, // rowSecurity (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/upsert-row.md index b6a986ef4d..6ea29e3e8d 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.Permission; +import io.appwrite.Role; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +16,7 @@ tablesDB.upsertRow( "", // tableId "", // rowId mapOf( "a" to "b" ), // data (optional) - listOf("read("any")"), // permissions (optional) + listOf(Permission.read(Role.any())), // permissions (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-collection.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-collection.md index de9679f559..43031b4a43 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-collection.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-collection.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ val response = databases.createCollection( databaseId = "", collectionId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional documentSecurity = false, // optional enabled = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-document.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-document.md index 46cb711b62..cbdbcaeb9b 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-document.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,6 +22,6 @@ val response = databases.createDocument( "age" to 30, "isAdmin" to false ), - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-collection.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-collection.md index bd42ba07f4..f37b71a580 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-collection.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-collection.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ val response = databases.updateCollection( databaseId = "", collectionId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional documentSecurity = false, // optional enabled = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-document.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-document.md index c64a705676..399dfcd970 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-document.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ val response = databases.updateDocument( collectionId = "", documentId = "", data = mapOf( "a" to "b" ), // optional - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/upsert-document.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/upsert-document.md index d6d6800864..8387398193 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/upsert-document.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ val response = databases.upsertDocument( collectionId = "", documentId = "", data = mapOf( "a" to "b" ), - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-resend-provider.md new file mode 100644 index 0000000000..2db1dc1b17 --- /dev/null +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-resend-provider.md @@ -0,0 +1,21 @@ +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Messaging + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val messaging = Messaging(client) + +val response = messaging.createResendProvider( + providerId = "", + name = "", + apiKey = "", // optional + fromName = "", // optional + fromEmail = "email@example.com", // optional + replyToName = "", // optional + replyToEmail = "email@example.com", // optional + enabled = false // optional +) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-resend-provider.md new file mode 100644 index 0000000000..26d6f12a17 --- /dev/null +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-resend-provider.md @@ -0,0 +1,21 @@ +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Messaging + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val messaging = Messaging(client) + +val response = messaging.updateResendProvider( + providerId = "", + name = "", // optional + enabled = false, // optional + apiKey = "", // optional + fromName = "", // optional + fromEmail = "email@example.com", // optional + replyToName = "", // optional + replyToEmail = "" // optional +) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md index 0bca827872..872932eeff 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ val storage = Storage(client) val response = storage.createBucket( bucketId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional fileSecurity = false, // optional enabled = false, // optional maximumFileSize = 1, // optional diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-file.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-file.md index b22b32a665..e9e986cd26 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-file.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-file.md @@ -2,6 +2,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.models.InputFile import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,5 +16,5 @@ val response = storage.createFile( bucketId = "", fileId = "", file = InputFile.fromPath("file.png"), - permissions = listOf("read("any")") // optional + permissions = listOf(Permission.read(Role.any())) // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md index d475a6e5ed..cb8187343e 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ val storage = Storage(client) val response = storage.updateBucket( bucketId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional fileSecurity = false, // optional enabled = false, // optional maximumFileSize = 1, // optional diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-file.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-file.md index e82ea8125c..b019f567a9 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-file.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-file.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,5 +15,5 @@ val response = storage.updateFile( bucketId = "", fileId = "", name = "", // optional - permissions = listOf("read("any")") // optional + permissions = listOf(Permission.read(Role.any())) // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-row.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-row.md index b06038964b..e74c07a1ef 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -20,6 +22,6 @@ val response = tablesDB.createRow( "age" to 30, "isAdmin" to false ), - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-table.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-table.md index 88b50d22ad..5ff2ba4e08 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-table.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ val response = tablesDB.createTable( databaseId = "", tableId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional rowSecurity = false, // optional enabled = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-row.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-row.md index 0fefb78e5f..94f3770ed1 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ val response = tablesDB.updateRow( tableId = "", rowId = "", data = mapOf( "a" to "b" ), // optional - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-table.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-table.md index 52389087e7..357d5b965d 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-table.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ val response = tablesDB.updateTable( databaseId = "", tableId = "", name = "", - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional rowSecurity = false, // optional enabled = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/upsert-row.md index 5bcc73b4b1..b72ab80c38 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.Permission +import io.appwrite.Role val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +16,6 @@ val response = tablesDB.upsertRow( tableId = "", rowId = "", data = mapOf( "a" to "b" ), // optional - permissions = listOf("read("any")"), // optional + permissions = listOf(Permission.read(Role.any())), // optional transactionId = "" // optional ) diff --git a/docs/examples/1.8.x/server-nodejs/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-nodejs/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..8f00367ea7 --- /dev/null +++ b/docs/examples/1.8.x/server-nodejs/examples/messaging/create-resend-provider.md @@ -0,0 +1,19 @@ +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const messaging = new sdk.Messaging(client); + +const result = await messaging.createResendProvider({ + providerId: '', + name: '', + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: 'email@example.com', // optional + enabled: false // optional +}); diff --git a/docs/examples/1.8.x/server-nodejs/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-nodejs/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..ab962178c4 --- /dev/null +++ b/docs/examples/1.8.x/server-nodejs/examples/messaging/update-resend-provider.md @@ -0,0 +1,19 @@ +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const messaging = new sdk.Messaging(client); + +const result = await messaging.updateResendProvider({ + providerId: '', + name: '', // optional + enabled: false, // optional + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: '' // optional +}); diff --git a/docs/examples/1.8.x/server-php/examples/databases/create-collection.md b/docs/examples/1.8.x/server-php/examples/databases/create-collection.md index 700d97177b..9ac9e365d1 100644 --- a/docs/examples/1.8.x/server-php/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-php/examples/databases/create-collection.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Databases; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,7 +16,7 @@ $result = $databases->createCollection( databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional documentSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/databases/create-document.md b/docs/examples/1.8.x/server-php/examples/databases/create-document.md index 19d3cfb566..39fb26f8ad 100644 --- a/docs/examples/1.8.x/server-php/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-php/examples/databases/create-document.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Databases; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -21,6 +23,6 @@ $result = $databases->createDocument( 'age' => 30, 'isAdmin' => false ], - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/databases/update-collection.md b/docs/examples/1.8.x/server-php/examples/databases/update-collection.md index dd030c0792..d37f6e2427 100644 --- a/docs/examples/1.8.x/server-php/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-php/examples/databases/update-collection.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Databases; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,7 +16,7 @@ $result = $databases->updateCollection( databaseId: '', collectionId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional documentSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/databases/update-document.md b/docs/examples/1.8.x/server-php/examples/databases/update-document.md index d903252886..2aaada2b52 100644 --- a/docs/examples/1.8.x/server-php/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-php/examples/databases/update-document.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Databases; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +17,6 @@ $result = $databases->updateDocument( collectionId: '', documentId: '', data: [], // optional - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-php/examples/databases/upsert-document.md index 6db7462ac7..8e9d2c9c17 100644 --- a/docs/examples/1.8.x/server-php/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-php/examples/databases/upsert-document.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Databases; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +17,6 @@ $result = $databases->upsertDocument( collectionId: '', documentId: '', data: [], - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-php/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..e66b0b82d3 --- /dev/null +++ b/docs/examples/1.8.x/server-php/examples/messaging/create-resend-provider.md @@ -0,0 +1,22 @@ +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$messaging = new Messaging($client); + +$result = $messaging->createResendProvider( + providerId: '', + name: '', + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: 'email@example.com', // optional + enabled: false // optional +); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-php/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..b3f1d1fd4b --- /dev/null +++ b/docs/examples/1.8.x/server-php/examples/messaging/update-resend-provider.md @@ -0,0 +1,22 @@ +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$messaging = new Messaging($client); + +$result = $messaging->updateResendProvider( + providerId: '', + name: '', // optional + enabled: false, // optional + apiKey: '', // optional + fromName: '', // optional + fromEmail: 'email@example.com', // optional + replyToName: '', // optional + replyToEmail: '' // optional +); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md index cd17ffedac..2e7cc1d15c 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Storage; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -13,7 +15,7 @@ $storage = new Storage($client); $result = $storage->createBucket( bucketId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-php/examples/storage/create-file.md b/docs/examples/1.8.x/server-php/examples/storage/create-file.md index 2d13305984..33bef04541 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-php/examples/storage/create-file.md @@ -3,6 +3,8 @@ use Appwrite\Client; use Appwrite\InputFile; use Appwrite\Services\Storage; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,5 +17,5 @@ $result = $storage->createFile( bucketId: '', fileId: '', file: InputFile::withPath('file.png'), - permissions: ["read("any")"] // optional + permissions: [Permission::read(Role::any())] // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md index 1517e36621..819798cb95 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Storage; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -13,7 +15,7 @@ $storage = new Storage($client); $result = $storage->updateBucket( bucketId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-php/examples/storage/update-file.md b/docs/examples/1.8.x/server-php/examples/storage/update-file.md index 7b467acfe3..fc84f590a6 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-php/examples/storage/update-file.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\Storage; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,5 +16,5 @@ $result = $storage->updateFile( bucketId: '', fileId: '', name: '', // optional - permissions: ["read("any")"] // optional + permissions: [Permission::read(Role::any())] // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-php/examples/tablesdb/create-row.md index 873ecaf448..70666d52c0 100644 --- a/docs/examples/1.8.x/server-php/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-php/examples/tablesdb/create-row.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\TablesDB; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -21,6 +23,6 @@ $result = $tablesDB->createRow( 'age' => 30, 'isAdmin' => false ], - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-php/examples/tablesdb/create-table.md index 46cf3885fb..aff821c844 100644 --- a/docs/examples/1.8.x/server-php/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-php/examples/tablesdb/create-table.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\TablesDB; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,7 +16,7 @@ $result = $tablesDB->createTable( databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional rowSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-php/examples/tablesdb/update-row.md index c01eba8d57..d92ab78968 100644 --- a/docs/examples/1.8.x/server-php/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-php/examples/tablesdb/update-row.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\TablesDB; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +17,6 @@ $result = $tablesDB->updateRow( tableId: '', rowId: '', data: [], // optional - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-php/examples/tablesdb/update-table.md index 294d8d6751..22f1523bd8 100644 --- a/docs/examples/1.8.x/server-php/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-php/examples/tablesdb/update-table.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\TablesDB; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,7 +16,7 @@ $result = $tablesDB->updateTable( databaseId: '', tableId: '', name: '', - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional rowSecurity: false, // optional enabled: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-php/examples/tablesdb/upsert-row.md index bec3c0af92..192463e9be 100644 --- a/docs/examples/1.8.x/server-php/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-php/examples/tablesdb/upsert-row.md @@ -2,6 +2,8 @@ use Appwrite\Client; use Appwrite\Services\TablesDB; +use Appwrite\Permission; +use Appwrite\Role; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +17,6 @@ $result = $tablesDB->upsertRow( tableId: '', rowId: '', data: [], // optional - permissions: ["read("any")"], // optional + permissions: [Permission::read(Role::any())], // optional transactionId: '' // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-python/examples/databases/create-collection.md b/docs/examples/1.8.x/server-python/examples/databases/create-collection.md index 596d4a9383..66dc66763b 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-python/examples/databases/create-collection.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ result = databases.create_collection( database_id = '', collection_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/databases/create-document.md b/docs/examples/1.8.x/server-python/examples/databases/create-document.md index f42a3d82b6..bd1e1c948a 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-python/examples/databases/create-document.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -19,6 +21,6 @@ result = databases.create_document( "age": 30, "isAdmin": False }, - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/databases/update-collection.md b/docs/examples/1.8.x/server-python/examples/databases/update-collection.md index 2e5be50581..5f357f504d 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-python/examples/databases/update-collection.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ result = databases.update_collection( database_id = '', collection_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/databases/update-document.md b/docs/examples/1.8.x/server-python/examples/databases/update-document.md index c9ef02f72e..a396b9e771 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-python/examples/databases/update-document.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +15,6 @@ result = databases.update_document( collection_id = '', document_id = '', data = {}, # optional - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-python/examples/databases/upsert-document.md index e1a2f44d8c..ac53ae1172 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-python/examples/databases/upsert-document.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +15,6 @@ result = databases.upsert_document( collection_id = '', document_id = '', data = {}, - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-python/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..5789f6b91e --- /dev/null +++ b/docs/examples/1.8.x/server-python/examples/messaging/create-resend-provider.md @@ -0,0 +1,20 @@ +from appwrite.client import Client +from appwrite.services.messaging import Messaging + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +messaging = Messaging(client) + +result = messaging.create_resend_provider( + provider_id = '', + name = '', + api_key = '', # optional + from_name = '', # optional + from_email = 'email@example.com', # optional + reply_to_name = '', # optional + reply_to_email = 'email@example.com', # optional + enabled = False # optional +) diff --git a/docs/examples/1.8.x/server-python/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-python/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..a8ad85954a --- /dev/null +++ b/docs/examples/1.8.x/server-python/examples/messaging/update-resend-provider.md @@ -0,0 +1,20 @@ +from appwrite.client import Client +from appwrite.services.messaging import Messaging + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +messaging = Messaging(client) + +result = messaging.update_resend_provider( + provider_id = '', + name = '', # optional + enabled = False, # optional + api_key = '', # optional + from_name = '', # optional + from_email = 'email@example.com', # optional + reply_to_name = '', # optional + reply_to_email = '' # optional +) diff --git a/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md index 9672782b5c..e08b2d0d6b 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -11,7 +13,7 @@ storage = Storage(client) result = storage.create_bucket( bucket_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional file_security = False, # optional enabled = False, # optional maximum_file_size = 1, # optional diff --git a/docs/examples/1.8.x/server-python/examples/storage/create-file.md b/docs/examples/1.8.x/server-python/examples/storage/create-file.md index 6e57284b85..e37a5921a5 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-python/examples/storage/create-file.md @@ -1,6 +1,8 @@ from appwrite.client import Client from appwrite.services.storage import Storage from appwrite.input_file import InputFile +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,5 +15,5 @@ result = storage.create_file( bucket_id = '', file_id = '', file = InputFile.from_path('file.png'), - permissions = ["read("any")"] # optional + permissions = [Permission.read(Role.any())] # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md index f2e741a5aa..bfa7cc3fdb 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -11,7 +13,7 @@ storage = Storage(client) result = storage.update_bucket( bucket_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional file_security = False, # optional enabled = False, # optional maximum_file_size = 1, # optional diff --git a/docs/examples/1.8.x/server-python/examples/storage/update-file.md b/docs/examples/1.8.x/server-python/examples/storage/update-file.md index cf1e5779bb..25acbef823 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-python/examples/storage/update-file.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,5 +14,5 @@ result = storage.update_file( bucket_id = '', file_id = '', name = '', # optional - permissions = ["read("any")"] # optional + permissions = [Permission.read(Role.any())] # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-python/examples/tablesdb/create-row.md index d2de58617f..d2448029e3 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/create-row.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -19,6 +21,6 @@ result = tables_db.create_row( "age": 30, "isAdmin": False }, - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-python/examples/tablesdb/create-table.md index f258ed880c..91a15df486 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/create-table.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ result = tables_db.create_table( database_id = '', table_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional row_security = False, # optional enabled = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-python/examples/tablesdb/update-row.md index 89dbfb0587..3d342642ab 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/update-row.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +15,6 @@ result = tables_db.update_row( table_id = '', row_id = '', data = {}, # optional - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-python/examples/tablesdb/update-table.md index 7e494f0c43..c3e0115b75 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/update-table.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ result = tables_db.update_table( database_id = '', table_id = '', name = '', - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional row_security = False, # optional enabled = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-python/examples/tablesdb/upsert-row.md index 8539e12e96..a89d657c63 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/upsert-row.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.permission import Permission +from appwrite.role import Role client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +15,6 @@ result = tables_db.upsert_row( table_id = '', row_id = '', data = {}, # optional - permissions = ["read("any")"], # optional + permissions = [Permission.read(Role.any())], # optional transaction_id = '' # optional ) diff --git a/docs/examples/1.8.x/server-rest/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-rest/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..e18253635a --- /dev/null +++ b/docs/examples/1.8.x/server-rest/examples/messaging/create-resend-provider.md @@ -0,0 +1,17 @@ +POST /v1/messaging/providers/resend HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +X-Appwrite-Response-Format: 1.8.0 +X-Appwrite-Project: +X-Appwrite-Key: + +{ + "providerId": "", + "name": "", + "apiKey": "", + "fromName": "", + "fromEmail": "email@example.com", + "replyToName": "", + "replyToEmail": "email@example.com", + "enabled": false +} diff --git a/docs/examples/1.8.x/server-rest/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-rest/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..cd9e87b574 --- /dev/null +++ b/docs/examples/1.8.x/server-rest/examples/messaging/update-resend-provider.md @@ -0,0 +1,16 @@ +PATCH /v1/messaging/providers/resend/{providerId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +X-Appwrite-Response-Format: 1.8.0 +X-Appwrite-Project: +X-Appwrite-Key: + +{ + "name": "", + "enabled": false, + "apiKey": "", + "fromName": "", + "fromEmail": "email@example.com", + "replyToName": "", + "replyToEmail": "" +} diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/create-collection.md b/docs/examples/1.8.x/server-ruby/examples/databases/create-collection.md index c22b34813e..178b5a5221 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/create-collection.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,7 +15,7 @@ result = databases.create_collection( database_id: '', collection_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional document_security: false, # optional enabled: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/create-document.md b/docs/examples/1.8.x/server-ruby/examples/databases/create-document.md index d12a3dbb8d..c29c5d28df 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/create-document.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -20,6 +22,6 @@ result = databases.create_document( "age" => 30, "isAdmin" => false }, - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/update-collection.md b/docs/examples/1.8.x/server-ruby/examples/databases/update-collection.md index d42a651cbb..6928b9a006 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/update-collection.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,7 +15,7 @@ result = databases.update_collection( database_id: '', collection_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional document_security: false, # optional enabled: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/update-document.md b/docs/examples/1.8.x/server-ruby/examples/databases/update-document.md index 5831d68b5d..5a1eb56537 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/update-document.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +16,6 @@ result = databases.update_document( collection_id: '', document_id: '', data: {}, # optional - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-ruby/examples/databases/upsert-document.md index e5daa554c4..fa2f1cd124 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/upsert-document.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +16,6 @@ result = databases.upsert_document( collection_id: '', document_id: '', data: {}, - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-ruby/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..73c969b638 --- /dev/null +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/create-resend-provider.md @@ -0,0 +1,21 @@ +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +messaging = Messaging.new(client) + +result = messaging.create_resend_provider( + provider_id: '', + name: '', + api_key: '', # optional + from_name: '', # optional + from_email: 'email@example.com', # optional + reply_to_name: '', # optional + reply_to_email: 'email@example.com', # optional + enabled: false # optional +) diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-ruby/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..cb72b5c7de --- /dev/null +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/update-resend-provider.md @@ -0,0 +1,21 @@ +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +messaging = Messaging.new(client) + +result = messaging.update_resend_provider( + provider_id: '', + name: '', # optional + enabled: false, # optional + api_key: '', # optional + from_name: '', # optional + from_email: 'email@example.com', # optional + reply_to_name: '', # optional + reply_to_email: '' # optional +) diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md index 643431ed2c..4a12518fb7 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ storage = Storage.new(client) result = storage.create_bucket( bucket_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional file_security: false, # optional enabled: false, # optional maximum_file_size: 1, # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/create-file.md b/docs/examples/1.8.x/server-ruby/examples/storage/create-file.md index 99e07c33f4..8e045da3d6 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/create-file.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,5 +15,5 @@ result = storage.create_file( bucket_id: '', file_id: '', file: InputFile.from_path('dir/file.png'), - permissions: ["read("any")"] # optional + permissions: [Permission.read(Role.any())] # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md index 09b915eb5f..2e44aad536 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +14,7 @@ storage = Storage.new(client) result = storage.update_bucket( bucket_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional file_security: false, # optional enabled: false, # optional maximum_file_size: 1, # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/update-file.md b/docs/examples/1.8.x/server-ruby/examples/storage/update-file.md index a454499d9d..4aeb1c777b 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/update-file.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,5 +15,5 @@ result = storage.update_file( bucket_id: '', file_id: '', name: '', # optional - permissions: ["read("any")"] # optional + permissions: [Permission.read(Role.any())] # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-row.md index 5622711642..a67b821067 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-row.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -20,6 +22,6 @@ result = tables_db.create_row( "age" => 30, "isAdmin" => false }, - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-table.md index c8fcf477b3..6a1a0e901a 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/create-table.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,7 +15,7 @@ result = tables_db.create_table( database_id: '', table_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional row_security: false, # optional enabled: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-row.md index 02123051ca..fc6fca6635 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-row.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +16,6 @@ result = tables_db.update_row( table_id: '', row_id: '', data: {}, # optional - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-table.md index cb8706d0b4..5385e00fc4 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-table.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,7 +15,7 @@ result = tables_db.update_table( database_id: '', table_id: '', name: '', - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional row_security: false, # optional enabled: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/upsert-row.md index 9feb685927..6201834ea6 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/upsert-row.md @@ -1,6 +1,8 @@ require 'appwrite' include Appwrite +include Appwrite::Permission +include Appwrite::Role client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +16,6 @@ result = tables_db.upsert_row( table_id: '', row_id: '', data: {}, # optional - permissions: ["read("any")"], # optional + permissions: [Permission.read(Role.any())], # optional transaction_id: '' # optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md b/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md index c3335b48cb..43ff3d5ca6 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let collection = try await databases.createCollection( databaseId: "", collectionId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/databases/create-document.md b/docs/examples/1.8.x/server-swift/examples/databases/create-document.md index 604bacdc2a..d2da412d0a 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/create-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -18,7 +20,7 @@ let document = try await databases.createDocument( "age": 30, "isAdmin": false ], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md b/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md index 9109990109..31078525ea 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let collection = try await databases.updateCollection( databaseId: "", collectionId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/databases/update-document.md b/docs/examples/1.8.x/server-swift/examples/databases/update-document.md index b6260d754d..3dfcd49fb1 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/update-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ let document = try await databases.updateDocument( collectionId: "", documentId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md index 26897f4ca5..10e811b75b 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ let document = try await databases.upsertDocument( collectionId: "", documentId: "", data: [:], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/messaging/create-resend-provider.md b/docs/examples/1.8.x/server-swift/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000000..c43e1e8417 --- /dev/null +++ b/docs/examples/1.8.x/server-swift/examples/messaging/create-resend-provider.md @@ -0,0 +1,20 @@ +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let messaging = Messaging(client) + +let provider = try await messaging.createResendProvider( + providerId: "", + name: "", + apiKey: "", // optional + fromName: "", // optional + fromEmail: "email@example.com", // optional + replyToName: "", // optional + replyToEmail: "email@example.com", // optional + enabled: false // optional +) + diff --git a/docs/examples/1.8.x/server-swift/examples/messaging/update-resend-provider.md b/docs/examples/1.8.x/server-swift/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000000..ee392f689a --- /dev/null +++ b/docs/examples/1.8.x/server-swift/examples/messaging/update-resend-provider.md @@ -0,0 +1,20 @@ +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let messaging = Messaging(client) + +let provider = try await messaging.updateResendProvider( + providerId: "", + name: "", // optional + enabled: false, // optional + apiKey: "", // optional + fromName: "", // optional + fromEmail: "email@example.com", // optional + replyToName: "", // optional + replyToEmail: "" // optional +) + diff --git a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md index a664e14f5f..a37cb5e7ac 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md @@ -1,5 +1,7 @@ import Appwrite import AppwriteEnums +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let storage = Storage(client) let bucket = try await storage.createBucket( bucketId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-swift/examples/storage/create-file.md b/docs/examples/1.8.x/server-swift/examples/storage/create-file.md index 540c869fab..9ee9ea112c 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/create-file.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +13,6 @@ let file = try await storage.createFile( bucketId: "", fileId: "", file: InputFile.fromPath("file.png"), - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md index de3b5bf0e5..3ba36a1b55 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md @@ -1,5 +1,7 @@ import Appwrite import AppwriteEnums +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let storage = Storage(client) let bucket = try await storage.updateBucket( bucketId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional fileSecurity: false, // optional enabled: false, // optional maximumFileSize: 1, // optional diff --git a/docs/examples/1.8.x/server-swift/examples/storage/update-file.md b/docs/examples/1.8.x/server-swift/examples/storage/update-file.md index d4d7484bd3..ad29edbbac 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/update-file.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +13,6 @@ let file = try await storage.updateFile( bucketId: "", fileId: "", name: "", // optional - permissions: ["read("any")"] // optional + permissions: [Permission.read(Role.any())] // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md index 049ef2da3d..f59bb61864 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -18,7 +20,7 @@ let row = try await tablesDB.createRow( "age": 30, "isAdmin": false ], - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md index 11d14e1881..3078500ba9 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let table = try await tablesDB.createTable( databaseId: "", tableId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional rowSecurity: false, // optional enabled: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md index 3ebd9e0970..c125ece91f 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ let row = try await tablesDB.updateRow( tableId: "", rowId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md index 278d6e6b4e..bafb560398 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,7 +13,7 @@ let table = try await tablesDB.updateTable( databaseId: "", tableId: "", name: "", - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional rowSecurity: false, // optional enabled: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md index 1b076266a3..5dac80e2d6 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md @@ -1,4 +1,6 @@ import Appwrite +import AppwritePermission +import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +14,7 @@ let row = try await tablesDB.upsertRow( tableId: "", rowId: "", data: [:], // optional - permissions: ["read("any")"], // optional + permissions: [Permission.read(Role.any())], // optional transactionId: "" // optional ) From 73e3f2869f2c862e515a451d57d41a97def379ff Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 27 Oct 2025 17:41:33 +0530 Subject: [PATCH 38/43] fix: imports --- composer.lock | 12 ++++++------ .../examples/databases/create-document.md | 2 -- .../examples/databases/update-document.md | 2 -- .../examples/databases/upsert-document.md | 2 -- .../client-apple/examples/storage/create-file.md | 2 -- .../client-apple/examples/storage/update-file.md | 2 -- .../client-apple/examples/tablesdb/create-row.md | 2 -- .../client-apple/examples/tablesdb/update-row.md | 2 -- .../client-apple/examples/tablesdb/upsert-row.md | 2 -- .../examples/databases/create-collection.md | 2 -- .../examples/databases/create-document.md | 2 -- .../examples/databases/update-collection.md | 2 -- .../examples/databases/update-document.md | 2 -- .../examples/databases/upsert-document.md | 2 -- .../server-dotnet/examples/storage/create-bucket.md | 2 -- .../server-dotnet/examples/storage/create-file.md | 2 -- .../server-dotnet/examples/storage/update-bucket.md | 2 -- .../server-dotnet/examples/storage/update-file.md | 2 -- .../server-dotnet/examples/tablesdb/create-row.md | 2 -- .../server-dotnet/examples/tablesdb/create-table.md | 2 -- .../server-dotnet/examples/tablesdb/update-row.md | 2 -- .../server-dotnet/examples/tablesdb/update-table.md | 2 -- .../server-dotnet/examples/tablesdb/upsert-row.md | 2 -- .../examples/databases/create-collection.md | 2 -- .../examples/databases/create-document.md | 2 -- .../examples/databases/update-collection.md | 2 -- .../examples/databases/update-document.md | 2 -- .../examples/databases/upsert-document.md | 2 -- .../server-swift/examples/storage/create-bucket.md | 2 -- .../server-swift/examples/storage/create-file.md | 2 -- .../server-swift/examples/storage/update-bucket.md | 2 -- .../server-swift/examples/storage/update-file.md | 2 -- .../server-swift/examples/tablesdb/create-row.md | 2 -- .../server-swift/examples/tablesdb/create-table.md | 2 -- .../server-swift/examples/tablesdb/update-row.md | 2 -- .../server-swift/examples/tablesdb/update-table.md | 2 -- .../server-swift/examples/tablesdb/upsert-row.md | 2 -- 37 files changed, 6 insertions(+), 78 deletions(-) diff --git a/composer.lock b/composer.lock index 39f5896bdc..2d565fcd72 100644 --- a/composer.lock +++ b/composer.lock @@ -5318,16 +5318,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.4.13", + "version": "1.4.14", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "db1a0f9b4ae003759bc67e15470160f3775536f8" + "reference": "b9405ccaeac5619c76558a82b7bfeb440b665b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/db1a0f9b4ae003759bc67e15470160f3775536f8", - "reference": "db1a0f9b4ae003759bc67e15470160f3775536f8", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/b9405ccaeac5619c76558a82b7bfeb440b665b9f", + "reference": "b9405ccaeac5619c76558a82b7bfeb440b665b9f", "shasum": "" }, "require": { @@ -5363,9 +5363,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.4.13" + "source": "https://github.com/appwrite/sdk-generator/tree/1.4.14" }, - "time": "2025-10-27T08:35:36+00:00" + "time": "2025-10-27T11:17:01+00:00" }, { "name": "doctrine/annotations", diff --git a/docs/examples/1.8.x/client-apple/examples/databases/create-document.md b/docs/examples/1.8.x/client-apple/examples/databases/create-document.md index 059c166a5c..7513244e0d 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/create-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/create-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/databases/update-document.md b/docs/examples/1.8.x/client-apple/examples/databases/update-document.md index 74208c6085..33dce44031 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/update-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/update-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md b/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md index 0ddff28a33..e678632df2 100644 --- a/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/client-apple/examples/databases/upsert-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/storage/create-file.md b/docs/examples/1.8.x/client-apple/examples/storage/create-file.md index 37c014a04a..938783eb7c 100644 --- a/docs/examples/1.8.x/client-apple/examples/storage/create-file.md +++ b/docs/examples/1.8.x/client-apple/examples/storage/create-file.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/storage/update-file.md b/docs/examples/1.8.x/client-apple/examples/storage/update-file.md index cf6b152754..9859d2ab63 100644 --- a/docs/examples/1.8.x/client-apple/examples/storage/update-file.md +++ b/docs/examples/1.8.x/client-apple/examples/storage/update-file.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md index a364e58c17..ade012c4a1 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/create-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md index 8c3d832bad..90bf66a966 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/update-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md index 2618de440a..5665f929e2 100644 --- a/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/client-apple/examples/tablesdb/upsert-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md b/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md index cd7bfe0e8c..bfb24faf82 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/create-collection.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md index 24a709c2bd..7efb16c10c 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/create-document.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md b/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md index e8e63c9fee..5448723b30 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/update-collection.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md index 7ad9073642..85f3ba5d2f 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/update-document.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md index 903e5b90b9..9ebcafe87f 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-dotnet/examples/databases/upsert-document.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md index 57fbefb61e..f009f694ad 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md @@ -2,8 +2,6 @@ using Appwrite; using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md b/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md index 94bda90ea6..d7cc86e199 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/create-file.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md index ca919d9f5b..d41a45961c 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md @@ -2,8 +2,6 @@ using Appwrite; using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md b/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md index 4f9daf5a1f..36552b529b 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/update-file.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md index 7c53febcaa..f0070e3233 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-row.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md index e9c7819f69..0df89acc12 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/create-table.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md index 9e7f543504..328469923b 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-row.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md index b55e95efc4..24948fd8cf 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/update-table.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md index 8dfb8666c7..88ef7146c2 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-dotnet/examples/tablesdb/upsert-row.md @@ -1,8 +1,6 @@ using Appwrite; using Appwrite.Models; using Appwrite.Services; -using Appwrite.Permission; -using Appwrite.Role; Client client = new Client() .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md b/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md index 43ff3d5ca6..823913ff2f 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/create-collection.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/databases/create-document.md b/docs/examples/1.8.x/server-swift/examples/databases/create-document.md index d2da412d0a..3cb0825d63 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/create-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/create-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md b/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md index 31078525ea..d26fbdcfe2 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/update-collection.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/databases/update-document.md b/docs/examples/1.8.x/server-swift/examples/databases/update-document.md index 3dfcd49fb1..dbb954f133 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/update-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/update-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md b/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md index 10e811b75b..1873d5e015 100644 --- a/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md +++ b/docs/examples/1.8.x/server-swift/examples/databases/upsert-document.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md index a37cb5e7ac..a97f450bfe 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md @@ -1,7 +1,5 @@ import Appwrite import AppwriteEnums -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/storage/create-file.md b/docs/examples/1.8.x/server-swift/examples/storage/create-file.md index 9ee9ea112c..612c56f9f5 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/create-file.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/create-file.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md index 3ba36a1b55..2d89d7c464 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md @@ -1,7 +1,5 @@ import Appwrite import AppwriteEnums -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/storage/update-file.md b/docs/examples/1.8.x/server-swift/examples/storage/update-file.md index ad29edbbac..6c3b3884e6 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/update-file.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/update-file.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md index f59bb61864..427fc030bd 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md index 3078500ba9..a97613e775 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/create-table.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md index c125ece91f..d13df3a96f 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md index bafb560398..1f843b240b 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/update-table.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md b/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md index 5dac80e2d6..e6fec83c08 100644 --- a/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md +++ b/docs/examples/1.8.x/server-swift/examples/tablesdb/upsert-row.md @@ -1,6 +1,4 @@ import Appwrite -import AppwritePermission -import AppwriteRole let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint From 71349385b4c39ec6a9f00cbe10ee27460267d6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Mon, 27 Oct 2025 17:03:24 +0100 Subject: [PATCH 39/43] Upgrade Console (tanstack support), and detector (next.js 16) --- composer.lock | 16 ++++++++-------- docker-compose.yml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index 2d565fcd72..95f7b35082 100644 --- a/composer.lock +++ b/composer.lock @@ -3898,16 +3898,16 @@ }, { "name": "utopia-php/detector", - "version": "0.2.0", + "version": "0.2.1", "source": { "type": "git", "url": "https://github.com/utopia-php/detector.git", - "reference": "795ed56169af833fd6a4ea58a6c747e05ccc7ba6" + "reference": "89f96e864220de13800cf398a1f1686a85401eaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/detector/zipball/795ed56169af833fd6a4ea58a6c747e05ccc7ba6", - "reference": "795ed56169af833fd6a4ea58a6c747e05ccc7ba6", + "url": "https://api.github.com/repos/utopia-php/detector/zipball/89f96e864220de13800cf398a1f1686a85401eaa", + "reference": "89f96e864220de13800cf398a1f1686a85401eaa", "shasum": "" }, "require": { @@ -3937,9 +3937,9 @@ ], "support": { "issues": "https://github.com/utopia-php/detector/issues", - "source": "https://github.com/utopia-php/detector/tree/0.2.0" + "source": "https://github.com/utopia-php/detector/tree/0.2.1" }, - "time": "2025-10-21T13:57:30+00:00" + "time": "2025-10-27T13:38:33+00:00" }, { "name": "utopia-php/dns", @@ -8832,7 +8832,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": { @@ -8856,5 +8856,5 @@ "platform-overrides": { "php": "8.3" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/docker-compose.yml b/docker-compose.yml index c340733cc2..2d2c04ddfd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -219,7 +219,7 @@ services: appwrite-console: <<: *x-logging container_name: appwrite-console - image: appwrite/console:7.4.7 + image: appwrite/console:7.4.11 restart: unless-stopped networks: - appwrite From 8a5a6037b1326e29a81eb1c6bcc4b1f3611dc6be Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 28 Oct 2025 16:50:38 +1300 Subject: [PATCH 40/43] Return empty on no collection, fallback to route validation --- src/Appwrite/Utopia/Request/Filters/V20.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Appwrite/Utopia/Request/Filters/V20.php b/src/Appwrite/Utopia/Request/Filters/V20.php index 3783a61947..aafd273721 100644 --- a/src/Appwrite/Utopia/Request/Filters/V20.php +++ b/src/Appwrite/Utopia/Request/Filters/V20.php @@ -146,8 +146,8 @@ class V20 extends Filter if ($database->isEmpty()) { return []; } - } catch (NotFound) { - throw new Exception(Exception::DATABASE_NOT_FOUND); + } catch (\Throwable) { + return []; } try { @@ -158,8 +158,8 @@ class V20 extends Filter if ($collection->isEmpty()) { return []; } - } catch (NotFound) { - throw new Exception(Exception::COLLECTION_NOT_FOUND); + } catch (\Throwable) { + return []; } $attributes = $collection->getAttribute('attributes', []); From 15cabd018d2d26604e2b3ebcd4fc5b55c5c3743a Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 28 Oct 2025 16:56:54 +1300 Subject: [PATCH 41/43] Lint --- src/Appwrite/Utopia/Request/Filters/V20.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Utopia/Request/Filters/V20.php b/src/Appwrite/Utopia/Request/Filters/V20.php index aafd273721..69e7da6b7a 100644 --- a/src/Appwrite/Utopia/Request/Filters/V20.php +++ b/src/Appwrite/Utopia/Request/Filters/V20.php @@ -5,7 +5,6 @@ namespace Appwrite\Utopia\Request\Filters; use Appwrite\Extend\Exception; use Appwrite\Utopia\Request\Filter; use Utopia\Database\Database; -use Utopia\Database\Exception\NotFound; use Utopia\Database\Exception\Query as QueryException; use Utopia\Database\Query; use Utopia\Database\Validator\Authorization; From b39a118bba7a454fc99a5bfac37a007f0a003866 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 28 Oct 2025 17:37:22 +1300 Subject: [PATCH 42/43] Clean up errors --- src/Appwrite/Platform/Workers/Migrations.php | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index a532517c97..da7b180926 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -231,10 +231,6 @@ class Migrations extends Action */ protected function updateMigrationDocument(Document $migration, Document $project, Realtime $queueForRealtime): Document { - $errors = $migration->getAttribute('errors', []); - $errors = $this->sanitizeErrors($errors, []); - $migration->setAttribute('errors', $errors); - $queueForRealtime ->setProject($project) ->setSubscribers(['console', $project->getId()]) @@ -353,10 +349,7 @@ class Migrations extends Action if (!empty($sourceErrors) || ! empty($destinationErrors)) { $migration->setAttribute('status', 'failed'); $migration->setAttribute('stage', 'finished'); - - $errors = $this->sanitizeErrors($sourceErrors, $destinationErrors); - - $migration->setAttribute('errors', $errors); + $migration->setAttribute('errors', $this->sanitizeErrors($sourceErrors, $destinationErrors)); return; } @@ -382,9 +375,7 @@ class Migrations extends Action if ($transfer) { $sourceErrors = $source->getErrors(); $destinationErrors = $destination->getErrors(); - $errors = $this->sanitizeErrors($sourceErrors, $destinationErrors); - - $migration->setAttribute('errors', $errors); + $migration->setAttribute('errors', $this->sanitizeErrors($sourceErrors, $destinationErrors)); } } finally { $this->updateMigrationDocument($migration, $project, $queueForRealtime); @@ -462,11 +453,12 @@ class Migrations extends Action try { $this->deviceForFiles->delete($path); } finally { - $message = "Export file size {$sizeMB}MB exceeds your plan limit."; - $this->dbForProject->updateDocument('migrations', $migration->getId(), $migration->setAttribute( 'errors', - $message, + [ + 'code' => 0, + 'message' => "Export file size {$sizeMB}MB exceeds your plan limit.", + ], Document::SET_TYPE_APPEND, )); From c0cb4681ae583cd9e9026b2a9a10771467263938 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 28 Oct 2025 17:58:31 +1300 Subject: [PATCH 43/43] Fix error encode --- src/Appwrite/Platform/Workers/Migrations.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index da7b180926..fe06f9c366 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -453,12 +453,11 @@ class Migrations extends Action try { $this->deviceForFiles->delete($path); } finally { + $message = "Export file size {$sizeMB}MB exceeds your plan limit."; + $this->dbForProject->updateDocument('migrations', $migration->getId(), $migration->setAttribute( 'errors', - [ - 'code' => 0, - 'message' => "Export file size {$sizeMB}MB exceeds your plan limit.", - ], + json_encode(['code' => 0, 'message' => $message]), Document::SET_TYPE_APPEND, ));