diff --git a/app/cli.php b/app/cli.php index 77105fffbb..22f09c7c23 100644 --- a/app/cli.php +++ b/app/cli.php @@ -19,7 +19,7 @@ use Utopia\DSN\DSN; use Utopia\Logger\Log; use Utopia\Platform\Service; use Utopia\Pools\Group; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; use Utopia\Registry\Registry; use Utopia\System\System; @@ -160,18 +160,18 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform }; }, ['pools', 'dbForPlatform', 'cache']); -CLI::setResource('queue', function (Group $pools) { - return $pools->get('queue')->pop()->getResource(); +CLI::setResource('publisher', function (Group $pools) { + return $pools->get('publisher')->pop()->getResource(); }, ['pools']); -CLI::setResource('queueForFunctions', function (Connection $queue) { - return new Func($queue); -}, ['queue']); -CLI::setResource('queueForDeletes', function (Connection $queue) { - return new Delete($queue); -}, ['queue']); -CLI::setResource('queueForCertificates', function (Connection $queue) { - return new Certificate($queue); -}, ['queue']); +CLI::setResource('queueForFunctions', function (Publisher $publisher) { + return new Func($publisher); +}, ['publisher']); +CLI::setResource('queueForDeletes', function (Publisher $publisher) { + return new Delete($publisher); +}, ['publisher']); +CLI::setResource('queueForCertificates', function (Publisher $publisher) { + return new Certificate($publisher); +}, ['publisher']); CLI::setResource('logError', function (Registry $register) { return function (Throwable $error, string $namespace, string $action) use ($register) { $logger = $register->get('logger'); diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index 17adcb9e47..a626c47bd0 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -4761,7 +4761,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -4846,7 +4846,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -4960,7 +4960,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -5033,7 +5033,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -5084,7 +5084,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -5543,7 +5543,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -5625,7 +5625,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -5699,7 +5699,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -5784,7 +5784,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -5881,7 +5881,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -5952,7 +5952,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -6040,7 +6040,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -6106,7 +6106,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -6172,7 +6172,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -6388,7 +6388,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -6461,7 +6461,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -6536,7 +6536,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -6620,7 +6620,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -6681,7 +6681,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -6754,7 +6754,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -6817,7 +6817,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -6902,7 +6902,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -7012,7 +7012,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7083,7 +7083,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -7169,7 +7169,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -7242,7 +7242,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7339,7 +7339,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -7399,7 +7399,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index eefdd83e45..954f3fcef7 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -4293,7 +4293,7 @@ }, "x-appwrite": { "method": "chat", - "weight": 329, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -4359,7 +4359,7 @@ }, "x-appwrite": { "method": "variables", - "weight": 328, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -8986,7 +8986,7 @@ }, "x-appwrite": { "method": "list", - "weight": 390, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -9058,7 +9058,7 @@ }, "x-appwrite": { "method": "create", - "weight": 388, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9307,7 +9307,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 391, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -9355,7 +9355,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 288, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -9404,7 +9404,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 309, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -9503,7 +9503,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 310, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -9562,7 +9562,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 291, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -9633,7 +9633,7 @@ }, "x-appwrite": { "method": "get", - "weight": 289, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -9691,7 +9691,7 @@ }, "x-appwrite": { "method": "update", - "weight": 389, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -9917,7 +9917,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 294, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -9977,7 +9977,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 295, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -10059,7 +10059,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 392, + "weight": 391, "cookies": false, "type": "upload", "deprecated": false, @@ -10154,7 +10154,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 296, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -10215,7 +10215,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 297, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -10278,7 +10278,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 298, + "weight": 297, "cookies": false, "type": "", "deprecated": false, @@ -10357,7 +10357,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 292, + "weight": 291, "cookies": false, "type": "location", "deprecated": false, @@ -10429,7 +10429,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -10514,7 +10514,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -10628,7 +10628,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -10692,7 +10692,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 303, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -10762,7 +10762,7 @@ }, "x-appwrite": { "method": "getFunctionUsage", - "weight": 290, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -10843,7 +10843,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 305, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -10901,7 +10901,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 304, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -10991,7 +10991,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -11042,7 +11042,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -11141,7 +11141,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -11237,7 +11237,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -11344,7 +11344,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -11370,54 +11370,6 @@ ] } }, - "\/health\/queue": { - "get": { - "summary": "Get queue", - "operationId": "healthGetQueue", - "tags": [ - "health" - ], - "description": "Check the Appwrite queue messaging servers are up and connection is successful.", - "responses": { - "200": { - "description": "Health Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" - } - } - } - } - }, - "x-appwrite": { - "method": "getQueue", - "weight": 129, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "health\/get-queue.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, "\/health\/queue\/builds": { "get": { "summary": "Get builds queue", @@ -11440,7 +11392,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -11501,7 +11453,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -11562,7 +11514,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11634,7 +11586,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -11695,7 +11647,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -11782,7 +11734,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -11843,7 +11795,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -11904,7 +11856,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11965,7 +11917,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12026,7 +11978,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12087,7 +12039,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -12148,7 +12100,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12209,7 +12161,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12270,7 +12222,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -12318,7 +12270,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -12366,7 +12318,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -12822,7 +12774,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 380, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -12897,7 +12849,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 377, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -13040,7 +12992,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 384, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -13185,7 +13137,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 379, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -13358,7 +13310,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 386, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -13535,7 +13487,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 378, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -13643,7 +13595,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 385, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -13754,7 +13706,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 383, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -13806,7 +13758,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 387, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -13867,7 +13819,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 381, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -13941,7 +13893,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 382, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -14015,7 +13967,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 352, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -14090,7 +14042,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 351, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -14194,7 +14146,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 364, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14301,7 +14253,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 350, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -14385,7 +14337,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 363, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14472,7 +14424,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 342, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -14586,7 +14538,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 355, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -14703,7 +14655,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 345, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -14797,7 +14749,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 358, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -14894,7 +14846,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 343, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -14998,7 +14950,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 356, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -15105,7 +15057,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 344, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -15247,7 +15199,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 357, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -15391,7 +15343,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 346, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -15485,7 +15437,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 359, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -15582,7 +15534,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 347, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -15676,7 +15628,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 360, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -15773,7 +15725,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 348, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -15867,7 +15819,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 361, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -15964,7 +15916,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 349, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16058,7 +16010,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 362, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -16155,7 +16107,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 354, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -16207,7 +16159,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 365, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -16268,7 +16220,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 353, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -16342,7 +16294,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 374, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -16416,7 +16368,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 367, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -16489,7 +16441,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 366, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -16571,7 +16523,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 369, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -16630,7 +16582,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 370, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -16706,7 +16658,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 371, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -16767,7 +16719,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 368, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -16841,7 +16793,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 373, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -16924,7 +16876,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -17013,7 +16965,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 375, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -17075,7 +17027,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -17149,7 +17101,7 @@ }, "x-appwrite": { "method": "list", - "weight": 334, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -17222,7 +17174,7 @@ }, "x-appwrite": { "method": "createAppwriteMigration", - "weight": 330, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -17309,7 +17261,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 336, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -17401,7 +17353,7 @@ }, "x-appwrite": { "method": "createFirebaseMigration", - "weight": 331, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -17476,7 +17428,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 337, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -17547,7 +17499,7 @@ }, "x-appwrite": { "method": "createNHostMigration", - "weight": 333, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -17657,7 +17609,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 339, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -17789,7 +17741,7 @@ }, "x-appwrite": { "method": "createSupabaseMigration", - "weight": 332, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -17893,7 +17845,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 338, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -18016,7 +17968,7 @@ }, "x-appwrite": { "method": "get", - "weight": 335, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -18073,7 +18025,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 340, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -18123,7 +18075,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 341, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -18182,7 +18134,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 196, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -18269,7 +18221,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 198, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -18314,7 +18266,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 197, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -18391,7 +18343,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 199, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -18448,7 +18400,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 200, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -18522,7 +18474,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 201, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -18581,7 +18533,7 @@ }, "x-appwrite": { "method": "list", - "weight": 151, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -18652,7 +18604,7 @@ }, "x-appwrite": { "method": "create", - "weight": 150, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -18786,7 +18738,7 @@ }, "x-appwrite": { "method": "get", - "weight": 152, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -18843,7 +18795,7 @@ }, "x-appwrite": { "method": "update", - "weight": 153, + "weight": 152, "cookies": false, "type": "", "deprecated": false, @@ -18957,7 +18909,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 170, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -19016,7 +18968,7 @@ }, "x-appwrite": { "method": "updateApiStatus", - "weight": 157, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -19107,7 +19059,7 @@ }, "x-appwrite": { "method": "updateApiStatusAll", - "weight": 158, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -19185,7 +19137,7 @@ }, "x-appwrite": { "method": "updateAuthDuration", - "weight": 163, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -19263,7 +19215,7 @@ }, "x-appwrite": { "method": "updateAuthLimit", - "weight": 162, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -19341,7 +19293,7 @@ }, "x-appwrite": { "method": "updateAuthSessionsLimit", - "weight": 168, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -19419,7 +19371,7 @@ }, "x-appwrite": { "method": "updateMembershipsPrivacy", - "weight": 161, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -19509,7 +19461,7 @@ }, "x-appwrite": { "method": "updateMockNumbers", - "weight": 169, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -19590,7 +19542,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordDictionary", - "weight": 166, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -19668,7 +19620,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordHistory", - "weight": 165, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -19746,7 +19698,7 @@ }, "x-appwrite": { "method": "updatePersonalDataCheck", - "weight": 167, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -19824,7 +19776,7 @@ }, "x-appwrite": { "method": "updateSessionAlerts", - "weight": 160, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -19902,7 +19854,7 @@ }, "x-appwrite": { "method": "updateAuthStatus", - "weight": 164, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -20001,7 +19953,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 182, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -20087,7 +20039,7 @@ }, "x-appwrite": { "method": "listKeys", - "weight": 178, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -20144,7 +20096,7 @@ }, "x-appwrite": { "method": "createKey", - "weight": 177, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -20236,7 +20188,7 @@ }, "x-appwrite": { "method": "getKey", - "weight": 179, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -20303,7 +20255,7 @@ }, "x-appwrite": { "method": "updateKey", - "weight": 180, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -20396,7 +20348,7 @@ }, "x-appwrite": { "method": "deleteKey", - "weight": 181, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -20465,7 +20417,7 @@ }, "x-appwrite": { "method": "updateOAuth2", - "weight": 159, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -20601,7 +20553,7 @@ }, "x-appwrite": { "method": "listPlatforms", - "weight": 184, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -20658,7 +20610,7 @@ }, "x-appwrite": { "method": "createPlatform", - "weight": 183, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -20776,7 +20728,7 @@ }, "x-appwrite": { "method": "getPlatform", - "weight": 185, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -20843,7 +20795,7 @@ }, "x-appwrite": { "method": "updatePlatform", - "weight": 186, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -20937,7 +20889,7 @@ }, "x-appwrite": { "method": "deletePlatform", - "weight": 187, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -21006,7 +20958,7 @@ }, "x-appwrite": { "method": "updateServiceStatus", - "weight": 155, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -21106,7 +21058,7 @@ }, "x-appwrite": { "method": "updateServiceStatusAll", - "weight": 156, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -21184,7 +21136,7 @@ }, "x-appwrite": { "method": "updateSmtp", - "weight": 188, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -21301,7 +21253,7 @@ }, "x-appwrite": { "method": "createSmtpTest", - "weight": 189, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -21431,7 +21383,7 @@ }, "x-appwrite": { "method": "updateTeam", - "weight": 154, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -21509,7 +21461,7 @@ }, "x-appwrite": { "method": "getEmailTemplate", - "weight": 191, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -21732,7 +21684,7 @@ }, "x-appwrite": { "method": "updateEmailTemplate", - "weight": 193, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -21995,7 +21947,7 @@ }, "x-appwrite": { "method": "deleteEmailTemplate", - "weight": 195, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -22220,7 +22172,7 @@ }, "x-appwrite": { "method": "getSmsTemplate", - "weight": 190, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -22440,7 +22392,7 @@ }, "x-appwrite": { "method": "updateSmsTemplate", - "weight": 192, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -22679,7 +22631,7 @@ }, "x-appwrite": { "method": "deleteSmsTemplate", - "weight": 194, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -22901,7 +22853,7 @@ }, "x-appwrite": { "method": "listWebhooks", - "weight": 172, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -22958,7 +22910,7 @@ }, "x-appwrite": { "method": "createWebhook", - "weight": 171, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -23072,7 +23024,7 @@ }, "x-appwrite": { "method": "getWebhook", - "weight": 173, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -23139,7 +23091,7 @@ }, "x-appwrite": { "method": "updateWebhook", - "weight": 174, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -23254,7 +23206,7 @@ }, "x-appwrite": { "method": "deleteWebhook", - "weight": 176, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -23323,7 +23275,7 @@ }, "x-appwrite": { "method": "updateWebhookSignature", - "weight": 175, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -23392,7 +23344,7 @@ }, "x-appwrite": { "method": "listRules", - "weight": 312, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -23463,7 +23415,7 @@ }, "x-appwrite": { "method": "createRule", - "weight": 311, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -23547,7 +23499,7 @@ }, "x-appwrite": { "method": "getRule", - "weight": 313, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -23597,7 +23549,7 @@ }, "x-appwrite": { "method": "deleteRule", - "weight": 314, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -23656,7 +23608,7 @@ }, "x-appwrite": { "method": "updateRuleVerification", - "weight": 315, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -23715,7 +23667,7 @@ }, "x-appwrite": { "method": "list", - "weight": 395, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -23784,7 +23736,7 @@ }, "x-appwrite": { "method": "create", - "weight": 393, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -24036,7 +23988,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 398, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -24084,7 +24036,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 416, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -24183,7 +24135,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 417, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -24242,7 +24194,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 418, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -24309,7 +24261,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -24367,7 +24319,7 @@ }, "x-appwrite": { "method": "update", - "weight": 396, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -24590,7 +24542,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -24650,7 +24602,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 401, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -24732,7 +24684,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 399, + "weight": 398, "cookies": false, "type": "upload", "deprecated": false, @@ -24832,7 +24784,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 400, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -24900,7 +24852,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 402, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -24961,7 +24913,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 403, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -25024,7 +24976,7 @@ }, "x-appwrite": { "method": "createDeploymentBuild", - "weight": 406, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -25092,7 +25044,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 407, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -25155,7 +25107,7 @@ }, "x-appwrite": { "method": "getDeploymentBuildDownload", - "weight": 405, + "weight": 404, "cookies": false, "type": "location", "deprecated": false, @@ -25220,7 +25172,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 404, + "weight": 403, "cookies": false, "type": "location", "deprecated": false, @@ -25292,7 +25244,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 409, + "weight": 408, "cookies": false, "type": "", "deprecated": false, @@ -25373,7 +25325,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 408, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -25434,7 +25386,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 410, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -25504,7 +25456,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 419, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -25585,7 +25537,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 413, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -25643,7 +25595,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 411, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -25733,7 +25685,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 412, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -25801,7 +25753,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 414, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -25886,7 +25838,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 415, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -25956,7 +25908,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -26028,7 +25980,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -26154,7 +26106,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -26212,7 +26164,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -26335,7 +26287,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -26395,7 +26347,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -26480,7 +26432,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -26577,7 +26529,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -26648,7 +26600,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -26736,7 +26688,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -26802,7 +26754,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -26868,7 +26820,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -27084,7 +27036,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -27157,7 +27109,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 216, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -27228,7 +27180,7 @@ }, "x-appwrite": { "method": "getBucketUsage", - "weight": 217, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -27309,7 +27261,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -27384,7 +27336,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -27468,7 +27420,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -27529,7 +27481,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -27602,7 +27554,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -27665,7 +27617,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 231, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -27737,7 +27689,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -27822,7 +27774,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -27932,7 +27884,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -28003,7 +27955,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -28089,7 +28041,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -28162,7 +28114,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -28258,7 +28210,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -28317,7 +28269,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -28397,7 +28349,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -28469,7 +28421,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -28556,7 +28508,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -28640,7 +28592,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -28724,7 +28676,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -28791,7 +28743,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -28851,7 +28803,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -28935,7 +28887,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -29019,7 +28971,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -29133,7 +29085,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -29235,7 +29187,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -29339,7 +29291,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 274, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -29410,7 +29362,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -29461,7 +29413,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -29521,7 +29473,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -29600,7 +29552,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -29681,7 +29633,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -29763,7 +29715,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -29836,7 +29788,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -29896,7 +29848,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -29968,7 +29920,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -30043,7 +29995,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -30103,7 +30055,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -30161,7 +30113,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -30219,7 +30171,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -30279,7 +30231,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -30358,7 +30310,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -30437,7 +30389,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -30516,7 +30468,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -30574,7 +30526,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -30653,7 +30605,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -30711,7 +30663,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -30762,7 +30714,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -30815,7 +30767,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -30885,7 +30837,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -30964,7 +30916,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -31036,7 +30988,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -31145,7 +31097,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -31214,7 +31166,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -31302,7 +31254,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -31373,7 +31325,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -31454,7 +31406,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -31533,7 +31485,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -31612,7 +31564,7 @@ }, "x-appwrite": { "method": "listRepositories", - "weight": 279, + "weight": 278, "cookies": false, "type": "", "deprecated": false, @@ -31680,7 +31632,7 @@ }, "x-appwrite": { "method": "createRepository", - "weight": 280, + "weight": 279, "cookies": false, "type": "", "deprecated": false, @@ -31764,7 +31716,7 @@ }, "x-appwrite": { "method": "getRepository", - "weight": 281, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -31833,7 +31785,7 @@ }, "x-appwrite": { "method": "listRepositoryBranches", - "weight": 282, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -31902,7 +31854,7 @@ }, "x-appwrite": { "method": "getRepositoryContents", - "weight": 277, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -31982,7 +31934,7 @@ }, "x-appwrite": { "method": "createRepositoryDetection", - "weight": 278, + "weight": 277, "cookies": false, "type": "", "deprecated": false, @@ -32060,7 +32012,7 @@ }, "x-appwrite": { "method": "updateExternalDeployments", - "weight": 287, + "weight": 286, "cookies": false, "type": "", "deprecated": false, @@ -32148,7 +32100,7 @@ }, "x-appwrite": { "method": "listInstallations", - "weight": 284, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -32221,7 +32173,7 @@ }, "x-appwrite": { "method": "getInstallation", - "weight": 285, + "weight": 284, "cookies": false, "type": "", "deprecated": false, @@ -32271,7 +32223,7 @@ }, "x-appwrite": { "method": "deleteInstallation", - "weight": 286, + "weight": 285, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index 63149036e5..eb740ba0da 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -8138,7 +8138,7 @@ }, "x-appwrite": { "method": "list", - "weight": 390, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -8211,7 +8211,7 @@ }, "x-appwrite": { "method": "create", - "weight": 388, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -8461,7 +8461,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 391, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -8510,7 +8510,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 288, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -8560,7 +8560,7 @@ }, "x-appwrite": { "method": "get", - "weight": 289, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -8619,7 +8619,7 @@ }, "x-appwrite": { "method": "update", - "weight": 389, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -8846,7 +8846,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 294, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -8907,7 +8907,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 295, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -8990,7 +8990,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 392, + "weight": 391, "cookies": false, "type": "upload", "deprecated": false, @@ -9086,7 +9086,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 296, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -9148,7 +9148,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 297, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -9212,7 +9212,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 298, + "weight": 297, "cookies": false, "type": "", "deprecated": false, @@ -9292,7 +9292,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 292, + "weight": 291, "cookies": false, "type": "location", "deprecated": false, @@ -9365,7 +9365,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -9452,7 +9452,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -9568,7 +9568,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -9634,7 +9634,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 303, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -9705,7 +9705,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 305, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -9764,7 +9764,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 304, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -9855,7 +9855,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -9908,7 +9908,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -10010,7 +10010,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -10108,7 +10108,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -10217,7 +10217,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -10244,55 +10244,6 @@ ] } }, - "\/health\/queue": { - "get": { - "summary": "Get queue", - "operationId": "healthGetQueue", - "tags": [ - "health" - ], - "description": "Check the Appwrite queue messaging servers are up and connection is successful.", - "responses": { - "200": { - "description": "Health Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" - } - } - } - } - }, - "x-appwrite": { - "method": "getQueue", - "weight": 129, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "health\/get-queue.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, "\/health\/queue\/builds": { "get": { "summary": "Get builds queue", @@ -10315,7 +10266,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -10377,7 +10328,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -10439,7 +10390,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -10512,7 +10463,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -10574,7 +10525,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -10662,7 +10613,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -10724,7 +10675,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -10786,7 +10737,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -10848,7 +10799,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -10910,7 +10861,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -10972,7 +10923,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11034,7 +10985,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11096,7 +11047,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -11158,7 +11109,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -11207,7 +11158,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11256,7 +11207,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -11729,7 +11680,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 380, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -11805,7 +11756,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 377, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -11949,7 +11900,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 384, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -12095,7 +12046,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 379, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -12269,7 +12220,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 386, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -12447,7 +12398,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 378, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -12556,7 +12507,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 385, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -12668,7 +12619,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 383, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -12721,7 +12672,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 387, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -12783,7 +12734,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 381, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -12858,7 +12809,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 382, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -12933,7 +12884,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 352, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -13009,7 +12960,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 351, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -13114,7 +13065,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 364, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13222,7 +13173,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 350, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -13307,7 +13258,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 363, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13395,7 +13346,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 342, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -13510,7 +13461,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 355, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -13628,7 +13579,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 345, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -13723,7 +13674,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 358, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -13821,7 +13772,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 343, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -13926,7 +13877,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 356, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -14034,7 +13985,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 344, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -14177,7 +14128,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 357, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14322,7 +14273,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 346, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -14417,7 +14368,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 359, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14515,7 +14466,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 347, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -14610,7 +14561,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 360, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -14708,7 +14659,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 348, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -14803,7 +14754,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 361, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -14901,7 +14852,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 349, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -14996,7 +14947,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 362, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -15094,7 +15045,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 354, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -15147,7 +15098,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 365, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -15209,7 +15160,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 353, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -15284,7 +15235,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 374, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -15359,7 +15310,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 367, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -15433,7 +15384,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 366, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -15516,7 +15467,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 369, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -15576,7 +15527,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 370, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -15653,7 +15604,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 371, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -15715,7 +15666,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 368, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -15790,7 +15741,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 373, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -15874,7 +15825,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -15965,7 +15916,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 375, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -16028,7 +15979,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -16104,7 +16055,7 @@ }, "x-appwrite": { "method": "list", - "weight": 395, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -16174,7 +16125,7 @@ }, "x-appwrite": { "method": "create", - "weight": 393, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -16427,7 +16378,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 398, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -16476,7 +16427,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -16535,7 +16486,7 @@ }, "x-appwrite": { "method": "update", - "weight": 396, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -16759,7 +16710,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -16820,7 +16771,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 401, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -16903,7 +16854,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 399, + "weight": 398, "cookies": false, "type": "upload", "deprecated": false, @@ -17004,7 +16955,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 400, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -17073,7 +17024,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 402, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -17135,7 +17086,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 403, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -17199,7 +17150,7 @@ }, "x-appwrite": { "method": "createDeploymentBuild", - "weight": 406, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -17268,7 +17219,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 407, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -17332,7 +17283,7 @@ }, "x-appwrite": { "method": "getDeploymentBuildDownload", - "weight": 405, + "weight": 404, "cookies": false, "type": "location", "deprecated": false, @@ -17398,7 +17349,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 404, + "weight": 403, "cookies": false, "type": "location", "deprecated": false, @@ -17471,7 +17422,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 409, + "weight": 408, "cookies": false, "type": "", "deprecated": false, @@ -17553,7 +17504,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 408, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -17615,7 +17566,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 410, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -17686,7 +17637,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 413, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -17745,7 +17696,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 411, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -17836,7 +17787,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 412, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -17905,7 +17856,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 414, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -17991,7 +17942,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 415, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -18062,7 +18013,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -18135,7 +18086,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -18262,7 +18213,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -18321,7 +18272,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -18445,7 +18396,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -18506,7 +18457,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -18593,7 +18544,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -18692,7 +18643,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -18765,7 +18716,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -18855,7 +18806,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -18923,7 +18874,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -18991,7 +18942,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -19209,7 +19160,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -19284,7 +19235,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -19361,7 +19312,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -19447,7 +19398,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -19510,7 +19461,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -19585,7 +19536,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -19650,7 +19601,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -19737,7 +19688,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -19849,7 +19800,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -19922,7 +19873,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -20010,7 +19961,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -20085,7 +20036,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -20183,7 +20134,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -20244,7 +20195,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -20326,7 +20277,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -20399,7 +20350,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -20487,7 +20438,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -20572,7 +20523,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -20657,7 +20608,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -20725,7 +20676,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -20786,7 +20737,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -20871,7 +20822,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -20956,7 +20907,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -21071,7 +21022,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -21174,7 +21125,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -21279,7 +21230,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -21331,7 +21282,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -21392,7 +21343,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -21472,7 +21423,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -21554,7 +21505,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -21637,7 +21588,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -21711,7 +21662,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -21772,7 +21723,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -21845,7 +21796,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -21921,7 +21872,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -21982,7 +21933,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -22041,7 +21992,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -22100,7 +22051,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -22161,7 +22112,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -22241,7 +22192,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -22321,7 +22272,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -22401,7 +22352,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -22460,7 +22411,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -22540,7 +22491,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -22599,7 +22550,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -22651,7 +22602,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -22705,7 +22656,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -22776,7 +22727,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -22856,7 +22807,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -22929,7 +22880,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -23039,7 +22990,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -23109,7 +23060,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -23198,7 +23149,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -23270,7 +23221,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -23352,7 +23303,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -23432,7 +23383,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 251, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index 0c2113442f..1ee6677c92 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -4927,7 +4927,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -5009,7 +5009,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -5127,7 +5127,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -5198,7 +5198,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -5271,7 +5271,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -5768,7 +5768,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -5852,7 +5852,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -5924,7 +5924,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -6006,7 +6006,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -6097,7 +6097,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -6166,7 +6166,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -6254,7 +6254,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -6325,7 +6325,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -6396,7 +6396,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -6595,7 +6595,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -6666,7 +6666,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -6740,7 +6740,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -6831,7 +6831,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -6892,7 +6892,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -6966,7 +6966,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -7029,7 +7029,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -7111,7 +7111,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -7225,7 +7225,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7294,7 +7294,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -7379,7 +7379,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -7450,7 +7450,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7545,7 +7545,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -7605,7 +7605,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index cb6f13f0e9..e1b2a4da74 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -4497,7 +4497,7 @@ }, "x-appwrite": { "method": "chat", - "weight": 329, + "weight": 328, "cookies": false, "type": "", "deprecated": false, @@ -4566,7 +4566,7 @@ }, "x-appwrite": { "method": "variables", - "weight": 328, + "weight": 327, "cookies": false, "type": "", "deprecated": false, @@ -9135,7 +9135,7 @@ }, "x-appwrite": { "method": "list", - "weight": 390, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -9206,7 +9206,7 @@ }, "x-appwrite": { "method": "create", - "weight": 388, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -9479,7 +9479,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 391, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -9529,7 +9529,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 288, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -9580,7 +9580,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 309, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -9675,7 +9675,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 310, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -9734,7 +9734,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 291, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -9805,7 +9805,7 @@ }, "x-appwrite": { "method": "get", - "weight": 289, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -9863,7 +9863,7 @@ }, "x-appwrite": { "method": "update", - "weight": 389, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -10106,7 +10106,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 294, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -10166,7 +10166,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 295, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -10245,7 +10245,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 392, + "weight": 391, "cookies": false, "type": "upload", "deprecated": false, @@ -10336,7 +10336,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 296, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -10397,7 +10397,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 297, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -10462,7 +10462,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 298, + "weight": 297, "cookies": false, "type": "", "deprecated": false, @@ -10545,7 +10545,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 292, + "weight": 291, "cookies": false, "type": "location", "deprecated": false, @@ -10615,7 +10615,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -10697,7 +10697,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -10815,7 +10815,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -10879,7 +10879,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 303, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -10947,7 +10947,7 @@ }, "x-appwrite": { "method": "getFunctionUsage", - "weight": 290, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -11026,7 +11026,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 305, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -11084,7 +11084,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 304, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -11175,7 +11175,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -11248,7 +11248,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -11371,7 +11371,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -11471,7 +11471,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -11580,7 +11580,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -11606,56 +11606,6 @@ ] } }, - "\/health\/queue": { - "get": { - "summary": "Get queue", - "operationId": "healthGetQueue", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Check the Appwrite queue messaging servers are up and connection is successful.", - "responses": { - "200": { - "description": "Health Status", - "schema": { - "$ref": "#\/definitions\/healthStatus" - } - } - }, - "x-appwrite": { - "method": "getQueue", - "weight": 129, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "health\/get-queue.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "server" - ], - "packaging": false, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, "\/health\/queue\/builds": { "get": { "summary": "Get builds queue", @@ -11680,7 +11630,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -11741,7 +11691,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -11802,7 +11752,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11872,7 +11822,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -11933,7 +11883,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -12018,7 +11968,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -12079,7 +12029,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -12140,7 +12090,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -12201,7 +12151,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12262,7 +12212,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12323,7 +12273,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -12384,7 +12334,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12445,7 +12395,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12506,7 +12456,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -12556,7 +12506,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -12606,7 +12556,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -13080,7 +13030,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 380, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -13154,7 +13104,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 377, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -13311,7 +13261,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 384, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -13465,7 +13415,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 379, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -13659,7 +13609,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 386, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -13852,7 +13802,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 378, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -13969,7 +13919,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 385, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -14084,7 +14034,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 383, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -14138,7 +14088,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 387, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -14199,7 +14149,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 381, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -14272,7 +14222,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 382, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -14345,7 +14295,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 352, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -14419,7 +14369,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 351, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -14533,7 +14483,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 364, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14645,7 +14595,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 350, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -14735,7 +14685,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 363, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14823,7 +14773,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 342, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -14949,7 +14899,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 355, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -15073,7 +15023,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 345, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -15175,7 +15125,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 358, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -15275,7 +15225,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 343, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -15389,7 +15339,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 356, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -15501,7 +15451,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 344, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -15659,7 +15609,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 357, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -15814,7 +15764,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 346, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -15916,7 +15866,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 359, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -16016,7 +15966,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 347, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -16118,7 +16068,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 360, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -16218,7 +16168,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 348, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -16320,7 +16270,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 361, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -16420,7 +16370,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 349, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -16522,7 +16472,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 362, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -16622,7 +16572,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 354, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -16676,7 +16626,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 365, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -16737,7 +16687,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 353, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -16810,7 +16760,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 374, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -16883,7 +16833,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 367, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -16955,7 +16905,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 366, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -17044,7 +16994,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 369, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -17103,7 +17053,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 370, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -17181,7 +17131,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 371, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -17242,7 +17192,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 368, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -17315,7 +17265,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 373, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -17395,7 +17345,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -17484,7 +17434,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 375, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -17546,7 +17496,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -17618,7 +17568,7 @@ }, "x-appwrite": { "method": "list", - "weight": 334, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -17690,7 +17640,7 @@ }, "x-appwrite": { "method": "createAppwriteMigration", - "weight": 330, + "weight": 329, "cookies": false, "type": "", "deprecated": false, @@ -17783,7 +17733,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 336, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -17870,7 +17820,7 @@ }, "x-appwrite": { "method": "createFirebaseMigration", - "weight": 331, + "weight": 330, "cookies": false, "type": "", "deprecated": false, @@ -17949,7 +17899,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 337, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -18019,7 +17969,7 @@ }, "x-appwrite": { "method": "createNHostMigration", - "weight": 333, + "weight": 332, "cookies": false, "type": "", "deprecated": false, @@ -18139,7 +18089,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 339, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -18258,7 +18208,7 @@ }, "x-appwrite": { "method": "createSupabaseMigration", - "weight": 332, + "weight": 331, "cookies": false, "type": "", "deprecated": false, @@ -18371,7 +18321,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 338, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -18483,7 +18433,7 @@ }, "x-appwrite": { "method": "get", - "weight": 335, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -18540,7 +18490,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 340, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -18592,7 +18542,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 341, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -18651,7 +18601,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 196, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -18734,7 +18684,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 198, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -18781,7 +18731,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 197, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -18863,7 +18813,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 199, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -18920,7 +18870,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 200, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -18996,7 +18946,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 201, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -19055,7 +19005,7 @@ }, "x-appwrite": { "method": "list", - "weight": 151, + "weight": 150, "cookies": false, "type": "", "deprecated": false, @@ -19125,7 +19075,7 @@ }, "x-appwrite": { "method": "create", - "weight": 150, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -19274,7 +19224,7 @@ }, "x-appwrite": { "method": "get", - "weight": 152, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -19331,7 +19281,7 @@ }, "x-appwrite": { "method": "update", - "weight": 153, + "weight": 152, "cookies": false, "type": "", "deprecated": false, @@ -19455,7 +19405,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 170, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -19514,7 +19464,7 @@ }, "x-appwrite": { "method": "updateApiStatus", - "weight": 157, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -19605,7 +19555,7 @@ }, "x-appwrite": { "method": "updateApiStatusAll", - "weight": 158, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -19682,7 +19632,7 @@ }, "x-appwrite": { "method": "updateAuthDuration", - "weight": 163, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -19759,7 +19709,7 @@ }, "x-appwrite": { "method": "updateAuthLimit", - "weight": 162, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -19836,7 +19786,7 @@ }, "x-appwrite": { "method": "updateAuthSessionsLimit", - "weight": 168, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -19913,7 +19863,7 @@ }, "x-appwrite": { "method": "updateMembershipsPrivacy", - "weight": 161, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -20004,7 +19954,7 @@ }, "x-appwrite": { "method": "updateMockNumbers", - "weight": 169, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -20084,7 +20034,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordDictionary", - "weight": 166, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -20161,7 +20111,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordHistory", - "weight": 165, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -20238,7 +20188,7 @@ }, "x-appwrite": { "method": "updatePersonalDataCheck", - "weight": 167, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -20315,7 +20265,7 @@ }, "x-appwrite": { "method": "updateSessionAlerts", - "weight": 160, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -20392,7 +20342,7 @@ }, "x-appwrite": { "method": "updateAuthStatus", - "weight": 164, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -20488,7 +20438,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 182, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -20574,7 +20524,7 @@ }, "x-appwrite": { "method": "listKeys", - "weight": 178, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -20631,7 +20581,7 @@ }, "x-appwrite": { "method": "createKey", - "weight": 177, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -20724,7 +20674,7 @@ }, "x-appwrite": { "method": "getKey", - "weight": 179, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -20789,7 +20739,7 @@ }, "x-appwrite": { "method": "updateKey", - "weight": 180, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -20883,7 +20833,7 @@ }, "x-appwrite": { "method": "deleteKey", - "weight": 181, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -20950,7 +20900,7 @@ }, "x-appwrite": { "method": "updateOAuth2", - "weight": 159, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -21088,7 +21038,7 @@ }, "x-appwrite": { "method": "listPlatforms", - "weight": 184, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -21145,7 +21095,7 @@ }, "x-appwrite": { "method": "createPlatform", - "weight": 183, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -21266,7 +21216,7 @@ }, "x-appwrite": { "method": "getPlatform", - "weight": 185, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -21331,7 +21281,7 @@ }, "x-appwrite": { "method": "updatePlatform", - "weight": 186, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -21427,7 +21377,7 @@ }, "x-appwrite": { "method": "deletePlatform", - "weight": 187, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -21494,7 +21444,7 @@ }, "x-appwrite": { "method": "updateServiceStatus", - "weight": 155, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -21594,7 +21544,7 @@ }, "x-appwrite": { "method": "updateServiceStatusAll", - "weight": 156, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -21671,7 +21621,7 @@ }, "x-appwrite": { "method": "updateSmtp", - "weight": 188, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -21799,7 +21749,7 @@ }, "x-appwrite": { "method": "createSmtpTest", - "weight": 189, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -21936,7 +21886,7 @@ }, "x-appwrite": { "method": "updateTeam", - "weight": 154, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -22013,7 +21963,7 @@ }, "x-appwrite": { "method": "getEmailTemplate", - "weight": 191, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -22232,7 +22182,7 @@ }, "x-appwrite": { "method": "updateEmailTemplate", - "weight": 193, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -22494,7 +22444,7 @@ }, "x-appwrite": { "method": "deleteEmailTemplate", - "weight": 195, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -22715,7 +22665,7 @@ }, "x-appwrite": { "method": "getSmsTemplate", - "weight": 190, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -22931,7 +22881,7 @@ }, "x-appwrite": { "method": "updateSmsTemplate", - "weight": 192, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -23165,7 +23115,7 @@ }, "x-appwrite": { "method": "deleteSmsTemplate", - "weight": 194, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -23383,7 +23333,7 @@ }, "x-appwrite": { "method": "listWebhooks", - "weight": 172, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -23440,7 +23390,7 @@ }, "x-appwrite": { "method": "createWebhook", - "weight": 171, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -23559,7 +23509,7 @@ }, "x-appwrite": { "method": "getWebhook", - "weight": 173, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -23624,7 +23574,7 @@ }, "x-appwrite": { "method": "updateWebhook", - "weight": 174, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -23744,7 +23694,7 @@ }, "x-appwrite": { "method": "deleteWebhook", - "weight": 176, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -23811,7 +23761,7 @@ }, "x-appwrite": { "method": "updateWebhookSignature", - "weight": 175, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -23878,7 +23828,7 @@ }, "x-appwrite": { "method": "listRules", - "weight": 312, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -23948,7 +23898,7 @@ }, "x-appwrite": { "method": "createRule", - "weight": 311, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -24037,7 +23987,7 @@ }, "x-appwrite": { "method": "getRule", - "weight": 313, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -24089,7 +24039,7 @@ }, "x-appwrite": { "method": "deleteRule", - "weight": 314, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -24148,7 +24098,7 @@ }, "x-appwrite": { "method": "updateRuleVerification", - "weight": 315, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -24207,7 +24157,7 @@ }, "x-appwrite": { "method": "list", - "weight": 395, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -24278,7 +24228,7 @@ }, "x-appwrite": { "method": "create", - "weight": 393, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -24554,7 +24504,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 398, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -24604,7 +24554,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 416, + "weight": 415, "cookies": false, "type": "", "deprecated": false, @@ -24699,7 +24649,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 417, + "weight": 416, "cookies": false, "type": "", "deprecated": false, @@ -24758,7 +24708,7 @@ }, "x-appwrite": { "method": "listUsage", - "weight": 418, + "weight": 417, "cookies": false, "type": "", "deprecated": false, @@ -24825,7 +24775,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -24883,7 +24833,7 @@ }, "x-appwrite": { "method": "update", - "weight": 396, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -25122,7 +25072,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -25182,7 +25132,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 401, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -25261,7 +25211,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 399, + "weight": 398, "cookies": false, "type": "upload", "deprecated": false, @@ -25360,7 +25310,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 400, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -25426,7 +25376,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 402, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -25487,7 +25437,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 403, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -25552,7 +25502,7 @@ }, "x-appwrite": { "method": "createDeploymentBuild", - "weight": 406, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -25618,7 +25568,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 407, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -25686,7 +25636,7 @@ }, "x-appwrite": { "method": "getDeploymentBuildDownload", - "weight": 405, + "weight": 404, "cookies": false, "type": "location", "deprecated": false, @@ -25756,7 +25706,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 404, + "weight": 403, "cookies": false, "type": "location", "deprecated": false, @@ -25826,7 +25776,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 409, + "weight": 408, "cookies": false, "type": "", "deprecated": false, @@ -25907,7 +25857,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 408, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -25970,7 +25920,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 410, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -26038,7 +25988,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 419, + "weight": 418, "cookies": false, "type": "", "deprecated": false, @@ -26117,7 +26067,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 413, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -26175,7 +26125,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 411, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -26266,7 +26216,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 412, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -26332,7 +26282,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 414, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -26417,7 +26367,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 415, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -26485,7 +26435,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -26556,7 +26506,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -26694,7 +26644,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -26752,7 +26702,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -26884,7 +26834,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -26944,7 +26894,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -27026,7 +26976,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -27117,7 +27067,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -27186,7 +27136,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -27274,7 +27224,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -27345,7 +27295,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -27416,7 +27366,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -27615,7 +27565,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -27686,7 +27636,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 216, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -27757,7 +27707,7 @@ }, "x-appwrite": { "method": "getBucketUsage", - "weight": 217, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -27836,7 +27786,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -27910,7 +27860,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -28001,7 +27951,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -28062,7 +28012,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -28136,7 +28086,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -28199,7 +28149,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 231, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -28270,7 +28220,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -28352,7 +28302,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -28466,7 +28416,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -28535,7 +28485,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -28620,7 +28570,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -28691,7 +28641,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -28785,7 +28735,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -28844,7 +28794,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -28923,7 +28873,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -28994,7 +28944,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -29088,7 +29038,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -29178,7 +29128,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -29268,7 +29218,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -29336,7 +29286,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -29396,7 +29346,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -29486,7 +29436,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -29576,7 +29526,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -29701,7 +29651,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -29812,7 +29762,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -29923,7 +29873,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 274, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -29994,7 +29944,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -30047,7 +29997,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -30107,7 +30057,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -30185,7 +30135,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -30266,7 +30216,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -30347,7 +30297,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -30419,7 +30369,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -30479,7 +30429,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -30552,7 +30502,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -30625,7 +30575,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -30685,7 +30635,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -30743,7 +30693,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -30801,7 +30751,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -30861,7 +30811,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -30939,7 +30889,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -31017,7 +30967,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -31095,7 +31045,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -31153,7 +31103,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -31231,7 +31181,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -31289,7 +31239,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -31342,7 +31292,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -31397,7 +31347,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -31465,7 +31415,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -31543,7 +31493,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -31614,7 +31564,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -31726,7 +31676,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -31793,7 +31743,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -31882,7 +31832,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -31951,7 +31901,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -32032,7 +31982,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -32110,7 +32060,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -32188,7 +32138,7 @@ }, "x-appwrite": { "method": "listRepositories", - "weight": 279, + "weight": 278, "cookies": false, "type": "", "deprecated": false, @@ -32254,7 +32204,7 @@ }, "x-appwrite": { "method": "createRepository", - "weight": 280, + "weight": 279, "cookies": false, "type": "", "deprecated": false, @@ -32338,7 +32288,7 @@ }, "x-appwrite": { "method": "getRepository", - "weight": 281, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -32405,7 +32355,7 @@ }, "x-appwrite": { "method": "listRepositoryBranches", - "weight": 282, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -32472,7 +32422,7 @@ }, "x-appwrite": { "method": "getRepositoryContents", - "weight": 277, + "weight": 276, "cookies": false, "type": "", "deprecated": false, @@ -32548,7 +32498,7 @@ }, "x-appwrite": { "method": "createRepositoryDetection", - "weight": 278, + "weight": 277, "cookies": false, "type": "", "deprecated": false, @@ -32627,7 +32577,7 @@ }, "x-appwrite": { "method": "updateExternalDeployments", - "weight": 287, + "weight": 286, "cookies": false, "type": "", "deprecated": false, @@ -32712,7 +32662,7 @@ }, "x-appwrite": { "method": "listInstallations", - "weight": 284, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -32784,7 +32734,7 @@ }, "x-appwrite": { "method": "getInstallation", - "weight": 285, + "weight": 284, "cookies": false, "type": "", "deprecated": false, @@ -32836,7 +32786,7 @@ }, "x-appwrite": { "method": "deleteInstallation", - "weight": 286, + "weight": 285, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 380c0d4244..642c4b6a70 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "version": "1.6.1", + "version": "1.7.0", "title": "Appwrite", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", "termsOfService": "https:\/\/appwrite.io\/policy\/terms", @@ -8284,7 +8284,7 @@ }, "x-appwrite": { "method": "list", - "weight": 390, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -8356,7 +8356,7 @@ }, "x-appwrite": { "method": "create", - "weight": 388, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -8630,7 +8630,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 391, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -8681,7 +8681,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 288, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -8733,7 +8733,7 @@ }, "x-appwrite": { "method": "get", - "weight": 289, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -8792,7 +8792,7 @@ }, "x-appwrite": { "method": "update", - "weight": 389, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -9036,7 +9036,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 294, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -9097,7 +9097,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 295, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -9177,7 +9177,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 392, + "weight": 391, "cookies": false, "type": "upload", "deprecated": false, @@ -9269,7 +9269,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 296, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -9331,7 +9331,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 297, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -9397,7 +9397,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 298, + "weight": 297, "cookies": false, "type": "", "deprecated": false, @@ -9481,7 +9481,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 292, + "weight": 291, "cookies": false, "type": "location", "deprecated": false, @@ -9552,7 +9552,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 301, + "weight": 300, "cookies": false, "type": "", "deprecated": false, @@ -9636,7 +9636,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 300, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -9756,7 +9756,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 302, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -9822,7 +9822,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 303, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -9891,7 +9891,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 305, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -9950,7 +9950,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 304, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -10042,7 +10042,7 @@ }, "x-appwrite": { "method": "query", - "weight": 327, + "weight": 326, "cookies": false, "type": "graphql", "deprecated": false, @@ -10117,7 +10117,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 326, + "weight": 325, "cookies": false, "type": "graphql", "deprecated": false, @@ -10243,7 +10243,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -10345,7 +10345,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -10456,7 +10456,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -10483,57 +10483,6 @@ ] } }, - "\/health\/queue": { - "get": { - "summary": "Get queue", - "operationId": "healthGetQueue", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Check the Appwrite queue messaging servers are up and connection is successful.", - "responses": { - "200": { - "description": "Health Status", - "schema": { - "$ref": "#\/definitions\/healthStatus" - } - } - }, - "x-appwrite": { - "method": "getQueue", - "weight": 129, - "cookies": false, - "type": "", - "deprecated": false, - "demo": "health\/get-queue.md", - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "server" - ], - "packaging": false, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, "\/health\/queue\/builds": { "get": { "summary": "Get builds queue", @@ -10558,7 +10507,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -10620,7 +10569,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -10682,7 +10631,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -10753,7 +10702,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -10815,7 +10764,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -10901,7 +10850,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -10963,7 +10912,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -11025,7 +10974,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11087,7 +11036,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -11149,7 +11098,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -11211,7 +11160,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11273,7 +11222,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11335,7 +11284,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -11397,7 +11346,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -11448,7 +11397,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11499,7 +11448,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -11990,7 +11939,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 380, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -12065,7 +12014,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 377, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -12223,7 +12172,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 384, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -12378,7 +12327,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 379, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -12573,7 +12522,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 386, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -12767,7 +12716,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 378, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -12885,7 +12834,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 385, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -13001,7 +12950,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 383, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -13056,7 +13005,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 387, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -13118,7 +13067,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 381, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -13192,7 +13141,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 382, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -13266,7 +13215,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 352, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -13341,7 +13290,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 351, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -13456,7 +13405,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 364, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13569,7 +13518,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 350, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -13660,7 +13609,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 363, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13749,7 +13698,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 342, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -13876,7 +13825,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 355, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -14001,7 +13950,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 345, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -14104,7 +14053,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 358, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -14205,7 +14154,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 343, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -14320,7 +14269,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 356, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -14433,7 +14382,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 344, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -14592,7 +14541,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 357, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14748,7 +14697,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 346, + "weight": 345, "cookies": false, "type": "", "deprecated": false, @@ -14851,7 +14800,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 359, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -14952,7 +14901,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 347, + "weight": 346, "cookies": false, "type": "", "deprecated": false, @@ -15055,7 +15004,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 360, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -15156,7 +15105,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 348, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -15259,7 +15208,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 361, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -15360,7 +15309,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 349, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -15463,7 +15412,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 362, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -15564,7 +15513,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 354, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -15619,7 +15568,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 365, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -15681,7 +15630,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 353, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -15755,7 +15704,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 374, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -15829,7 +15778,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 367, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -15902,7 +15851,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 366, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -15992,7 +15941,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 369, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -16052,7 +16001,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 370, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -16131,7 +16080,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 371, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -16193,7 +16142,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 368, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -16267,7 +16216,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 373, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -16348,7 +16297,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 372, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -16439,7 +16388,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 375, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -16502,7 +16451,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 376, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -16576,7 +16525,7 @@ }, "x-appwrite": { "method": "list", - "weight": 395, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -16648,7 +16597,7 @@ }, "x-appwrite": { "method": "create", - "weight": 393, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -16925,7 +16874,7 @@ }, "x-appwrite": { "method": "listFrameworks", - "weight": 398, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -16976,7 +16925,7 @@ }, "x-appwrite": { "method": "get", - "weight": 394, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -17035,7 +16984,7 @@ }, "x-appwrite": { "method": "update", - "weight": 396, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -17275,7 +17224,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -17336,7 +17285,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 401, + "weight": 400, "cookies": false, "type": "", "deprecated": false, @@ -17416,7 +17365,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 399, + "weight": 398, "cookies": false, "type": "upload", "deprecated": false, @@ -17516,7 +17465,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 400, + "weight": 399, "cookies": false, "type": "", "deprecated": false, @@ -17583,7 +17532,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 402, + "weight": 401, "cookies": false, "type": "", "deprecated": false, @@ -17645,7 +17594,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 403, + "weight": 402, "cookies": false, "type": "", "deprecated": false, @@ -17711,7 +17660,7 @@ }, "x-appwrite": { "method": "createDeploymentBuild", - "weight": 406, + "weight": 405, "cookies": false, "type": "", "deprecated": false, @@ -17778,7 +17727,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 407, + "weight": 406, "cookies": false, "type": "", "deprecated": false, @@ -17847,7 +17796,7 @@ }, "x-appwrite": { "method": "getDeploymentBuildDownload", - "weight": 405, + "weight": 404, "cookies": false, "type": "location", "deprecated": false, @@ -17918,7 +17867,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 404, + "weight": 403, "cookies": false, "type": "location", "deprecated": false, @@ -17989,7 +17938,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 409, + "weight": 408, "cookies": false, "type": "", "deprecated": false, @@ -18071,7 +18020,7 @@ }, "x-appwrite": { "method": "getLog", - "weight": 408, + "weight": 407, "cookies": false, "type": "", "deprecated": false, @@ -18135,7 +18084,7 @@ }, "x-appwrite": { "method": "deleteLog", - "weight": 410, + "weight": 409, "cookies": false, "type": "", "deprecated": false, @@ -18204,7 +18153,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 413, + "weight": 412, "cookies": false, "type": "", "deprecated": false, @@ -18263,7 +18212,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 411, + "weight": 410, "cookies": false, "type": "", "deprecated": false, @@ -18355,7 +18304,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 412, + "weight": 411, "cookies": false, "type": "", "deprecated": false, @@ -18422,7 +18371,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 414, + "weight": 413, "cookies": false, "type": "", "deprecated": false, @@ -18508,7 +18457,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 415, + "weight": 414, "cookies": false, "type": "", "deprecated": false, @@ -18577,7 +18526,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -18649,7 +18598,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -18788,7 +18737,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -18847,7 +18796,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -18980,7 +18929,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -19041,7 +18990,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -19125,7 +19074,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 206, "cookies": false, "type": "upload", "deprecated": false, @@ -19218,7 +19167,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 208, "cookies": false, "type": "", "deprecated": false, @@ -19289,7 +19238,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 213, "cookies": false, "type": "", "deprecated": false, @@ -19379,7 +19328,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 214, "cookies": false, "type": "", "deprecated": false, @@ -19452,7 +19401,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 210, "cookies": false, "type": "location", "deprecated": false, @@ -19525,7 +19474,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 209, "cookies": false, "type": "location", "deprecated": false, @@ -19726,7 +19675,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -19799,7 +19748,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -19875,7 +19824,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -19968,7 +19917,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -20031,7 +19980,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -20107,7 +20056,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -20172,7 +20121,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -20256,7 +20205,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -20372,7 +20321,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -20443,7 +20392,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -20530,7 +20479,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -20603,7 +20552,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -20699,7 +20648,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -20760,7 +20709,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -20841,7 +20790,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -20913,7 +20862,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -21008,7 +20957,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -21099,7 +21048,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -21190,7 +21139,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -21259,7 +21208,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -21320,7 +21269,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -21411,7 +21360,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -21502,7 +21451,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -21628,7 +21577,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -21740,7 +21689,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -21852,7 +21801,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -21906,7 +21855,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -21967,7 +21916,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -22046,7 +21995,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -22128,7 +22077,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -22210,7 +22159,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -22283,7 +22232,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -22344,7 +22293,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -22418,7 +22367,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -22492,7 +22441,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -22553,7 +22502,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -22612,7 +22561,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -22671,7 +22620,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -22732,7 +22681,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -22811,7 +22760,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -22890,7 +22839,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -22969,7 +22918,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -23028,7 +22977,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -23107,7 +23056,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -23166,7 +23115,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -23220,7 +23169,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -23276,7 +23225,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -23345,7 +23294,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -23424,7 +23373,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -23496,7 +23445,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -23609,7 +23558,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -23677,7 +23626,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -23767,7 +23716,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -23837,7 +23786,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -23919,7 +23868,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -23998,7 +23947,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 251, "cookies": false, "type": "", "deprecated": false, diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index 1db4713311..305444abc5 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -13,8 +13,8 @@ use Utopia\Config\Config; use Utopia\Database\Document; use Utopia\Domains\Validator\PublicDomain; use Utopia\Pools\Group; -use Utopia\Queue\Client; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; +use Utopia\Queue\Queue; use Utopia\Registry\Registry; use Utopia\Storage\Device; use Utopia\Storage\Device\Local; @@ -188,69 +188,6 @@ App::get('/v1/health/cache') ]), Response::MODEL_HEALTH_STATUS_LIST); }); -App::get('/v1/health/queue') - ->desc('Get queue') - ->groups(['api', 'health']) - ->label('scope', 'health.read') - ->label('sdk', new Method( - auth: [AuthType::KEY], - namespace: 'health', - name: 'getQueue', - description: '/docs/references/health/get-queue.md', - responses: [ - new SDKResponse( - code: Response::STATUS_CODE_OK, - model: Response::MODEL_HEALTH_STATUS, - ) - ], - contentType: ContentType::JSON - )) - ->inject('response') - ->inject('pools') - ->action(function (Response $response, Group $pools) { - - $output = []; - - $configs = [ - 'Queue' => Config::getParam('pools-queue'), - ]; - - foreach ($configs as $key => $config) { - foreach ($config as $database) { - $checkStart = \microtime(true); - try { - /** @var Connection $adapter */ - $adapter = $pools->get($database)->pop()->getResource(); - - if ($adapter->ping()) { - $output[] = new Document([ - 'name' => $key . " ($database)", - 'status' => 'pass', - 'ping' => \round((\microtime(true) - $checkStart) / 1000) - ]); - } else { - $output[] = new Document([ - 'name' => $key . " ($database)", - 'status' => 'fail', - 'ping' => \round((\microtime(true) - $checkStart) / 1000) - ]); - } - } catch (\Throwable $th) { - $output[] = new Document([ - 'name' => $key . " ($database)", - 'status' => 'fail', - 'ping' => \round((\microtime(true) - $checkStart) / 1000) - ]); - } - } - } - - $response->dynamic(new Document([ - 'statuses' => $output, - 'total' => count($output), - ]), Response::MODEL_HEALTH_STATUS_LIST); - }); - App::get('/v1/health/pubsub') ->desc('Get pubsub') ->groups(['api', 'health']) @@ -396,13 +333,12 @@ App::get('/v1/health/queue/webhooks') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::WEBHOOK_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::WEBHOOK_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -429,13 +365,12 @@ App::get('/v1/health/queue/logs') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::AUDITS_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::AUDITS_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -518,13 +453,12 @@ App::get('/v1/health/queue/certificates') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::CERTIFICATES_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::CERTIFICATES_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -551,13 +485,12 @@ App::get('/v1/health/queue/builds') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::BUILDS_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::BUILDS_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -585,13 +518,12 @@ App::get('/v1/health/queue/databases') )) ->param('name', 'database_db_main', new Text(256), 'Queue name for which to check the queue size', true) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (string $name, int|string $threshold, Connection $queue, Response $response) { + ->action(function (string $name, int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client($name, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue($name)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -618,13 +550,12 @@ App::get('/v1/health/queue/deletes') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::DELETE_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::DELETE_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -651,13 +582,12 @@ App::get('/v1/health/queue/mails') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::MAILS_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::MAILS_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -684,13 +614,12 @@ App::get('/v1/health/queue/messaging') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::MESSAGING_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::MESSAGING_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -717,13 +646,12 @@ App::get('/v1/health/queue/migrations') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::MIGRATIONS_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::MIGRATIONS_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -750,13 +678,12 @@ App::get('/v1/health/queue/functions') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::FUNCTIONS_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::FUNCTIONS_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -783,13 +710,12 @@ App::get('/v1/health/queue/usage') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::USAGE_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::USAGE_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -816,13 +742,12 @@ App::get('/v1/health/queue/usage-dump') contentType: ContentType::JSON )) ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) - ->inject('queue') + ->inject('publisher') ->inject('response') - ->action(function (int|string $threshold, Connection $queue, Response $response) { + ->action(function (int|string $threshold, Publisher $publisher, Response $response) { $threshold = \intval($threshold); - $client = new Client(Event::USAGE_DUMP_QUEUE_NAME, $queue); - $size = $client->getQueueSize(); + $size = $publisher->getQueueSize(new Queue(Event::USAGE_DUMP_QUEUE_NAME)); if ($size >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}."); @@ -1005,12 +930,11 @@ App::get('/v1/health/queue/failed/:name') ]), 'The name of the queue') ->param('threshold', 5000, new Integer(true), 'Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.', true) ->inject('response') - ->inject('queue') - ->action(function (string $name, int|string $threshold, Response $response, Connection $queue) { + ->inject('publisher') + ->action(function (string $name, int|string $threshold, Response $response, Publisher $publisher) { $threshold = \intval($threshold); - $client = new Client($name, $queue); - $failed = $client->countFailedJobs(); + $failed = $publisher->getQueueSize(new Queue($name), failedJobs: true); if ($failed >= $threshold) { throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue failed jobs threshold hit. Current size is {$failed} and threshold is {$threshold}."); diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index e525086ebf..7f988d726f 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -469,12 +469,12 @@ App::post('/v1/teams/:teamId/memberships') ->inject('queueForUsage') ->inject('plan') ->action(function (string $teamId, string $email, string $userId, string $phone, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Mail $queueForMails, Messaging $queueForMessaging, Event $queueForEvents, callable $timelimit, Usage $queueForUsage, array $plan) { - $isAPIKey = Auth::isAppUser(Authorization::getRoles()); + $isAppUser = Auth::isAppUser(Authorization::getRoles()); $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); $url = htmlentities($url); if (empty($url)) { - if (!$isAPIKey && !$isPrivilegedUser) { + if (!$isAppUser && !$isPrivilegedUser) { throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'URL is required'); } } @@ -482,8 +482,6 @@ App::post('/v1/teams/:teamId/memberships') if (empty($userId) && empty($email) && empty($phone)) { throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'At least one of userId, email, or phone is required'); } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); - $isAppUser = Auth::isAppUser(Authorization::getRoles()); if (!$isPrivilegedUser && !$isAppUser && empty(System::getEnv('_APP_SMTP_HOST'))) { throw new Exception(Exception::GENERAL_SMTP_DISABLED); @@ -638,7 +636,7 @@ App::post('/v1/teams/:teamId/memberships') $dbForProject->purgeCachedDocument('users', $invitee->getId()); } else { $url = Template::parseURL($url); - $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['membershipId' => $membership->getId(), 'userId' => $invitee->getId(), 'secret' => $secret, 'teamId' => $teamId]); + $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['membershipId' => $membership->getId(), 'userId' => $invitee->getId(), 'secret' => $secret, 'teamId' => $teamId, 'teamName' => $team->getAttribute('name')]); $url = Template::unParseURL($url); if (!empty($email)) { $projectName = $project->isEmpty() ? 'Console' : $project->getAttribute('name', '[APP-NAME]'); diff --git a/app/controllers/general.php b/app/controllers/general.php index 0b9770ff76..fd2da2e954 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1126,6 +1126,7 @@ App::error() ->setParam('trace', $output['trace'] ?? []); $response->html($layout->render()); + return; } $response->dynamic( diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 8883c19b2e..58a77f243a 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -28,7 +28,7 @@ use Utopia\Database\DateTime; use Utopia\Database\Document; use Utopia\Database\Helpers\Role; use Utopia\Database\Validator\Authorization; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; use Utopia\System\System; use Utopia\Validator\WhiteList; @@ -438,7 +438,7 @@ App::init() ->inject('response') ->inject('project') ->inject('user') - ->inject('queue') + ->inject('publisher') ->inject('queueForEvents') ->inject('queueForMessaging') ->inject('queueForAudits') @@ -449,7 +449,7 @@ App::init() ->inject('dbForProject') ->inject('timelimit') ->inject('mode') - ->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Connection $queue, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, callable $timelimit, string $mode) use ($usageDatabaseListener, $eventDatabaseListener) { + ->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Publisher $publisher, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, callable $timelimit, string $mode) use ($usageDatabaseListener, $eventDatabaseListener) { $route = $utopia->getRoute(); @@ -553,9 +553,9 @@ App::init() // Clone the queues, to prevent events triggered by the database listener // from overwriting the events that are supposed to be triggered in the shutdown hook. - $queueForEventsClone = new Event($queue); - $queueForFunctions = new Func($queue); - $queueForWebhooks = new Webhook($queue); + $queueForEventsClone = new Event($publisher); + $queueForFunctions = new Func($publisher); + $queueForWebhooks = new Webhook($publisher); $queueForRealtime = new Realtime(); $dbForProject diff --git a/app/init.php b/app/init.php index ea247aef70..fbffc4b3ad 100644 --- a/app/init.php +++ b/app/init.php @@ -77,7 +77,6 @@ use Utopia\Logger\Logger; use Utopia\Pools\Group; use Utopia\Pools\Pool; use Utopia\Queue; -use Utopia\Queue\Connection; use Utopia\Registry\Registry; use Utopia\Storage\Device; use Utopia\Storage\Device\Backblaze; @@ -912,8 +911,14 @@ $register->set('pools', function () { 'multiple' => false, 'schemes' => ['mariadb', 'mysql'], ], - 'queue' => [ - 'type' => 'queue', + 'publisher' => [ + 'type' => 'publisher', + 'dsns' => $fallbackForRedis, + 'multiple' => false, + 'schemes' => ['redis'], + ], + 'consumer' => [ + 'type' => 'consumer', 'dsns' => $fallbackForRedis, 'multiple' => false, 'schemes' => ['redis'], @@ -1021,31 +1026,26 @@ $register->set('pools', function () { }; $adapter->setDatabase($dsn->getPath()); - break; + return $adapter; case 'pubsub': - $adapter = match ($dsn->getScheme()) { + return match ($dsn->getScheme()) { 'redis' => new PubSub($resource()), default => null }; - break; - case 'queue': - $adapter = match ($dsn->getScheme()) { - 'redis' => new Queue\Connection\Redis($dsn->getHost(), $dsn->getPort()), + case 'publisher': + case 'consumer': + return match ($dsn->getScheme()) { + 'redis' => new Queue\Broker\Redis(new Queue\Connection\Redis($dsn->getHost(), $dsn->getPort())), default => null }; - break; case 'cache': - $adapter = match ($dsn->getScheme()) { + return match ($dsn->getScheme()) { 'redis' => new RedisCache($resource()), default => null }; - break; - default: throw new Exception(Exception::GENERAL_SERVER_ERROR, "Server error: Missing adapter implementation."); } - - return $adapter; }); $group->add($pool); @@ -1168,48 +1168,51 @@ App::setResource('localeCodes', function () { }); // Queues -App::setResource('queue', function (Group $pools) { - return $pools->get('queue')->pop()->getResource(); +App::setResource('publisher', function (Group $pools) { + return $pools->get('publisher')->pop()->getResource(); }, ['pools']); -App::setResource('queueForMessaging', function (Connection $queue) { - return new Messaging($queue); -}, ['queue']); -App::setResource('queueForMails', function (Connection $queue) { - return new Mail($queue); -}, ['queue']); -App::setResource('queueForBuilds', function (Connection $queue) { - return new Build($queue); -}, ['queue']); -App::setResource('queueForDatabase', function (Connection $queue) { - return new EventDatabase($queue); -}, ['queue']); -App::setResource('queueForDeletes', function (Connection $queue) { - return new Delete($queue); -}, ['queue']); -App::setResource('queueForEvents', function (Connection $queue) { - return new Event($queue); -}, ['queue']); -App::setResource('queueForWebhooks', function (Connection $queue) { - return new Webhook($queue); -}, ['queue']); +App::setResource('consumer', function (Group $pools) { + return $pools->get('consumer')->pop()->getResource(); +}, ['pools']); +App::setResource('queueForMessaging', function (Queue\Publisher $publisher) { + return new Messaging($publisher); +}, ['publisher']); +App::setResource('queueForMails', function (Queue\Publisher $publisher) { + return new Mail($publisher); +}, ['publisher']); +App::setResource('queueForBuilds', function (Queue\Publisher $publisher) { + return new Build($publisher); +}, ['publisher']); +App::setResource('queueForDatabase', function (Queue\Publisher $publisher) { + return new EventDatabase($publisher); +}, ['publisher']); +App::setResource('queueForDeletes', function (Queue\Publisher $publisher) { + return new Delete($publisher); +}, ['publisher']); +App::setResource('queueForEvents', function (Queue\Publisher $publisher) { + return new Event($publisher); +}, ['publisher']); +App::setResource('queueForWebhooks', function (Queue\Publisher $publisher) { + return new Webhook($publisher); +}, ['publisher']); App::setResource('queueForRealtime', function () { return new Realtime(); }, []); -App::setResource('queueForAudits', function (Connection $queue) { - return new Audit($queue); -}, ['queue']); -App::setResource('queueForFunctions', function (Connection $queue) { - return new Func($queue); -}, ['queue']); -App::setResource('queueForUsage', function (Connection $queue) { - return new Usage($queue); -}, ['queue']); -App::setResource('queueForCertificates', function (Connection $queue) { - return new Certificate($queue); -}, ['queue']); -App::setResource('queueForMigrations', function (Connection $queue) { - return new Migration($queue); -}, ['queue']); +App::setResource('queueForAudits', function (Queue\Publisher $publisher) { + return new Audit($publisher); +}, ['publisher']); +App::setResource('queueForFunctions', function (Queue\Publisher $publisher) { + return new Func($publisher); +}, ['publisher']); +App::setResource('queueForUsage', function (Queue\Publisher $publisher) { + return new Usage($publisher); +}, ['publisher']); +App::setResource('queueForCertificates', function (Queue\Publisher $publisher) { + return new Certificate($publisher); +}, ['publisher']); +App::setResource('queueForMigrations', function (Queue\Publisher $publisher) { + return new Migration($publisher); +}, ['publisher']); App::setResource('clients', function ($request, $console, $project) { $console->setAttribute('platforms', [ // Always allow current host '$collection' => ID::custom('platforms'), diff --git a/app/worker.php b/app/worker.php index 6e9132e0fb..8c7e24b748 100644 --- a/app/worker.php +++ b/app/worker.php @@ -31,8 +31,8 @@ use Utopia\Logger\Log; use Utopia\Logger\Logger; use Utopia\Platform\Service; use Utopia\Pools\Group; -use Utopia\Queue\Connection; use Utopia\Queue\Message; +use Utopia\Queue\Publisher; use Utopia\Queue\Server; use Utopia\Registry\Registry; use Utopia\System\System; @@ -224,57 +224,61 @@ Server::setResource('timelimit', function (\Redis $redis) { Server::setResource('log', fn () => new Log()); -Server::setResource('queueForUsage', function (Connection $queue) { - return new Usage($queue); -}, ['queue']); - -Server::setResource('queueForUsageDump', function (Connection $queue) { - return new UsageDump($queue); -}, ['queue']); - -Server::setResource('queue', function (Group $pools) { - return $pools->get('queue')->pop()->getResource(); +Server::setResource('publisher', function (Group $pools) { + return $pools->get('publisher')->pop()->getResource(); }, ['pools']); -Server::setResource('queueForDatabase', function (Connection $queue) { - return new EventDatabase($queue); -}, ['queue']); +Server::setResource('consumer', function (Group $pools) { + return $pools->get('consumer')->pop()->getResource(); +}, ['pools']); -Server::setResource('queueForMessaging', function (Connection $queue) { - return new Messaging($queue); -}, ['queue']); +Server::setResource('queueForUsage', function (Publisher $publisher) { + return new Usage($publisher); +}, ['publisher']); -Server::setResource('queueForMails', function (Connection $queue) { - return new Mail($queue); -}, ['queue']); +Server::setResource('queueForUsageDump', function (Publisher $publisher) { + return new UsageDump($publisher); +}, ['publisher']); -Server::setResource('queueForBuilds', function (Connection $queue) { - return new Build($queue); -}, ['queue']); +Server::setResource('queueForDatabase', function (Publisher $publisher) { + return new EventDatabase($publisher); +}, ['publisher']); -Server::setResource('queueForDeletes', function (Connection $queue) { - return new Delete($queue); -}, ['queue']); +Server::setResource('queueForMessaging', function (Publisher $publisher) { + return new Messaging($publisher); +}, ['publisher']); -Server::setResource('queueForEvents', function (Connection $queue) { - return new Event($queue); -}, ['queue']); +Server::setResource('queueForMails', function (Publisher $publisher) { + return new Mail($publisher); +}, ['publisher']); -Server::setResource('queueForAudits', function (Connection $queue) { - return new Audit($queue); -}, ['queue']); +Server::setResource('queueForBuilds', function (Publisher $publisher) { + return new Build($publisher); +}, ['publisher']); -Server::setResource('queueForFunctions', function (Connection $queue) { - return new Func($queue); -}, ['queue']); +Server::setResource('queueForDeletes', function (Publisher $publisher) { + return new Delete($publisher); +}, ['publisher']); -Server::setResource('queueForCertificates', function (Connection $queue) { - return new Certificate($queue); -}, ['queue']); +Server::setResource('queueForEvents', function (Publisher $publisher) { + return new Event($publisher); +}, ['publisher']); -Server::setResource('queueForMigrations', function (Connection $queue) { - return new Migration($queue); -}, ['queue']); +Server::setResource('queueForAudits', function (Publisher $publisher) { + return new Audit($publisher); +}, ['publisher']); + +Server::setResource('queueForFunctions', function (Publisher $publisher) { + return new Func($publisher); +}, ['publisher']); + +Server::setResource('queueForCertificates', function (Publisher $publisher) { + return new Certificate($publisher); +}, ['publisher']); + +Server::setResource('queueForMigrations', function (Publisher $publisher) { + return new Migration($publisher); +}, ['publisher']); Server::setResource('logger', function (Registry $register) { return $register->get('logger'); @@ -390,7 +394,7 @@ try { */ $platform->init(Service::TYPE_WORKER, [ 'workersNum' => System::getEnv('_APP_WORKERS_NUM', 1), - 'connection' => $pools->get('queue')->pop()->getResource(), + 'connection' => $pools->get('consumer')->pop()->getResource(), 'workerName' => strtolower($workerName) ?? null, 'queueName' => $queueName ]); diff --git a/composer.json b/composer.json index b497451efd..199229c105 100644 --- a/composer.json +++ b/composer.json @@ -45,13 +45,13 @@ "ext-sockets": "*", "appwrite/php-runtimes": "0.17.*", "appwrite/php-clamav": "2.0.*", - "utopia-php/abuse": "0.47.*", + "utopia-php/abuse": "0.49.*", "utopia-php/analytics": "0.10.*", - "utopia-php/audit": "0.47.*", + "utopia-php/audit": "0.49.*", "utopia-php/cache": "0.11.*", "utopia-php/cli": "0.15.*", "utopia-php/config": "0.2.*", - "utopia-php/database": "0.56.4", + "utopia-php/database": "0.58.4", "utopia-php/domains": "0.5.*", "utopia-php/dsn": "0.2.1", "utopia-php/framework": "dev-fix-prevent-duplicate-compression as 0.33.99", @@ -62,10 +62,10 @@ "utopia-php/messaging": "0.14.*", "utopia-php/migration": "0.6.*", "utopia-php/orchestration": "0.9.*", - "utopia-php/platform": "0.7.1", + "utopia-php/platform": "0.7.3", "utopia-php/pools": "0.5.*", "utopia-php/preloader": "0.2.*", - "utopia-php/queue": "0.7.*", + "utopia-php/queue": "0.8.*", "utopia-php/registry": "0.5.*", "utopia-php/storage": "0.18.*", "utopia-php/swoole": "0.8.*", diff --git a/composer.lock b/composer.lock index aa6b23f6c0..4f6d1a0bbe 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": "2caa51e1b7d11e3e67ade41347530f92", + "content-hash": "4da9bee4423753c2e592c081b19b8711", "packages": [ { "name": "adhocore/jwt", @@ -1705,6 +1705,137 @@ }, "time": "2024-05-08T12:18:48+00:00" }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "php-amqplib/php-amqplib", + "version": "v3.7.2", + "source": { + "type": "git", + "url": "https://github.com/php-amqplib/php-amqplib.git", + "reference": "738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199", + "reference": "738a73eb0019b6c99d9bc25d7a0c0dd8f56a5199", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-sockets": "*", + "php": "^7.2||^8.0", + "phpseclib/phpseclib": "^2.0|^3.0" + }, + "conflict": { + "php": "7.4.0 - 7.4.1" + }, + "replace": { + "videlalvaro/php-amqplib": "self.version" + }, + "require-dev": { + "ext-curl": "*", + "nategood/httpful": "^0.2.20", + "phpunit/phpunit": "^7.5|^9.5", + "squizlabs/php_codesniffer": "^3.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpAmqpLib\\": "PhpAmqpLib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Alvaro Videla", + "role": "Original Maintainer" + }, + { + "name": "Raúl Araya", + "email": "nubeiro@gmail.com", + "role": "Maintainer" + }, + { + "name": "Luke Bakken", + "email": "luke@bakken.io", + "role": "Maintainer" + }, + { + "name": "Ramūnas Dronga", + "email": "github@ramuno.lt", + "role": "Maintainer" + } + ], + "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", + "homepage": "https://github.com/php-amqplib/php-amqplib/", + "keywords": [ + "message", + "queue", + "rabbitmq" + ], + "support": { + "issues": "https://github.com/php-amqplib/php-amqplib/issues", + "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.7.2" + }, + "time": "2024-11-21T09:21:41+00:00" + }, { "name": "php-http/discovery", "version": "1.20.0", @@ -1865,6 +1996,116 @@ ], "time": "2023-11-25T22:23:28+00:00" }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.43", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/709ec107af3cb2f385b9617be72af8cf62441d02", + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2|^3", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.43" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2024-12-14T21:12:59+00:00" + }, { "name": "psr/container", "version": "2.0.2", @@ -3136,16 +3377,16 @@ }, { "name": "utopia-php/abuse", - "version": "0.47.0", + "version": "0.49.0", "source": { "type": "git", "url": "https://github.com/utopia-php/abuse.git", - "reference": "2b52bb362234d4072b647ed57db1b3be030f57c2" + "reference": "76612c274b895aa3d4d1fa27557a6402463eea99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/abuse/zipball/2b52bb362234d4072b647ed57db1b3be030f57c2", - "reference": "2b52bb362234d4072b647ed57db1b3be030f57c2", + "url": "https://api.github.com/repos/utopia-php/abuse/zipball/76612c274b895aa3d4d1fa27557a6402463eea99", + "reference": "76612c274b895aa3d4d1fa27557a6402463eea99", "shasum": "" }, "require": { @@ -3153,13 +3394,13 @@ "ext-pdo": "*", "ext-redis": "*", "php": ">=8.0", - "utopia-php/database": "0.56.*" + "utopia-php/database": "0.58.*" }, "require-dev": { - "laravel/pint": "1.5.*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.4" + "laravel/pint": "1.*", + "phpbench/phpbench": "1.*", + "phpstan/phpstan": "1.*", + "phpunit/phpunit": "9.*" }, "type": "library", "autoload": { @@ -3181,9 +3422,9 @@ ], "support": { "issues": "https://github.com/utopia-php/abuse/issues", - "source": "https://github.com/utopia-php/abuse/tree/0.47.0" + "source": "https://github.com/utopia-php/abuse/tree/0.49.0" }, - "time": "2025-01-15T02:41:02+00:00" + "time": "2025-02-04T07:33:59+00:00" }, { "name": "utopia-php/analytics", @@ -3233,26 +3474,26 @@ }, { "name": "utopia-php/audit", - "version": "0.47.0", + "version": "0.49.0", "source": { "type": "git", "url": "https://github.com/utopia-php/audit.git", - "reference": "1ebd5784ba68645073426f2f04a67726a1bde4d7" + "reference": "9d5c5e0cf0f6d9157b911fc3971da4331d71c96d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/audit/zipball/1ebd5784ba68645073426f2f04a67726a1bde4d7", - "reference": "1ebd5784ba68645073426f2f04a67726a1bde4d7", + "url": "https://api.github.com/repos/utopia-php/audit/zipball/9d5c5e0cf0f6d9157b911fc3971da4331d71c96d", + "reference": "9d5c5e0cf0f6d9157b911fc3971da4331d71c96d", "shasum": "" }, "require": { "php": ">=8.0", - "utopia-php/database": "0.56.*" + "utopia-php/database": "0.58.*" }, "require-dev": { - "laravel/pint": "1.5.*", - "phpstan/phpstan": "^1.8", - "phpunit/phpunit": "^9.3" + "laravel/pint": "1.*", + "phpstan/phpstan": "1.*", + "phpunit/phpunit": "9.*" }, "type": "library", "autoload": { @@ -3274,9 +3515,9 @@ ], "support": { "issues": "https://github.com/utopia-php/audit/issues", - "source": "https://github.com/utopia-php/audit/tree/0.47.0" + "source": "https://github.com/utopia-php/audit/tree/0.49.0" }, - "time": "2025-01-15T02:40:53+00:00" + "time": "2025-02-04T07:27:18+00:00" }, { "name": "utopia-php/cache", @@ -3476,22 +3717,22 @@ }, { "name": "utopia-php/database", - "version": "0.56.4", + "version": "0.58.4", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "240478a60797124a885ceac40046fe47c22415b7" + "reference": "ff3fd22e4fe757cc2a78f17169f6dcc45c96d0fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/240478a60797124a885ceac40046fe47c22415b7", - "reference": "240478a60797124a885ceac40046fe47c22415b7", + "url": "https://api.github.com/repos/utopia-php/database/zipball/ff3fd22e4fe757cc2a78f17169f6dcc45c96d0fe", + "reference": "ff3fd22e4fe757cc2a78f17169f6dcc45c96d0fe", "shasum": "" }, "require": { "ext-mbstring": "*", "ext-pdo": "*", - "php": ">=8.3", + "php": ">=8.1", "utopia-php/cache": "0.11.*", "utopia-php/framework": "0.33.*", "utopia-php/mongo": "0.3.*" @@ -3526,9 +3767,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/0.56.4" + "source": "https://github.com/utopia-php/database/tree/0.58.4" }, - "time": "2025-01-20T09:22:08+00:00" + "time": "2025-02-05T02:51:02+00:00" }, { "name": "utopia-php/domains", @@ -3929,35 +4170,35 @@ }, { "name": "utopia-php/migration", - "version": "0.6.15", + "version": "0.6.17", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "e849ec3e7ad38f5f5273ebb0132b112639cdf01c" + "reference": "677a5c4688d7f54d1631a91f76a35d51346cf96b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/e849ec3e7ad38f5f5273ebb0132b112639cdf01c", - "reference": "e849ec3e7ad38f5f5273ebb0132b112639cdf01c", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/677a5c4688d7f54d1631a91f76a35d51346cf96b", + "reference": "677a5c4688d7f54d1631a91f76a35d51346cf96b", "shasum": "" }, "require": { - "appwrite/appwrite": "11.1.*", + "appwrite/appwrite": "11.*", "ext-curl": "*", "ext-openssl": "*", - "php": "8.3.*", - "utopia-php/database": "0.56.*", + "php": ">=8.1", + "utopia-php/database": "0.58.*", "utopia-php/dsn": "0.2.*", "utopia-php/framework": "0.33.*", "utopia-php/storage": "0.18.*" }, "require-dev": { "ext-pdo": "*", - "laravel/pint": "1.17.*", - "phpstan/phpstan": "1.11.*", - "phpunit/phpunit": "11.2.*", + "laravel/pint": "1.*", + "phpstan/phpstan": "1.*", + "phpunit/phpunit": "11.*", "utopia-php/cli": "0.16.*", - "vlucas/phpdotenv": "5.6.*" + "vlucas/phpdotenv": "5.*" }, "type": "library", "autoload": { @@ -3979,9 +4220,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/0.6.15" + "source": "https://github.com/utopia-php/migration/tree/0.6.17" }, - "time": "2025-01-15T04:55:08+00:00" + "time": "2025-02-05T05:27:29+00:00" }, { "name": "utopia-php/mongo", @@ -4095,16 +4336,16 @@ }, { "name": "utopia-php/platform", - "version": "0.7.1", + "version": "0.7.3", "source": { "type": "git", "url": "https://github.com/utopia-php/platform.git", - "reference": "3433a0f1a54988f2a59c735f507745cb2c24638a" + "reference": "463c2d817c893d7dbb678c2eac7a8291f2710e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/platform/zipball/3433a0f1a54988f2a59c735f507745cb2c24638a", - "reference": "3433a0f1a54988f2a59c735f507745cb2c24638a", + "url": "https://api.github.com/repos/utopia-php/platform/zipball/463c2d817c893d7dbb678c2eac7a8291f2710e25", + "reference": "463c2d817c893d7dbb678c2eac7a8291f2710e25", "shasum": "" }, "require": { @@ -4113,7 +4354,7 @@ "php": ">=8.0", "utopia-php/cli": "0.15.*", "utopia-php/framework": "0.33.*", - "utopia-php/queue": "0.7.*" + "utopia-php/queue": "0.8.*" }, "require-dev": { "laravel/pint": "1.2.*", @@ -4139,9 +4380,9 @@ ], "support": { "issues": "https://github.com/utopia-php/platform/issues", - "source": "https://github.com/utopia-php/platform/tree/0.7.1" + "source": "https://github.com/utopia-php/platform/tree/0.7.3" }, - "time": "2024-10-22T10:27:49+00:00" + "time": "2025-02-04T15:09:00+00:00" }, { "name": "utopia-php/pools", @@ -4249,25 +4490,28 @@ }, { "name": "utopia-php/queue", - "version": "0.7.3", + "version": "0.8.2", "source": { "type": "git", "url": "https://github.com/utopia-php/queue.git", - "reference": "16074a98ee7d6212bc1228de200e13db470c098a" + "reference": "a6ec26a787e8292ca2d7b8f5a0ad179b46b2c4d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/queue/zipball/16074a98ee7d6212bc1228de200e13db470c098a", - "reference": "16074a98ee7d6212bc1228de200e13db470c098a", + "url": "https://api.github.com/repos/utopia-php/queue/zipball/a6ec26a787e8292ca2d7b8f5a0ad179b46b2c4d0", + "reference": "a6ec26a787e8292ca2d7b8f5a0ad179b46b2c4d0", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.3", + "php-amqplib/php-amqplib": "^3.7", "utopia-php/cli": "0.15.*", - "utopia-php/framework": "0.*.*", + "utopia-php/fetch": "^0.3.0", + "utopia-php/framework": "0.33.*", "utopia-php/telemetry": "0.1.*" }, "require-dev": { + "ext-redis": "*", "laravel/pint": "^0.2.3", "phpstan/phpstan": "^1.8", "phpunit/phpunit": "^9.5.5", @@ -4305,9 +4549,9 @@ ], "support": { "issues": "https://github.com/utopia-php/queue/issues", - "source": "https://github.com/utopia-php/queue/tree/0.7.3" + "source": "https://github.com/utopia-php/queue/tree/0.8.2" }, - "time": "2024-11-13T12:47:48+00:00" + "time": "2025-02-06T11:01:15+00:00" }, { "name": "utopia-php/registry", diff --git a/src/Appwrite/Auth/OAuth2/Slack.php b/src/Appwrite/Auth/OAuth2/Slack.php index 8898f4d1f7..9c87e45ed6 100644 --- a/src/Appwrite/Auth/OAuth2/Slack.php +++ b/src/Appwrite/Auth/OAuth2/Slack.php @@ -20,10 +20,9 @@ class Slack extends OAuth2 * @var array */ protected array $scopes = [ - 'identity.avatar', - 'identity.basic', - 'identity.email', - 'identity.team' + 'openid', + 'email', + 'profile' ]; /** @@ -35,14 +34,15 @@ class Slack extends OAuth2 } /** + * @link https://api.slack.com/authentication/oauth-v2 + * * @return string */ public function getLoginURL(): string { - // https://api.slack.com/docs/oauth#step_1_-_sending_users_to_authorize_and_or_install - return 'https://slack.com/oauth/authorize?' . \http_build_query([ + return 'https://slack.com/oauth/v2/authorize?' . \http_build_query([ 'client_id' => $this->appID, - 'scope' => \implode(' ', $this->getScopes()), + 'user_scope' => \implode(' ', $this->getScopes()), 'redirect_uri' => $this->callback, 'state' => \json_encode($this->state) ]); @@ -56,16 +56,15 @@ class Slack extends OAuth2 protected function getTokens(string $code): array { if (empty($this->tokens)) { - // https://api.slack.com/docs/oauth#step_3_-_exchanging_a_verification_code_for_an_access_token $this->tokens = \json_decode($this->request( 'GET', - 'https://slack.com/api/oauth.access?' . \http_build_query([ + 'https://slack.com/api/oauth.v2.access?' . \http_build_query([ 'client_id' => $this->appID, 'client_secret' => $this->appSecret, 'code' => $code, 'redirect_uri' => $this->callback ]) - ), true); + ), true)['authed_user'] ?? []; } return $this->tokens; @@ -80,13 +79,13 @@ class Slack extends OAuth2 { $this->tokens = \json_decode($this->request( 'GET', - 'https://slack.com/api/oauth.access?' . \http_build_query([ + 'https://slack.com/api/oauth.v2.access?' . \http_build_query([ 'client_id' => $this->appID, 'client_secret' => $this->appSecret, 'refresh_token' => $refreshToken, 'grant_type' => 'refresh_token' ]) - ), true); + ), true)['authed_user'] ?? []; if (empty($this->tokens['refresh_token'])) { $this->tokens['refresh_token'] = $refreshToken; @@ -161,9 +160,9 @@ class Slack extends OAuth2 if (empty($this->user)) { $user = $this->request( 'GET', - 'https://slack.com/api/users.identity?token=' . \urlencode($accessToken) + 'https://slack.com/api/users.identity', + ['Authorization: Bearer ' . \urlencode($accessToken)] ); - $this->user = \json_decode($user, true); } diff --git a/src/Appwrite/Event/Audit.php b/src/Appwrite/Event/Audit.php index 4b9aa9f5c5..6c2a9c3086 100644 --- a/src/Appwrite/Event/Audit.php +++ b/src/Appwrite/Event/Audit.php @@ -2,7 +2,7 @@ namespace Appwrite\Event; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Audit extends Event { @@ -12,9 +12,9 @@ class Audit extends Event protected string $ip = ''; protected string $hostname = ''; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::AUDITS_QUEUE_NAME) diff --git a/src/Appwrite/Event/Build.php b/src/Appwrite/Event/Build.php index 831adf8e41..9ea163174f 100644 --- a/src/Appwrite/Event/Build.php +++ b/src/Appwrite/Event/Build.php @@ -3,7 +3,7 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Build extends Event { @@ -12,9 +12,9 @@ class Build extends Event protected ?Document $deployment = null; protected ?Document $template = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::BUILDS_QUEUE_NAME) diff --git a/src/Appwrite/Event/Certificate.php b/src/Appwrite/Event/Certificate.php index 6a395417ed..827472ae37 100644 --- a/src/Appwrite/Event/Certificate.php +++ b/src/Appwrite/Event/Certificate.php @@ -3,16 +3,16 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Certificate extends Event { protected bool $skipRenewCheck = false; protected ?Document $domain = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::CERTIFICATES_QUEUE_NAME) diff --git a/src/Appwrite/Event/Database.php b/src/Appwrite/Event/Database.php index 24123de6c1..d2f70dddf2 100644 --- a/src/Appwrite/Event/Database.php +++ b/src/Appwrite/Event/Database.php @@ -4,7 +4,7 @@ namespace Appwrite\Event; use Utopia\Database\Document; use Utopia\DSN\DSN; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Database extends Event { @@ -13,9 +13,9 @@ class Database extends Event protected ?Document $collection = null; protected ?Document $document = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this->setClass(Event::DATABASE_CLASS_NAME); } diff --git a/src/Appwrite/Event/Delete.php b/src/Appwrite/Event/Delete.php index f0af20f21b..450be306d7 100644 --- a/src/Appwrite/Event/Delete.php +++ b/src/Appwrite/Event/Delete.php @@ -3,7 +3,7 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Delete extends Event { @@ -15,9 +15,9 @@ class Delete extends Event protected ?string $hourlyUsageRetentionDatetime = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::DELETE_QUEUE_NAME) diff --git a/src/Appwrite/Event/Event.php b/src/Appwrite/Event/Event.php index ec1a57875a..ff55ad877a 100644 --- a/src/Appwrite/Event/Event.php +++ b/src/Appwrite/Event/Event.php @@ -4,8 +4,8 @@ namespace Appwrite\Event; use InvalidArgumentException; use Utopia\Database\Document; -use Utopia\Queue\Client; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; +use Utopia\Queue\Queue; class Event { @@ -61,10 +61,10 @@ class Event protected bool $paused = false; /** - * @param Connection $connection + * @param Publisher $publisher * @return void */ - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { } @@ -348,12 +348,11 @@ class Event } /** The getter is required since events like Databases need to override the queue name depending on the project */ - $client = new Client($this->getQueue(), $this->connection); + $queue = new Queue($this->getQueue()); // Merge the base payload with any trimmed values $payload = array_merge($this->preparePayload(), $this->trimPayload()); - - return $client->enqueue($payload); + return $this->publisher->enqueue($queue, $payload); } /** diff --git a/src/Appwrite/Event/Func.php b/src/Appwrite/Event/Func.php index b3945fccb8..ae316c84e5 100644 --- a/src/Appwrite/Event/Func.php +++ b/src/Appwrite/Event/Func.php @@ -3,7 +3,7 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Func extends Event { @@ -19,9 +19,9 @@ class Func extends Event protected ?Document $function = null; protected ?Document $execution = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::FUNCTIONS_QUEUE_NAME) diff --git a/src/Appwrite/Event/Mail.php b/src/Appwrite/Event/Mail.php index 1c9e539cdb..87312182ea 100644 --- a/src/Appwrite/Event/Mail.php +++ b/src/Appwrite/Event/Mail.php @@ -2,7 +2,7 @@ namespace Appwrite\Event; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Mail extends Event { @@ -15,9 +15,9 @@ class Mail extends Event protected string $bodyTemplate = ''; protected array $attachment = []; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::MAILS_QUEUE_NAME) diff --git a/src/Appwrite/Event/Messaging.php b/src/Appwrite/Event/Messaging.php index 61dbe9c427..3ddbac1040 100644 --- a/src/Appwrite/Event/Messaging.php +++ b/src/Appwrite/Event/Messaging.php @@ -3,7 +3,7 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Messaging extends Event { @@ -14,9 +14,9 @@ class Messaging extends Event protected ?string $scheduledAt = null; protected ?string $providerType = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::MESSAGING_QUEUE_NAME) diff --git a/src/Appwrite/Event/Migration.php b/src/Appwrite/Event/Migration.php index 5fb2d5a106..bbb8d77c73 100644 --- a/src/Appwrite/Event/Migration.php +++ b/src/Appwrite/Event/Migration.php @@ -3,16 +3,16 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Migration extends Event { protected string $type = ''; protected ?Document $migration = null; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::MIGRATIONS_QUEUE_NAME) diff --git a/src/Appwrite/Event/Usage.php b/src/Appwrite/Event/Usage.php index 5609859f37..c70cea5c73 100644 --- a/src/Appwrite/Event/Usage.php +++ b/src/Appwrite/Event/Usage.php @@ -3,16 +3,16 @@ namespace Appwrite\Event; use Utopia\Database\Document; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Usage extends Event { protected array $metrics = []; protected array $reduce = []; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::USAGE_QUEUE_NAME) diff --git a/src/Appwrite/Event/UsageDump.php b/src/Appwrite/Event/UsageDump.php index 6f44de4eda..a70716e94f 100644 --- a/src/Appwrite/Event/UsageDump.php +++ b/src/Appwrite/Event/UsageDump.php @@ -2,15 +2,15 @@ namespace Appwrite\Event; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class UsageDump extends Event { protected array $stats; - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::USAGE_DUMP_QUEUE_NAME) diff --git a/src/Appwrite/Event/Webhook.php b/src/Appwrite/Event/Webhook.php index 3e0dbe446f..5cc65758ee 100644 --- a/src/Appwrite/Event/Webhook.php +++ b/src/Appwrite/Event/Webhook.php @@ -2,13 +2,13 @@ namespace Appwrite\Event; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; class Webhook extends Event { - public function __construct(protected Connection $connection) + public function __construct(protected Publisher $publisher) { - parent::__construct($connection); + parent::__construct($publisher); $this ->setQueue(Event::WEBHOOK_QUEUE_NAME) diff --git a/src/Appwrite/Platform/Services/Tasks.php b/src/Appwrite/Platform/Services/Tasks.php index 7a0d5b60ac..c09f961fc0 100644 --- a/src/Appwrite/Platform/Services/Tasks.php +++ b/src/Appwrite/Platform/Services/Tasks.php @@ -6,7 +6,6 @@ use Appwrite\Platform\Tasks\Doctor; use Appwrite\Platform\Tasks\Install; use Appwrite\Platform\Tasks\Maintenance; use Appwrite\Platform\Tasks\Migrate; -use Appwrite\Platform\Tasks\QueueCount; use Appwrite\Platform\Tasks\QueueRetry; use Appwrite\Platform\Tasks\ScheduleExecutions; use Appwrite\Platform\Tasks\ScheduleFunctions; @@ -29,7 +28,6 @@ class Tasks extends Service ->addAction(Install::getName(), new Install()) ->addAction(Maintenance::getName(), new Maintenance()) ->addAction(Migrate::getName(), new Migrate()) - ->addAction(QueueCount::getName(), new QueueCount()) ->addAction(QueueRetry::getName(), new QueueRetry()) ->addAction(SDKs::getName(), new SDKs()) ->addAction(SSL::getName(), new SSL()) diff --git a/src/Appwrite/Platform/Tasks/QueueCount.php b/src/Appwrite/Platform/Tasks/QueueCount.php deleted file mode 100644 index b02165c1d2..0000000000 --- a/src/Appwrite/Platform/Tasks/QueueCount.php +++ /dev/null @@ -1,57 +0,0 @@ -desc('Return the number of from a specific queue identified by the name parameter with a specific type') - ->param('name', '', new Text(100), 'Queue name') - ->param('type', '', new WhiteList([ - 'success', - 'failed', - 'processing', - ]), 'Queue type') - ->inject('queue') - ->callback(fn ($name, $type, $queue) => $this->action($name, $type, $queue)); - } - - /** - * @param string $name The name of the queue to count the jobs from - * @param string $type The type of jobs to count - * @param Connection $queue - */ - public function action(string $name, string $type, Connection $queue): void - { - if (!$name) { - Console::error('Missing required parameter $name'); - return; - } - - $queueClient = new Client($name, $queue); - - $count = match ($type) { - 'success' => $queueClient->countSuccessfulJobs(), - 'failed' => $queueClient->countFailedJobs(), - 'processing' => $queueClient->countProcessingJobs(), - default => 0 - }; - - Console::log("Queue: '{$name}' has {$count} {$type} jobs."); - } -} diff --git a/src/Appwrite/Platform/Tasks/QueueRetry.php b/src/Appwrite/Platform/Tasks/QueueRetry.php index b6139dc177..9fe4aed799 100644 --- a/src/Appwrite/Platform/Tasks/QueueRetry.php +++ b/src/Appwrite/Platform/Tasks/QueueRetry.php @@ -4,8 +4,8 @@ namespace Appwrite\Platform\Tasks; use Utopia\CLI\Console; use Utopia\Platform\Action; -use Utopia\Queue\Client; -use Utopia\Queue\Connection; +use Utopia\Queue\Publisher; +use Utopia\Queue\Queue; use Utopia\Validator\Text; use Utopia\Validator\Wildcard; @@ -23,33 +23,24 @@ class QueueRetry extends Action ->desc('Retry failed jobs from a specific queue identified by the name parameter') ->param('name', '', new Text(100), 'Queue name') ->param('limit', 0, new Wildcard(), 'jobs limit', true) - ->inject('queue') - ->callback(fn ($name, $limit, $queue) => $this->action($name, $limit, $queue)); + ->inject('publisher') + ->callback(fn ($name, $limit, $publisher) => $this->action($name, $limit, $publisher)); } /** * @param string $name The name of the queue to retry jobs from * @param mixed $limit - * @param Connection $queue + * @param Publisher $publisher */ - public function action(string $name, mixed $limit, Connection $queue): void + public function action(string $name, mixed $limit, Publisher $publisher): void { - if (!$name) { Console::error('Missing required parameter $name'); return; } $limit = (int)$limit; - $queueClient = new Client($name, $queue); - - if ($queueClient->countFailedJobs() === 0) { - Console::error('No failed jobs found.'); - return; - } - Console::log('Retrying failed jobs...'); - - $queueClient->retry($limit); + $publisher->retry(new Queue($name), $limit); } } diff --git a/src/Appwrite/Platform/Tasks/ScheduleExecutions.php b/src/Appwrite/Platform/Tasks/ScheduleExecutions.php index c004bd2c21..87f287f368 100644 --- a/src/Appwrite/Platform/Tasks/ScheduleExecutions.php +++ b/src/Appwrite/Platform/Tasks/ScheduleExecutions.php @@ -29,7 +29,7 @@ class ScheduleExecutions extends ScheduleBase protected function enqueueResources(Group $pools, Database $dbForPlatform, callable $getProjectDB): void { - $queue = $pools->get('queue')->pop(); + $queue = $pools->get('publisher')->pop(); $connection = $queue->getResource(); $queueForFunctions = new Func($connection); $intervalEnd = (new \DateTime())->modify('+' . self::ENQUEUE_TIMER . ' seconds'); diff --git a/src/Appwrite/Platform/Tasks/ScheduleFunctions.php b/src/Appwrite/Platform/Tasks/ScheduleFunctions.php index c443bb6c2d..5b8e3027a7 100644 --- a/src/Appwrite/Platform/Tasks/ScheduleFunctions.php +++ b/src/Appwrite/Platform/Tasks/ScheduleFunctions.php @@ -73,7 +73,7 @@ class ScheduleFunctions extends ScheduleBase \go(function () use ($delay, $scheduleKeys, $pools, $dbForPlatform) { \sleep($delay); // in seconds - $queue = $pools->get('queue')->pop(); + $queue = $pools->get('publisher')->pop(); $connection = $queue->getResource(); foreach ($scheduleKeys as $scheduleKey) { diff --git a/src/Appwrite/Platform/Tasks/ScheduleMessages.php b/src/Appwrite/Platform/Tasks/ScheduleMessages.php index 5d997fc5bb..201d5eab53 100644 --- a/src/Appwrite/Platform/Tasks/ScheduleMessages.php +++ b/src/Appwrite/Platform/Tasks/ScheduleMessages.php @@ -41,7 +41,7 @@ class ScheduleMessages extends ScheduleBase } \go(function () use ($schedule, $pools, $dbForPlatform) { - $queue = $pools->get('queue')->pop(); + $queue = $pools->get('publisher')->pop(); $connection = $queue->getResource(); $queueForMessaging = new Messaging($connection); diff --git a/src/Appwrite/Platform/Workers/Certificates.php b/src/Appwrite/Platform/Workers/Certificates.php index e763cb54ee..7e220b2734 100644 --- a/src/Appwrite/Platform/Workers/Certificates.php +++ b/src/Appwrite/Platform/Workers/Certificates.php @@ -370,6 +370,8 @@ class Certificates extends Action /** Trigger Webhook */ $ruleModel = new Rule(); $queueForEvents + ->setQueue(Event::WEBHOOK_QUEUE_NAME) + ->setClass(Event::WEBHOOK_CLASS_NAME) ->setProject($project) ->setEvent('rules.[ruleId].update') ->setParam('ruleId', $rule->getId()) diff --git a/src/Appwrite/Utopia/Request.php b/src/Appwrite/Utopia/Request.php index f8c0439293..480fce58b0 100644 --- a/src/Appwrite/Utopia/Request.php +++ b/src/Appwrite/Utopia/Request.php @@ -2,8 +2,10 @@ namespace Appwrite\Utopia; +use Appwrite\Auth\Auth; use Appwrite\Utopia\Request\Filter; use Swoole\Http\Request as SwooleRequest; +use Utopia\Database\Validator\Authorization; use Utopia\Route; use Utopia\Swoole\Request as UtopiaRequest; @@ -180,4 +182,27 @@ class Request extends UtopiaRequest $headers = $this->getHeaders(); return $headers[$key] ?? $default; } + + /** + * Get User Agent + * + * Method for getting User Agent. Preferring forwarded agent for privileged users; otherwise returns default. + * + * @param string $default + * @return string + */ + public function getUserAgent(string $default = ''): string + { + $forwardedUserAgent = $this->getHeader('x-forwarded-user-agent'); + if (!empty($forwardedUserAgent)) { + $roles = Authorization::getRoles(); + $isAppUser = Auth::isAppUser($roles); + + if ($isAppUser) { + return $forwardedUserAgent; + } + } + + return UtopiaRequest::getUserAgent($default); + } } diff --git a/tests/e2e/Services/Account/AccountCustomClientTest.php b/tests/e2e/Services/Account/AccountCustomClientTest.php index cca27cc3be..788f949fb3 100644 --- a/tests/e2e/Services/Account/AccountCustomClientTest.php +++ b/tests/e2e/Services/Account/AccountCustomClientTest.php @@ -2307,6 +2307,60 @@ class AccountCustomClientTest extends Scope $this->assertNotEmpty($response['body']['$id']); $this->assertNotEmpty($response['body']['expire']); $this->assertEmpty($response['body']['secret']); + $this->assertEquals('browser', $response['body']['clientType']); + $this->assertEquals('CH', $response['body']['clientCode']); + $this->assertEquals('Chrome', $response['body']['clientName']); + + // Forwarded User Agent with API Key + $response = $this->client->call(Client::METHOD_POST, '/users/' . $data['id'] . '/tokens', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ], [ + 'expire' => 60 + ]); + + $userId = $response['body']['userId']; + $secret = $response['body']['secret']; + + $response = $this->client->call(Client::METHOD_POST, '/account/sessions/token', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + 'x-forwarded-user-agent' => 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36' + ], [ + 'userId' => $userId, + 'secret' => $secret + ]); + + $this->assertEquals('browser', $response['body']['clientType']); + $this->assertEquals('CM', actual: $response['body']['clientCode']); + $this->assertEquals('Chrome Mobile', $response['body']['clientName']); + + // Forwarded User Agent without API Key + $response = $this->client->call(Client::METHOD_POST, '/users/' . $data['id'] . '/tokens', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ], [ + 'expire' => 60 + ]); + + $userId = $response['body']['userId']; + $secret = $response['body']['secret']; + + $response = $this->client->call(Client::METHOD_POST, '/account/sessions/token', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-forwarded-user-agent' => 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36' + ], [ + 'userId' => $userId, + 'secret' => $secret + ]); + + $this->assertEquals('browser', $response['body']['clientType']); + $this->assertEquals('CH', $response['body']['clientCode']); + $this->assertEquals('Chrome', $response['body']['clientName']); /** * Test for FAILURE diff --git a/tests/e2e/Services/GraphQL/FunctionsClientTest.php b/tests/e2e/Services/GraphQL/FunctionsClientTest.php index e7e8421254..0b43ed5772 100644 --- a/tests/e2e/Services/GraphQL/FunctionsClientTest.php +++ b/tests/e2e/Services/GraphQL/FunctionsClientTest.php @@ -2,6 +2,7 @@ namespace Tests\E2E\Services\GraphQL; +use Appwrite\Tests\Async; use Tests\E2E\Client; use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\Scope; @@ -14,6 +15,7 @@ class FunctionsClientTest extends Scope use ProjectCustom; use SideClient; use Base; + use Async; public function testCreateFunction(): array { @@ -119,7 +121,7 @@ class FunctionsClientTest extends Scope ] ]; - while (true) { + $this->assertEventually(function () use ($projectId, $gqlPayload, &$deployment) { $deployment = $this->client->call(Client::METHOD_POST, '/graphql', [ 'content-type' => 'application/json', 'x-appwrite-project' => $projectId, @@ -130,18 +132,8 @@ class FunctionsClientTest extends Scope $this->assertArrayNotHasKey('errors', $deployment['body']); $deployment = $deployment['body']['data']['functionsGetDeployment']; - - if ( - $deployment['status'] === 'ready' - || $deployment['status'] === 'failed' - ) { - break; - } - - \sleep(1); - } - - $this->assertEquals('ready', $deployment['status']); + $this->assertEquals('ready', $deployment['status']); + }); return $deployment; } diff --git a/tests/e2e/Services/GraphQL/FunctionsServerTest.php b/tests/e2e/Services/GraphQL/FunctionsServerTest.php index c3606244c4..e49ac43619 100644 --- a/tests/e2e/Services/GraphQL/FunctionsServerTest.php +++ b/tests/e2e/Services/GraphQL/FunctionsServerTest.php @@ -2,6 +2,7 @@ namespace Tests\E2E\Services\GraphQL; +use Appwrite\Tests\Async; use Tests\E2E\Client; use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\Scope; @@ -14,6 +15,7 @@ class FunctionsServerTest extends Scope use ProjectCustom; use SideServer; use Base; + use Async; public function testCreateFunction(): array { @@ -117,7 +119,7 @@ class FunctionsServerTest extends Scope ] ]; - while (true) { + $this->assertEventually(function () use ($projectId, $gqlPayload, &$deployment) { $deployment = $this->client->call(Client::METHOD_POST, '/graphql', \array_merge([ 'content-type' => 'application/json', 'x-appwrite-project' => $projectId, @@ -127,19 +129,8 @@ class FunctionsServerTest extends Scope $this->assertArrayNotHasKey('errors', $deployment['body']); $deployment = $deployment['body']['data']['functionsGetDeployment']; - - if ( - $deployment['status'] === 'ready' - || $deployment['status'] === 'failed' - ) { - break; - } - - \sleep(1); - } - - $this->assertEquals('ready', $deployment['status']); - + $this->assertEquals('ready', $deployment['status']); + }); return $deployment; } diff --git a/tests/e2e/Services/Health/HealthCustomServerTest.php b/tests/e2e/Services/Health/HealthCustomServerTest.php index 9d6a04abe6..f2c6a2e5c2 100644 --- a/tests/e2e/Services/Health/HealthCustomServerTest.php +++ b/tests/e2e/Services/Health/HealthCustomServerTest.php @@ -67,24 +67,6 @@ class HealthCustomServerTest extends Scope return []; } - public function testQueueSuccess(): array - { - /** - * Test for SUCCESS - */ - $response = $this->client->call(Client::METHOD_GET, '/health/queue', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), []); - - $this->assertEquals(200, $response['headers']['status-code']); - $this->assertEquals('pass', $response['body']['statuses'][0]['status']); - $this->assertIsInt($response['body']['statuses'][0]['ping']); - $this->assertLessThan(100, $response['body']['statuses'][0]['ping']); - - return []; - } - public function testPubSubSuccess(): array { /** diff --git a/tests/e2e/Services/Sites/SitesCustomServerTest.php b/tests/e2e/Services/Sites/SitesCustomServerTest.php index e91df25f69..425ce2c4f4 100644 --- a/tests/e2e/Services/Sites/SitesCustomServerTest.php +++ b/tests/e2e/Services/Sites/SitesCustomServerTest.php @@ -928,7 +928,6 @@ class SitesCustomServerTest extends Scope $this->assertNotEmpty($deploymentId); $domain = $this->getSiteDomain($siteId); - $proxyClient = new Client(); $proxyClient->setEndpoint('http://' . $domain); @@ -1017,5 +1016,154 @@ class SitesCustomServerTest extends Scope $this->cleanupSite($siteId); } + public function testSiteTemplate(): void + { + $template = $this->getTemplate('astro-starter'); + $this->assertEquals(200, $template['headers']['status-code']); + + $template = $template['body']; + + $siteId = $this->setupSite([ + 'siteId' => ID::unique(), + 'name' => 'Template site', + 'framework' => $template['frameworks'][0]['key'], + 'adapter' => $template['frameworks'][0]['adapter'], + 'buildRuntime' => $template['frameworks'][0]['buildRuntime'], + 'outputDirectory' => $template['frameworks'][0]['outputDirectory'], + 'buildCommand' => $template['frameworks'][0]['buildCommand'], + 'installCommand' => $template['frameworks'][0]['installCommand'], + 'fallbackFile' => $template['frameworks'][0]['fallbackFile'], + 'templateRepository' => $template['providerRepositoryId'], + 'templateOwner' => $template['providerOwner'], + 'templateRootDirectory' => $template['frameworks'][0]['providerRootDirectory'], + 'templateVersion' => $template['providerVersion'], + ]); + + $this->assertEventually(function () use ($siteId) { + $site = $this->getSite($siteId); + $this->assertNotEmpty($site['body']['deploymentId']); + }, 50000, 500); + + $domain = $this->getSiteDomain($siteId); + $proxyClient = new Client(); + $proxyClient->setEndpoint('http://' . $domain); + + $response = $proxyClient->call(Client::METHOD_GET, '/', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ])); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertStringContainsString("Astro Blog", $response['body']); + $this->assertStringContainsString("Hello, Astronaut!", $response['body']); + + $response = $proxyClient->call(Client::METHOD_GET, '/about', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ])); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertStringContainsString("Astro Blog", $response['body']); + $this->assertStringContainsString("About Me", $response['body']); + + $this->cleanupSite($siteId); + } + + public function testSiteDomainReclaiming(): void + { + $subdomain = 'startup' . \uniqid(); + + $siteId = $this->setupSite([ + 'siteId' => ID::unique(), + 'name' => 'Startup site', + 'framework' => 'other', + 'adapter' => 'static', + 'buildRuntime' => 'static-1', + 'outputDirectory' => './', + 'buildCommand' => '', + 'installCommand' => '', + 'fallbackFile' => '', + 'subdomain' => $subdomain + ]); + + $this->assertNotEmpty($siteId); + + $deploymentId = $this->setupDeployment($siteId, [ + 'code' => $this->packageSite('static'), + 'activate' => 'true' + ]); + + $this->assertNotEmpty($deploymentId); + + $domain = $this->getSiteDomain($siteId); + $proxyClient = new Client(); + $proxyClient->setEndpoint('http://' . $domain); + + $response = $proxyClient->call(Client::METHOD_GET, '/', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ])); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertStringNotContainsString("This domain is not connected to any Appwrite resource yet", $response['body']); + + $site = $this->createSite([ + 'siteId' => ID::unique(), + 'name' => 'Startup 2 site', + 'framework' => 'other', + 'adapter' => 'static', + 'buildRuntime' => 'static-1', + 'outputDirectory' => './', + 'buildCommand' => '', + 'installCommand' => '', + 'fallbackFile' => '', + 'subdomain' => $subdomain + ]); + + $this->assertEquals(400, $site['headers']['status-code']); + $this->assertStringContainsString("Subdomain already exists.", $site['body']['message']); + + $this->cleanupSite($siteId); + + $this->assertEventually(function () use ($domain) { + $rules = $this->client->call(Client::METHOD_GET, '/proxy/rules', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'queries' => [ + Query::equal('domain', [$domain])->toString(), + ], + ]); + + $this->assertEquals(200, $rules['headers']['status-code']); + $this->assertEquals(0, $rules['body']['total']); + }, 50000, 500); + + $response = $proxyClient->call(Client::METHOD_GET, '/', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ])); + + $this->assertEquals(401, $response['headers']['status-code']); + $this->assertStringContainsString("This domain is not connected to any Appwrite resource yet", $response['body']); + + $site = $this->createSite([ + 'siteId' => ID::unique(), + 'name' => 'Startup 2 site', + 'framework' => 'other', + 'adapter' => 'static', + 'buildRuntime' => 'static-1', + 'outputDirectory' => './', + 'buildCommand' => '', + 'installCommand' => '', + 'fallbackFile' => '', + 'subdomain' => $subdomain + ]); + + $this->assertEquals(201, $site['headers']['status-code']); + + $this->cleanupSite($site['body']['$id']); + } + // TODO: Add tests for deletion of resources when site is deleted } diff --git a/tests/e2e/Services/Teams/TeamsBaseClient.php b/tests/e2e/Services/Teams/TeamsBaseClient.php index 3381b80120..3aad86c670 100644 --- a/tests/e2e/Services/Teams/TeamsBaseClient.php +++ b/tests/e2e/Services/Teams/TeamsBaseClient.php @@ -223,6 +223,8 @@ trait TeamsBaseClient $this->assertEquals($email, $lastEmail['to'][0]['address']); $this->assertEquals($name, $lastEmail['to'][0]['name']); $this->assertEquals('Invitation to ' . $teamName . ' Team at ' . $this->getProject()['name'], $lastEmail['subject']); + $this->assertEquals($response['body']['teamId'], substr($lastEmail['text'], strpos($lastEmail['text'], '&teamId=', 0) + 8, 20)); + $this->assertEquals($teamName, substr($lastEmail['text'], strpos($lastEmail['text'], '&teamName=', 0) + 10, 7)); $secret = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); $membershipUid = substr($lastEmail['text'], strpos($lastEmail['text'], '?membershipId=', 0) + 14, 20); @@ -290,6 +292,8 @@ trait TeamsBaseClient $this->assertEquals($secondEmail, $lastEmail['to'][0]['address']); $this->assertEquals($secondName, $lastEmail['to'][0]['name']); $this->assertEquals('Invitation to ' . $teamName . ' Team at ' . $this->getProject()['name'], $lastEmail['subject']); + $this->assertEquals($response['body']['teamId'], substr($lastEmail['text'], strpos($lastEmail['text'], '&teamId=', 0) + 8, 20)); + $this->assertEquals($teamName, substr($lastEmail['text'], strpos($lastEmail['text'], '&teamName=', 0) + 10, 7)); // test for resending invitation $response = $this->client->call(Client::METHOD_POST, '/teams/' . $teamUid . '/memberships', array_merge([ diff --git a/tests/unit/Event/EventTest.php b/tests/unit/Event/EventTest.php index 079bb47b65..c852cf2757 100644 --- a/tests/unit/Event/EventTest.php +++ b/tests/unit/Event/EventTest.php @@ -5,7 +5,7 @@ namespace Tests\Unit\Event; use Appwrite\Event\Event; use InvalidArgumentException; use PHPUnit\Framework\TestCase; -use Utopia\Queue\Client; +use Utopia\Queue\Publisher; require_once __DIR__ . '/../../../app/init.php'; @@ -13,13 +13,14 @@ class EventTest extends TestCase { protected ?Event $object = null; protected string $queue = ''; + protected Publisher $publisher; public function setUp(): void { - global $register; - $connection = $register->get('pools')->get('queue')->pop()->getResource(); + $this->publisher = new MockPublisher(); + $this->queue = 'v1-tests' . uniqid(); - $this->object = new Event($connection); + $this->object = new Event($this->publisher); $this->object->setClass('TestsV1'); $this->object->setQueue($this->queue); } @@ -51,10 +52,7 @@ class EventTest extends TestCase $this->assertEquals('eventValue1', $this->object->getParam('eventKey1')); $this->assertEquals('eventValue2', $this->object->getParam('eventKey2')); $this->assertEquals(null, $this->object->getParam('eventKey3')); - global $register; - $pools = $register->get('pools'); - $client = new Client($this->object->getQueue(), $pools->get('queue')->pop()->getResource()); - $this->assertEquals($client->getQueueSize(), 1); + $this->assertCount(1, $this->publisher->getEvents($this->object->getQueue())); } public function testReset(): void diff --git a/tests/unit/Event/MockPublisher.php b/tests/unit/Event/MockPublisher.php new file mode 100644 index 0000000000..54fcc89358 --- /dev/null +++ b/tests/unit/Event/MockPublisher.php @@ -0,0 +1,35 @@ +events[$queue->name])) { + $this->events[$queue->name] = []; + } + $this->events[$queue->name][] = $payload; + return true; + } + + public function getEvents(string $queue) + { + return $this->events[$queue] ?? null; + } + + public function retry(Queue $queue, int $limit = null): void + { + // TODO: Implement retry() method. + } + + public function getQueueSize(Queue $queue, bool $failedJobs = false): int + { + return count($this->events[$queue->name]); + } +} diff --git a/tests/unit/Usage/StatsTest.php b/tests/unit/Usage/StatsTest.php deleted file mode 100644 index 79fa1f58ec..0000000000 --- a/tests/unit/Usage/StatsTest.php +++ /dev/null @@ -1,41 +0,0 @@ -get('pools')->get('queue')->pop()->getResource(); - $this->connection = $connection; - $this->client = new Client(self::QUEUE_NAME, $this->connection); - } - - public function tearDown(): void - { - } - - public function testSamePayload(): void - { - $inToQueue = [ - 'key_1' => 'value_1', - 'key_2' => 'value_2', - ]; - - $result = $this->client->enqueue($inToQueue); - $this->assertTrue($result); - $outFromQueue = $this->connection->leftPopArray('utopia-queue.queue.' . self::QUEUE_NAME, 0)['payload']; - $this->assertNotEmpty($outFromQueue); - $this->assertSame($inToQueue, $outFromQueue); - } -}