diff --git a/app/config/specs/open-api3-latest-client.json b/app/config/specs/open-api3-latest-client.json index e3cd909b4e..89d010b550 100644 --- a/app/config/specs/open-api3-latest-client.json +++ b/app/config/specs/open-api3-latest-client.json @@ -4637,6 +4637,92 @@ } } } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File" + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + } + } } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -4945,7 +5031,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -5033,7 +5119,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -5150,7 +5236,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -5226,7 +5312,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -5280,7 +5366,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -5334,7 +5420,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -5388,7 +5474,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -5442,7 +5528,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -5496,7 +5582,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -5550,7 +5636,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -5604,7 +5690,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -5658,7 +5744,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -5712,7 +5798,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -5766,7 +5852,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -5851,7 +5937,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -5928,7 +6014,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -6016,7 +6102,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -6116,7 +6202,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -6190,7 +6276,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -6281,7 +6367,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -6350,7 +6436,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -6419,7 +6505,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -6637,7 +6723,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -6713,7 +6799,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -6791,7 +6877,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -6878,7 +6964,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -6942,7 +7028,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -7018,7 +7104,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -7084,7 +7170,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -7172,7 +7258,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7285,7 +7371,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7359,7 +7445,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -7448,7 +7534,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -7524,7 +7610,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -7624,7 +7710,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -7687,7 +7773,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "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 4e97fecc30..78e8f8747a 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -4465,7 +4465,7 @@ }, "x-appwrite": { "method": "chat", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -4534,7 +4534,7 @@ }, "x-appwrite": { "method": "variables", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -4740,7 +4740,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 114, + "weight": 115, "cookies": false, "type": "", "deprecated": false, @@ -8206,6 +8206,92 @@ } } } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File" + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + } + } } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -9055,7 +9141,7 @@ }, "x-appwrite": { "method": "getCollectionUsage", - "weight": 116, + "weight": 117, "cookies": false, "type": "", "deprecated": false, @@ -9224,7 +9310,7 @@ }, "x-appwrite": { "method": "getDatabaseUsage", - "weight": 115, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -9308,7 +9394,7 @@ }, "x-appwrite": { "method": "list", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -9383,7 +9469,7 @@ }, "x-appwrite": { "method": "create", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -9631,7 +9717,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -9682,7 +9768,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -9734,7 +9820,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -9836,7 +9922,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -9898,7 +9984,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -9972,7 +10058,7 @@ }, "x-appwrite": { "method": "get", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -10033,7 +10119,7 @@ }, "x-appwrite": { "method": "update", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -10258,7 +10344,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -10321,7 +10407,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -10406,7 +10492,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 299, + "weight": 300, "cookies": false, "type": "upload", "deprecated": false, @@ -10504,7 +10590,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -10575,7 +10661,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "deprecated": false, @@ -10639,7 +10725,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -10705,7 +10791,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -10792,7 +10878,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "deprecated": false, @@ -10858,7 +10944,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 296, + "weight": 297, "cookies": false, "type": "location", "deprecated": false, @@ -10933,7 +11019,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -11021,7 +11107,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -11138,7 +11224,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -11205,7 +11291,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -11278,7 +11364,7 @@ }, "x-appwrite": { "method": "getFunctionUsage", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -11362,7 +11448,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -11423,7 +11509,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -11511,7 +11597,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -11582,7 +11668,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -11670,7 +11756,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -11743,7 +11829,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -11797,7 +11883,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -11851,7 +11937,7 @@ }, "x-appwrite": { "method": "get", - "weight": 125, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -11902,7 +11988,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -11953,7 +12039,7 @@ }, "x-appwrite": { "method": "getCache", - "weight": 128, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -12004,7 +12090,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -12066,7 +12152,7 @@ }, "x-appwrite": { "method": "getDB", - "weight": 127, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -12117,7 +12203,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12168,7 +12254,7 @@ }, "x-appwrite": { "method": "getQueue", - "weight": 129, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -12219,7 +12305,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -12283,7 +12369,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -12347,7 +12433,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -12422,7 +12508,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12486,7 +12572,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -12576,7 +12662,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12640,7 +12726,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -12704,7 +12790,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12768,7 +12854,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -12832,7 +12918,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -12896,7 +12982,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -12960,7 +13046,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -13024,7 +13110,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -13088,7 +13174,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -13139,7 +13225,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -13190,7 +13276,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -13241,7 +13327,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -13295,7 +13381,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -13349,7 +13435,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -13403,7 +13489,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -13457,7 +13543,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -13511,7 +13597,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -13565,7 +13651,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -13619,7 +13705,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -13673,7 +13759,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -13751,7 +13837,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -13897,7 +13983,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -14045,7 +14131,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -14202,7 +14288,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -14361,7 +14447,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -14472,7 +14558,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -14586,7 +14672,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -14641,7 +14727,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -14705,7 +14791,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -14782,7 +14868,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -14859,7 +14945,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14937,7 +15023,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -15044,7 +15130,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -15154,7 +15240,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -15241,7 +15327,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -15331,7 +15417,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -15448,7 +15534,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -15568,7 +15654,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -15665,7 +15751,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -15765,7 +15851,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -15872,7 +15958,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -15982,7 +16068,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -16127,7 +16213,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -16274,7 +16360,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -16371,7 +16457,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -16471,7 +16557,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -16568,7 +16654,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -16668,7 +16754,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -16765,7 +16851,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -16865,7 +16951,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -16962,7 +17048,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -17062,7 +17148,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -17117,7 +17203,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -17181,7 +17267,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -17258,7 +17344,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -17335,7 +17421,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -17411,7 +17497,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -17496,7 +17582,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -17558,7 +17644,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -17637,7 +17723,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -17701,7 +17787,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -17778,7 +17864,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -17864,7 +17950,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -17956,7 +18042,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -18021,7 +18107,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -18098,7 +18184,7 @@ }, "x-appwrite": { "method": "list", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -18174,7 +18260,7 @@ }, "x-appwrite": { "method": "createAppwriteMigration", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -18264,7 +18350,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -18359,7 +18445,7 @@ }, "x-appwrite": { "method": "createFirebaseMigration", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -18430,7 +18516,7 @@ }, "x-appwrite": { "method": "deleteFirebaseAuth", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -18480,7 +18566,7 @@ }, "x-appwrite": { "method": "createFirebaseOAuthMigration", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -18558,7 +18644,7 @@ }, "x-appwrite": { "method": "listFirebaseProjects", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -18608,7 +18694,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -18682,7 +18768,7 @@ }, "x-appwrite": { "method": "getFirebaseReportOAuth", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -18756,7 +18842,7 @@ }, "x-appwrite": { "method": "createNHostMigration", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -18869,7 +18955,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -19004,7 +19090,7 @@ }, "x-appwrite": { "method": "createSupabaseMigration", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -19111,7 +19197,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -19237,7 +19323,7 @@ }, "x-appwrite": { "method": "get", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -19297,7 +19383,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -19350,7 +19436,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -19412,7 +19498,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 196, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -19502,7 +19588,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 198, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -19550,7 +19636,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 197, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -19625,7 +19711,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 199, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -19685,7 +19771,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 200, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -19762,7 +19848,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 201, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -19824,7 +19910,7 @@ }, "x-appwrite": { "method": "list", - "weight": 151, + "weight": 152, "cookies": false, "type": "", "deprecated": false, @@ -19898,7 +19984,7 @@ }, "x-appwrite": { "method": "create", - "weight": 150, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -20035,7 +20121,7 @@ }, "x-appwrite": { "method": "get", - "weight": 152, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -20095,7 +20181,7 @@ }, "x-appwrite": { "method": "update", - "weight": 153, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -20212,7 +20298,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 170, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -20274,7 +20360,7 @@ }, "x-appwrite": { "method": "updateApiStatus", - "weight": 157, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -20368,7 +20454,7 @@ }, "x-appwrite": { "method": "updateApiStatusAll", - "weight": 158, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -20449,7 +20535,7 @@ }, "x-appwrite": { "method": "updateAuthDuration", - "weight": 163, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -20530,7 +20616,7 @@ }, "x-appwrite": { "method": "updateAuthLimit", - "weight": 162, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -20611,7 +20697,7 @@ }, "x-appwrite": { "method": "updateAuthSessionsLimit", - "weight": 168, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -20672,7 +20758,7 @@ }, "\/projects\/{projectId}\/auth\/memberships-privacy": { "patch": { - "summary": "Update project team sensitive attributes", + "summary": "Update project memberships privacy attributes", "operationId": "projectsUpdateMembershipsPrivacy", "tags": [ "projects" @@ -20692,7 +20778,7 @@ }, "x-appwrite": { "method": "updateMembershipsPrivacy", - "weight": 161, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -20785,7 +20871,7 @@ }, "x-appwrite": { "method": "updateMockNumbers", - "weight": 169, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -20869,7 +20955,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordDictionary", - "weight": 166, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -20950,7 +21036,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordHistory", - "weight": 165, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -21031,7 +21117,7 @@ }, "x-appwrite": { "method": "updatePersonalDataCheck", - "weight": 167, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -21112,7 +21198,7 @@ }, "x-appwrite": { "method": "updateSessionAlerts", - "weight": 160, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -21193,7 +21279,7 @@ }, "x-appwrite": { "method": "updateAuthStatus", - "weight": 164, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -21295,7 +21381,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 182, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -21384,7 +21470,7 @@ }, "x-appwrite": { "method": "listKeys", - "weight": 178, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -21444,7 +21530,7 @@ }, "x-appwrite": { "method": "createKey", - "weight": 177, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -21539,7 +21625,7 @@ }, "x-appwrite": { "method": "getKey", - "weight": 179, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -21609,7 +21695,7 @@ }, "x-appwrite": { "method": "updateKey", - "weight": 180, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -21705,7 +21791,7 @@ }, "x-appwrite": { "method": "deleteKey", - "weight": 181, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -21777,7 +21863,7 @@ }, "x-appwrite": { "method": "updateOAuth2", - "weight": 159, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -21916,7 +22002,7 @@ }, "x-appwrite": { "method": "listPlatforms", - "weight": 184, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -21976,7 +22062,7 @@ }, "x-appwrite": { "method": "createPlatform", - "weight": 183, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -22097,7 +22183,7 @@ }, "x-appwrite": { "method": "getPlatform", - "weight": 185, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -22167,7 +22253,7 @@ }, "x-appwrite": { "method": "updatePlatform", - "weight": 186, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -22264,7 +22350,7 @@ }, "x-appwrite": { "method": "deletePlatform", - "weight": 187, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -22336,7 +22422,7 @@ }, "x-appwrite": { "method": "updateServiceStatus", - "weight": 155, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -22438,7 +22524,7 @@ }, "x-appwrite": { "method": "updateServiceStatusAll", - "weight": 156, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -22519,7 +22605,7 @@ }, "x-appwrite": { "method": "updateSmtp", - "weight": 188, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -22639,7 +22725,7 @@ }, "x-appwrite": { "method": "createSmtpTest", - "weight": 189, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -22772,7 +22858,7 @@ }, "x-appwrite": { "method": "updateTeam", - "weight": 154, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -22853,7 +22939,7 @@ }, "x-appwrite": { "method": "getEmailTemplate", - "weight": 191, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -23079,7 +23165,7 @@ }, "x-appwrite": { "method": "updateEmailTemplate", - "weight": 193, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -23345,7 +23431,7 @@ }, "x-appwrite": { "method": "deleteEmailTemplate", - "weight": 195, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -23573,7 +23659,7 @@ }, "x-appwrite": { "method": "getSmsTemplate", - "weight": 190, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -23796,7 +23882,7 @@ }, "x-appwrite": { "method": "updateSmsTemplate", - "weight": 192, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -24038,7 +24124,7 @@ }, "x-appwrite": { "method": "deleteSmsTemplate", - "weight": 194, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -24263,7 +24349,7 @@ }, "x-appwrite": { "method": "listWebhooks", - "weight": 172, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -24323,7 +24409,7 @@ }, "x-appwrite": { "method": "createWebhook", - "weight": 171, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -24440,7 +24526,7 @@ }, "x-appwrite": { "method": "getWebhook", - "weight": 173, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -24510,7 +24596,7 @@ }, "x-appwrite": { "method": "updateWebhook", - "weight": 174, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -24628,7 +24714,7 @@ }, "x-appwrite": { "method": "deleteWebhook", - "weight": 176, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -24700,7 +24786,7 @@ }, "x-appwrite": { "method": "updateWebhookSignature", - "weight": 175, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -24772,7 +24858,7 @@ }, "x-appwrite": { "method": "listRules", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -24846,7 +24932,7 @@ }, "x-appwrite": { "method": "createRule", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -24932,7 +25018,7 @@ }, "x-appwrite": { "method": "getRule", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -24985,7 +25071,7 @@ }, "x-appwrite": { "method": "deleteRule", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -25047,7 +25133,7 @@ }, "x-appwrite": { "method": "updateRuleVerification", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -25109,7 +25195,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -25184,7 +25270,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -25313,7 +25399,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -25374,7 +25460,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -25500,7 +25586,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -25563,7 +25649,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -25651,7 +25737,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -25751,7 +25837,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -25825,7 +25911,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -25916,7 +26002,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -25985,7 +26071,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -26054,7 +26140,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -26272,7 +26358,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -26348,7 +26434,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 216, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -26422,7 +26508,7 @@ }, "x-appwrite": { "method": "getBucketUsage", - "weight": 217, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -26506,7 +26592,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -26584,7 +26670,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -26671,7 +26757,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -26735,7 +26821,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -26811,7 +26897,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -26877,7 +26963,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 231, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -26952,7 +27038,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -27040,7 +27126,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -27153,7 +27239,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -27227,7 +27313,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -27316,7 +27402,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -27392,7 +27478,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -27491,7 +27577,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -27553,7 +27639,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -27636,7 +27722,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -27711,7 +27797,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -27801,7 +27887,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -27888,7 +27974,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -27975,7 +28061,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -28045,7 +28131,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -28108,7 +28194,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -28195,7 +28281,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -28282,7 +28368,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -28399,7 +28485,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -28504,7 +28590,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -28611,7 +28697,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -28685,7 +28771,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -28739,7 +28825,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -28802,7 +28888,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -28884,7 +28970,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -28968,7 +29054,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -29053,7 +29139,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -29129,7 +29215,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -29192,7 +29278,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -29274,7 +29360,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -29352,7 +29438,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -29415,7 +29501,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -29476,7 +29562,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -29537,7 +29623,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -29600,7 +29686,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -29682,7 +29768,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -29764,7 +29850,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -29846,7 +29932,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -29907,7 +29993,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -29989,7 +30075,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -30050,7 +30136,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -30104,7 +30190,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -30160,7 +30246,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -30233,7 +30319,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -30315,7 +30401,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -30390,7 +30476,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -30502,7 +30588,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -30574,7 +30660,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -30665,7 +30751,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -30739,7 +30825,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -30823,7 +30909,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -30905,7 +30991,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -30987,7 +31073,7 @@ }, "x-appwrite": { "method": "listRepositories", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -31058,7 +31144,7 @@ }, "x-appwrite": { "method": "createRepository", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -31145,7 +31231,7 @@ }, "x-appwrite": { "method": "getRepository", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "deprecated": false, @@ -31217,7 +31303,7 @@ }, "x-appwrite": { "method": "listRepositoryBranches", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -31289,7 +31375,7 @@ }, "x-appwrite": { "method": "getRepositoryContents", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "deprecated": false, @@ -31372,7 +31458,7 @@ }, "x-appwrite": { "method": "createRepositoryDetection", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "deprecated": false, @@ -31453,7 +31539,7 @@ }, "x-appwrite": { "method": "updateExternalDeployments", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -31544,7 +31630,7 @@ }, "x-appwrite": { "method": "listInstallations", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "deprecated": false, @@ -31620,7 +31706,7 @@ }, "x-appwrite": { "method": "getInstallation", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "deprecated": false, @@ -31673,7 +31759,7 @@ }, "x-appwrite": { "method": "deleteInstallation", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -36077,17 +36163,17 @@ "description": "Whether or not to send session alert emails to users.", "x-example": true }, - "membershipsUserName": { + "authMembershipsUserName": { "type": "boolean", "description": "Whether or not to show user names in the teams membership response.", "x-example": true }, - "membershipsUserEmail": { + "authMembershipsUserEmail": { "type": "boolean", "description": "Whether or not to show user emails in the teams membership response.", "x-example": true }, - "membershipsMfa": { + "authMembershipsMfa": { "type": "boolean", "description": "Whether or not to show user MFA status in the teams membership response.", "x-example": true @@ -36297,9 +36383,9 @@ "authPersonalDataCheck", "authMockNumbers", "authSessionAlerts", - "membershipsUserName", - "membershipsUserEmail", - "membershipsMfa", + "authMembershipsUserName", + "authMembershipsUserEmail", + "authMembershipsMfa", "oAuthProviders", "platforms", "webhooks", diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index e84b751743..782c6f6e22 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -7735,6 +7735,94 @@ } } } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File" + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + } + } } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -8414,7 +8502,7 @@ }, "x-appwrite": { "method": "list", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -8490,7 +8578,7 @@ }, "x-appwrite": { "method": "create", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -8739,7 +8827,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -8791,7 +8879,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -8844,7 +8932,7 @@ }, "x-appwrite": { "method": "get", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -8906,7 +8994,7 @@ }, "x-appwrite": { "method": "update", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -9132,7 +9220,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -9196,7 +9284,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -9282,7 +9370,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 299, + "weight": 300, "cookies": false, "type": "upload", "deprecated": false, @@ -9381,7 +9469,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -9453,7 +9541,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "deprecated": false, @@ -9518,7 +9606,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -9585,7 +9673,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -9673,7 +9761,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "deprecated": false, @@ -9740,7 +9828,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 296, + "weight": 297, "cookies": false, "type": "location", "deprecated": false, @@ -9816,7 +9904,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -9906,7 +9994,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -10025,7 +10113,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -10094,7 +10182,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -10168,7 +10256,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -10230,7 +10318,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -10319,7 +10407,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -10391,7 +10479,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -10480,7 +10568,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -10554,7 +10642,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -10610,7 +10698,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -10666,7 +10754,7 @@ }, "x-appwrite": { "method": "get", - "weight": 125, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -10718,7 +10806,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -10770,7 +10858,7 @@ }, "x-appwrite": { "method": "getCache", - "weight": 128, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -10822,7 +10910,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -10885,7 +10973,7 @@ }, "x-appwrite": { "method": "getDB", - "weight": 127, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -10937,7 +11025,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -10989,7 +11077,7 @@ }, "x-appwrite": { "method": "getQueue", - "weight": 129, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -11041,7 +11129,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -11106,7 +11194,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11171,7 +11259,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11247,7 +11335,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -11312,7 +11400,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -11403,7 +11491,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11468,7 +11556,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -11533,7 +11621,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -11598,7 +11686,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -11663,7 +11751,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11728,7 +11816,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11793,7 +11881,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -11858,7 +11946,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -11923,7 +12011,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -11975,7 +12063,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -12027,7 +12115,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -12079,7 +12167,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -12135,7 +12223,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -12191,7 +12279,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -12247,7 +12335,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -12303,7 +12391,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -12359,7 +12447,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -12415,7 +12503,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -12471,7 +12559,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -12527,7 +12615,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -12606,7 +12694,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -12753,7 +12841,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -12902,7 +12990,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -13060,7 +13148,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -13220,7 +13308,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -13332,7 +13420,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -13447,7 +13535,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -13503,7 +13591,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -13568,7 +13656,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -13646,7 +13734,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -13724,7 +13812,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -13803,7 +13891,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -13911,7 +13999,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -14022,7 +14110,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -14110,7 +14198,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -14201,7 +14289,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -14319,7 +14407,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -14440,7 +14528,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14538,7 +14626,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -14639,7 +14727,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -14747,7 +14835,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -14858,7 +14946,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -15004,7 +15092,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -15152,7 +15240,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -15250,7 +15338,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -15351,7 +15439,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -15449,7 +15537,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -15550,7 +15638,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -15648,7 +15736,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -15749,7 +15837,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -15847,7 +15935,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -15948,7 +16036,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -16004,7 +16092,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -16069,7 +16157,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -16147,7 +16235,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -16225,7 +16313,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -16302,7 +16390,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -16388,7 +16476,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -16451,7 +16539,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -16531,7 +16619,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -16596,7 +16684,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -16674,7 +16762,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -16761,7 +16849,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -16855,7 +16943,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -16921,7 +17009,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -17000,7 +17088,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -17076,7 +17164,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -17206,7 +17294,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -17268,7 +17356,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -17395,7 +17483,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -17459,7 +17547,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -17549,7 +17637,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -17651,7 +17739,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -17727,7 +17815,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -17820,7 +17908,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -17891,7 +17979,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -17962,7 +18050,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -18182,7 +18270,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -18260,7 +18348,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -18340,7 +18428,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -18429,7 +18517,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -18495,7 +18583,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -18573,7 +18661,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -18641,7 +18729,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -18731,7 +18819,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -18846,7 +18934,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -18922,7 +19010,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -19013,7 +19101,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -19091,7 +19179,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -19192,7 +19280,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -19256,7 +19344,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -19341,7 +19429,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -19417,7 +19505,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -19508,7 +19596,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -19596,7 +19684,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -19684,7 +19772,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -19755,7 +19843,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -19819,7 +19907,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -19907,7 +19995,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -19995,7 +20083,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -20113,7 +20201,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -20219,7 +20307,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -20327,7 +20415,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -20382,7 +20470,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -20446,7 +20534,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -20529,7 +20617,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -20614,7 +20702,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -20700,7 +20788,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -20777,7 +20865,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -20841,7 +20929,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -20924,7 +21012,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -21003,7 +21091,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -21067,7 +21155,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -21129,7 +21217,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -21191,7 +21279,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -21255,7 +21343,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -21338,7 +21426,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -21421,7 +21509,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -21504,7 +21592,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -21566,7 +21654,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -21649,7 +21737,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -21711,7 +21799,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -21766,7 +21854,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -21823,7 +21911,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -21897,7 +21985,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -21980,7 +22068,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -22056,7 +22144,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -22169,7 +22257,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -22242,7 +22330,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -22334,7 +22422,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -22409,7 +22497,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -22494,7 +22582,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -22577,7 +22665,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 253, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-client.json b/app/config/specs/swagger2-latest-client.json index b1b9ce8dca..9efff64f83 100644 --- a/app/config/specs/swagger2-latest-client.json +++ b/app/config/specs/swagger2-latest-client.json @@ -4802,6 +4802,94 @@ } } ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + ] } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -5101,7 +5189,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -5186,7 +5274,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -5307,7 +5395,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -5381,7 +5469,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -5457,7 +5545,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -5533,7 +5621,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -5589,7 +5677,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -5645,7 +5733,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -5701,7 +5789,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -5757,7 +5845,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -5813,7 +5901,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -5869,7 +5957,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -5925,7 +6013,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -5981,7 +6069,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -6070,7 +6158,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -6145,7 +6233,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -6230,7 +6318,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -6324,7 +6412,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -6396,7 +6484,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -6487,7 +6575,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -6561,7 +6649,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -6635,7 +6723,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -6836,7 +6924,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -6910,7 +6998,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -6987,7 +7075,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -7081,7 +7169,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -7145,7 +7233,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -7222,7 +7310,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -7288,7 +7376,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -7373,7 +7461,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -7490,7 +7578,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -7562,7 +7650,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -7650,7 +7738,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -7724,7 +7812,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -7822,7 +7910,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -7885,7 +7973,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "cookies": false, "type": "", "deprecated": false, diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index c7b6bac2d4..6d7724e07b 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -4659,7 +4659,7 @@ }, "x-appwrite": { "method": "chat", - "weight": 333, + "weight": 334, "cookies": false, "type": "", "deprecated": false, @@ -4731,7 +4731,7 @@ }, "x-appwrite": { "method": "variables", - "weight": 332, + "weight": 333, "cookies": false, "type": "", "deprecated": false, @@ -4943,7 +4943,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 114, + "weight": 115, "cookies": false, "type": "", "deprecated": false, @@ -8358,6 +8358,94 @@ } } ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + ] } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -9181,7 +9269,7 @@ }, "x-appwrite": { "method": "getCollectionUsage", - "weight": 116, + "weight": 117, "cookies": false, "type": "", "deprecated": false, @@ -9345,7 +9433,7 @@ }, "x-appwrite": { "method": "getDatabaseUsage", - "weight": 115, + "weight": 116, "cookies": false, "type": "", "deprecated": false, @@ -9427,7 +9515,7 @@ }, "x-appwrite": { "method": "list", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -9501,7 +9589,7 @@ }, "x-appwrite": { "method": "create", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -9773,7 +9861,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -9826,7 +9914,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -9880,7 +9968,7 @@ }, "x-appwrite": { "method": "listTemplates", - "weight": 314, + "weight": 315, "cookies": false, "type": "", "deprecated": false, @@ -9978,7 +10066,7 @@ }, "x-appwrite": { "method": "getTemplate", - "weight": 315, + "weight": 316, "cookies": false, "type": "", "deprecated": false, @@ -10040,7 +10128,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 294, + "weight": 295, "cookies": false, "type": "", "deprecated": false, @@ -10114,7 +10202,7 @@ }, "x-appwrite": { "method": "get", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -10175,7 +10263,7 @@ }, "x-appwrite": { "method": "update", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -10417,7 +10505,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -10480,7 +10568,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -10562,7 +10650,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 299, + "weight": 300, "cookies": false, "type": "upload", "deprecated": false, @@ -10656,7 +10744,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -10725,7 +10813,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "deprecated": false, @@ -10789,7 +10877,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -10855,7 +10943,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -10939,7 +11027,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "deprecated": false, @@ -11010,7 +11098,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 296, + "weight": 297, "cookies": false, "type": "location", "deprecated": false, @@ -11083,7 +11171,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -11168,7 +11256,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -11289,7 +11377,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -11356,7 +11444,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -11427,7 +11515,7 @@ }, "x-appwrite": { "method": "getFunctionUsage", - "weight": 293, + "weight": 294, "cookies": false, "type": "", "deprecated": false, @@ -11509,7 +11597,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -11570,7 +11658,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -11658,7 +11746,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -11727,7 +11815,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -11815,7 +11903,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -11886,7 +11974,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -11962,7 +12050,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -12038,7 +12126,7 @@ }, "x-appwrite": { "method": "get", - "weight": 125, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -12091,7 +12179,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -12144,7 +12232,7 @@ }, "x-appwrite": { "method": "getCache", - "weight": 128, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -12197,7 +12285,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -12259,7 +12347,7 @@ }, "x-appwrite": { "method": "getDB", - "weight": 127, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -12312,7 +12400,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -12365,7 +12453,7 @@ }, "x-appwrite": { "method": "getQueue", - "weight": 129, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -12418,7 +12506,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -12482,7 +12570,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -12546,7 +12634,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -12619,7 +12707,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -12683,7 +12771,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -12771,7 +12859,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -12835,7 +12923,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -12899,7 +12987,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -12963,7 +13051,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -13027,7 +13115,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -13091,7 +13179,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -13155,7 +13243,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -13219,7 +13307,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -13283,7 +13371,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -13336,7 +13424,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -13389,7 +13477,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -13442,7 +13530,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -13498,7 +13586,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -13554,7 +13642,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -13610,7 +13698,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -13666,7 +13754,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -13722,7 +13810,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -13778,7 +13866,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -13834,7 +13922,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -13890,7 +13978,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -13967,7 +14055,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -14127,7 +14215,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -14284,7 +14372,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -14459,7 +14547,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -14631,7 +14719,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -14751,7 +14839,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -14869,7 +14957,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -14928,7 +15016,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -14992,7 +15080,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -15068,7 +15156,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -15144,7 +15232,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -15221,7 +15309,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -15338,7 +15426,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -15453,7 +15541,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -15546,7 +15634,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -15637,7 +15725,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -15766,7 +15854,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -15893,7 +15981,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -15998,7 +16086,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -16101,7 +16189,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -16218,7 +16306,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -16333,7 +16421,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -16494,7 +16582,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -16652,7 +16740,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -16757,7 +16845,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -16860,7 +16948,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -16965,7 +17053,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -17068,7 +17156,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -17173,7 +17261,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -17276,7 +17364,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -17381,7 +17469,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -17484,7 +17572,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -17543,7 +17631,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -17607,7 +17695,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -17683,7 +17771,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -17759,7 +17847,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -17834,7 +17922,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -17926,7 +18014,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -17988,7 +18076,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -18071,7 +18159,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -18135,7 +18223,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -18211,7 +18299,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -18294,7 +18382,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -18386,7 +18474,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -18453,7 +18541,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -18528,7 +18616,7 @@ }, "x-appwrite": { "method": "list", - "weight": 339, + "weight": 340, "cookies": false, "type": "", "deprecated": false, @@ -18603,7 +18691,7 @@ }, "x-appwrite": { "method": "createAppwriteMigration", - "weight": 334, + "weight": 335, "cookies": false, "type": "", "deprecated": false, @@ -18699,7 +18787,7 @@ }, "x-appwrite": { "method": "getAppwriteReport", - "weight": 341, + "weight": 342, "cookies": false, "type": "", "deprecated": false, @@ -18789,7 +18877,7 @@ }, "x-appwrite": { "method": "createFirebaseMigration", - "weight": 336, + "weight": 337, "cookies": false, "type": "", "deprecated": false, @@ -18871,7 +18959,7 @@ }, "x-appwrite": { "method": "deleteFirebaseAuth", - "weight": 347, + "weight": 348, "cookies": false, "type": "", "deprecated": false, @@ -18923,7 +19011,7 @@ }, "x-appwrite": { "method": "createFirebaseOAuthMigration", - "weight": 335, + "weight": 336, "cookies": false, "type": "", "deprecated": false, @@ -19005,7 +19093,7 @@ }, "x-appwrite": { "method": "listFirebaseProjects", - "weight": 346, + "weight": 347, "cookies": false, "type": "", "deprecated": false, @@ -19057,7 +19145,7 @@ }, "x-appwrite": { "method": "getFirebaseReport", - "weight": 342, + "weight": 343, "cookies": false, "type": "", "deprecated": false, @@ -19130,7 +19218,7 @@ }, "x-appwrite": { "method": "getFirebaseReportOAuth", - "weight": 343, + "weight": 344, "cookies": false, "type": "", "deprecated": false, @@ -19203,7 +19291,7 @@ }, "x-appwrite": { "method": "createNHostMigration", - "weight": 338, + "weight": 339, "cookies": false, "type": "", "deprecated": false, @@ -19326,7 +19414,7 @@ }, "x-appwrite": { "method": "getNHostReport", - "weight": 349, + "weight": 350, "cookies": false, "type": "", "deprecated": false, @@ -19448,7 +19536,7 @@ }, "x-appwrite": { "method": "createSupabaseMigration", - "weight": 337, + "weight": 338, "cookies": false, "type": "", "deprecated": false, @@ -19564,7 +19652,7 @@ }, "x-appwrite": { "method": "getSupabaseReport", - "weight": 348, + "weight": 349, "cookies": false, "type": "", "deprecated": false, @@ -19679,7 +19767,7 @@ }, "x-appwrite": { "method": "get", - "weight": 340, + "weight": 341, "cookies": false, "type": "", "deprecated": false, @@ -19739,7 +19827,7 @@ }, "x-appwrite": { "method": "retry", - "weight": 350, + "weight": 351, "cookies": false, "type": "", "deprecated": false, @@ -19794,7 +19882,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 351, + "weight": 352, "cookies": false, "type": "", "deprecated": false, @@ -19856,7 +19944,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 196, + "weight": 197, "cookies": false, "type": "", "deprecated": false, @@ -19942,7 +20030,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 198, + "weight": 199, "cookies": false, "type": "", "deprecated": false, @@ -19992,7 +20080,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 197, + "weight": 198, "cookies": false, "type": "", "deprecated": false, @@ -20071,7 +20159,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 199, + "weight": 200, "cookies": false, "type": "", "deprecated": false, @@ -20131,7 +20219,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 200, + "weight": 201, "cookies": false, "type": "", "deprecated": false, @@ -20210,7 +20298,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 201, + "weight": 202, "cookies": false, "type": "", "deprecated": false, @@ -20272,7 +20360,7 @@ }, "x-appwrite": { "method": "list", - "weight": 151, + "weight": 152, "cookies": false, "type": "", "deprecated": false, @@ -20345,7 +20433,7 @@ }, "x-appwrite": { "method": "create", - "weight": 150, + "weight": 151, "cookies": false, "type": "", "deprecated": false, @@ -20497,7 +20585,7 @@ }, "x-appwrite": { "method": "get", - "weight": 152, + "weight": 153, "cookies": false, "type": "", "deprecated": false, @@ -20557,7 +20645,7 @@ }, "x-appwrite": { "method": "update", - "weight": 153, + "weight": 154, "cookies": false, "type": "", "deprecated": false, @@ -20684,7 +20772,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 170, + "weight": 171, "cookies": false, "type": "", "deprecated": false, @@ -20746,7 +20834,7 @@ }, "x-appwrite": { "method": "updateApiStatus", - "weight": 157, + "weight": 158, "cookies": false, "type": "", "deprecated": false, @@ -20840,7 +20928,7 @@ }, "x-appwrite": { "method": "updateApiStatusAll", - "weight": 158, + "weight": 159, "cookies": false, "type": "", "deprecated": false, @@ -20920,7 +21008,7 @@ }, "x-appwrite": { "method": "updateAuthDuration", - "weight": 163, + "weight": 164, "cookies": false, "type": "", "deprecated": false, @@ -21000,7 +21088,7 @@ }, "x-appwrite": { "method": "updateAuthLimit", - "weight": 162, + "weight": 163, "cookies": false, "type": "", "deprecated": false, @@ -21080,7 +21168,7 @@ }, "x-appwrite": { "method": "updateAuthSessionsLimit", - "weight": 168, + "weight": 169, "cookies": false, "type": "", "deprecated": false, @@ -21138,7 +21226,7 @@ }, "\/projects\/{projectId}\/auth\/memberships-privacy": { "patch": { - "summary": "Update project team sensitive attributes", + "summary": "Update project memberships privacy attributes", "operationId": "projectsUpdateMembershipsPrivacy", "consumes": [ "application\/json" @@ -21160,7 +21248,7 @@ }, "x-appwrite": { "method": "updateMembershipsPrivacy", - "weight": 161, + "weight": 162, "cookies": false, "type": "", "deprecated": false, @@ -21254,7 +21342,7 @@ }, "x-appwrite": { "method": "updateMockNumbers", - "weight": 169, + "weight": 170, "cookies": false, "type": "", "deprecated": false, @@ -21337,7 +21425,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordDictionary", - "weight": 166, + "weight": 167, "cookies": false, "type": "", "deprecated": false, @@ -21417,7 +21505,7 @@ }, "x-appwrite": { "method": "updateAuthPasswordHistory", - "weight": 165, + "weight": 166, "cookies": false, "type": "", "deprecated": false, @@ -21497,7 +21585,7 @@ }, "x-appwrite": { "method": "updatePersonalDataCheck", - "weight": 167, + "weight": 168, "cookies": false, "type": "", "deprecated": false, @@ -21577,7 +21665,7 @@ }, "x-appwrite": { "method": "updateSessionAlerts", - "weight": 160, + "weight": 161, "cookies": false, "type": "", "deprecated": false, @@ -21657,7 +21745,7 @@ }, "x-appwrite": { "method": "updateAuthStatus", - "weight": 164, + "weight": 165, "cookies": false, "type": "", "deprecated": false, @@ -21756,7 +21844,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 182, + "weight": 183, "cookies": false, "type": "", "deprecated": false, @@ -21845,7 +21933,7 @@ }, "x-appwrite": { "method": "listKeys", - "weight": 178, + "weight": 179, "cookies": false, "type": "", "deprecated": false, @@ -21905,7 +21993,7 @@ }, "x-appwrite": { "method": "createKey", - "weight": 177, + "weight": 178, "cookies": false, "type": "", "deprecated": false, @@ -22001,7 +22089,7 @@ }, "x-appwrite": { "method": "getKey", - "weight": 179, + "weight": 180, "cookies": false, "type": "", "deprecated": false, @@ -22069,7 +22157,7 @@ }, "x-appwrite": { "method": "updateKey", - "weight": 180, + "weight": 181, "cookies": false, "type": "", "deprecated": false, @@ -22166,7 +22254,7 @@ }, "x-appwrite": { "method": "deleteKey", - "weight": 181, + "weight": 182, "cookies": false, "type": "", "deprecated": false, @@ -22236,7 +22324,7 @@ }, "x-appwrite": { "method": "updateOAuth2", - "weight": 159, + "weight": 160, "cookies": false, "type": "", "deprecated": false, @@ -22377,7 +22465,7 @@ }, "x-appwrite": { "method": "listPlatforms", - "weight": 184, + "weight": 185, "cookies": false, "type": "", "deprecated": false, @@ -22437,7 +22525,7 @@ }, "x-appwrite": { "method": "createPlatform", - "weight": 183, + "weight": 184, "cookies": false, "type": "", "deprecated": false, @@ -22561,7 +22649,7 @@ }, "x-appwrite": { "method": "getPlatform", - "weight": 185, + "weight": 186, "cookies": false, "type": "", "deprecated": false, @@ -22629,7 +22717,7 @@ }, "x-appwrite": { "method": "updatePlatform", - "weight": 186, + "weight": 187, "cookies": false, "type": "", "deprecated": false, @@ -22728,7 +22816,7 @@ }, "x-appwrite": { "method": "deletePlatform", - "weight": 187, + "weight": 188, "cookies": false, "type": "", "deprecated": false, @@ -22798,7 +22886,7 @@ }, "x-appwrite": { "method": "updateServiceStatus", - "weight": 155, + "weight": 156, "cookies": false, "type": "", "deprecated": false, @@ -22900,7 +22988,7 @@ }, "x-appwrite": { "method": "updateServiceStatusAll", - "weight": 156, + "weight": 157, "cookies": false, "type": "", "deprecated": false, @@ -22980,7 +23068,7 @@ }, "x-appwrite": { "method": "updateSmtp", - "weight": 188, + "weight": 189, "cookies": false, "type": "", "deprecated": false, @@ -23109,7 +23197,7 @@ }, "x-appwrite": { "method": "createSmtpTest", - "weight": 189, + "weight": 190, "cookies": false, "type": "", "deprecated": false, @@ -23249,7 +23337,7 @@ }, "x-appwrite": { "method": "updateTeam", - "weight": 154, + "weight": 155, "cookies": false, "type": "", "deprecated": false, @@ -23329,7 +23417,7 @@ }, "x-appwrite": { "method": "getEmailTemplate", - "weight": 191, + "weight": 192, "cookies": false, "type": "", "deprecated": false, @@ -23551,7 +23639,7 @@ }, "x-appwrite": { "method": "updateEmailTemplate", - "weight": 193, + "weight": 194, "cookies": false, "type": "", "deprecated": false, @@ -23816,7 +23904,7 @@ }, "x-appwrite": { "method": "deleteEmailTemplate", - "weight": 195, + "weight": 196, "cookies": false, "type": "", "deprecated": false, @@ -24040,7 +24128,7 @@ }, "x-appwrite": { "method": "getSmsTemplate", - "weight": 190, + "weight": 191, "cookies": false, "type": "", "deprecated": false, @@ -24259,7 +24347,7 @@ }, "x-appwrite": { "method": "updateSmsTemplate", - "weight": 192, + "weight": 193, "cookies": false, "type": "", "deprecated": false, @@ -24496,7 +24584,7 @@ }, "x-appwrite": { "method": "deleteSmsTemplate", - "weight": 194, + "weight": 195, "cookies": false, "type": "", "deprecated": false, @@ -24717,7 +24805,7 @@ }, "x-appwrite": { "method": "listWebhooks", - "weight": 172, + "weight": 173, "cookies": false, "type": "", "deprecated": false, @@ -24777,7 +24865,7 @@ }, "x-appwrite": { "method": "createWebhook", - "weight": 171, + "weight": 172, "cookies": false, "type": "", "deprecated": false, @@ -24899,7 +24987,7 @@ }, "x-appwrite": { "method": "getWebhook", - "weight": 173, + "weight": 174, "cookies": false, "type": "", "deprecated": false, @@ -24967,7 +25055,7 @@ }, "x-appwrite": { "method": "updateWebhook", - "weight": 174, + "weight": 175, "cookies": false, "type": "", "deprecated": false, @@ -25090,7 +25178,7 @@ }, "x-appwrite": { "method": "deleteWebhook", - "weight": 176, + "weight": 177, "cookies": false, "type": "", "deprecated": false, @@ -25160,7 +25248,7 @@ }, "x-appwrite": { "method": "updateWebhookSignature", - "weight": 175, + "weight": 176, "cookies": false, "type": "", "deprecated": false, @@ -25230,7 +25318,7 @@ }, "x-appwrite": { "method": "listRules", - "weight": 317, + "weight": 318, "cookies": false, "type": "", "deprecated": false, @@ -25303,7 +25391,7 @@ }, "x-appwrite": { "method": "createRule", - "weight": 316, + "weight": 317, "cookies": false, "type": "", "deprecated": false, @@ -25394,7 +25482,7 @@ }, "x-appwrite": { "method": "getRule", - "weight": 318, + "weight": 319, "cookies": false, "type": "", "deprecated": false, @@ -25449,7 +25537,7 @@ }, "x-appwrite": { "method": "deleteRule", - "weight": 319, + "weight": 320, "cookies": false, "type": "", "deprecated": false, @@ -25511,7 +25599,7 @@ }, "x-appwrite": { "method": "updateRuleVerification", - "weight": 320, + "weight": 321, "cookies": false, "type": "", "deprecated": false, @@ -25573,7 +25661,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -25647,7 +25735,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -25788,7 +25876,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -25849,7 +25937,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -25984,7 +26072,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -26047,7 +26135,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -26132,7 +26220,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -26226,7 +26314,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -26298,7 +26386,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -26389,7 +26477,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -26463,7 +26551,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -26537,7 +26625,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -26738,7 +26826,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -26812,7 +26900,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 216, + "weight": 217, "cookies": false, "type": "", "deprecated": false, @@ -26886,7 +26974,7 @@ }, "x-appwrite": { "method": "getBucketUsage", - "weight": 217, + "weight": 218, "cookies": false, "type": "", "deprecated": false, @@ -26968,7 +27056,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -27045,7 +27133,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -27139,7 +27227,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -27203,7 +27291,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -27280,7 +27368,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -27346,7 +27434,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 231, + "weight": 232, "cookies": false, "type": "", "deprecated": false, @@ -27420,7 +27508,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -27505,7 +27593,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -27622,7 +27710,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -27694,7 +27782,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -27782,7 +27870,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -27856,7 +27944,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -27953,7 +28041,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -28015,7 +28103,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -28097,7 +28185,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -28171,7 +28259,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -28268,7 +28356,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -28361,7 +28449,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -28454,7 +28542,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -28525,7 +28613,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -28588,7 +28676,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -28681,7 +28769,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -28774,7 +28862,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -28902,7 +28990,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -29016,7 +29104,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -29130,7 +29218,7 @@ }, "x-appwrite": { "method": "getUsage", - "weight": 274, + "weight": 275, "cookies": false, "type": "", "deprecated": false, @@ -29204,7 +29292,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -29260,7 +29348,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -29323,7 +29411,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -29404,7 +29492,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -29488,7 +29576,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -29572,7 +29660,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -29647,7 +29735,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -29710,7 +29798,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -29791,7 +29879,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -29867,7 +29955,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -29930,7 +30018,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -29991,7 +30079,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -30052,7 +30140,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -30115,7 +30203,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -30196,7 +30284,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -30277,7 +30365,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -30358,7 +30446,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -30419,7 +30507,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -30500,7 +30588,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -30561,7 +30649,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -30617,7 +30705,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -30675,7 +30763,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -30746,7 +30834,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -30827,7 +30915,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -30901,7 +30989,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -31016,7 +31104,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -31086,7 +31174,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -31180,7 +31268,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -31252,7 +31340,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -31336,7 +31424,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -31417,7 +31505,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 253, "cookies": false, "type": "", "deprecated": false, @@ -31498,7 +31586,7 @@ }, "x-appwrite": { "method": "listRepositories", - "weight": 279, + "weight": 280, "cookies": false, "type": "", "deprecated": false, @@ -31567,7 +31655,7 @@ }, "x-appwrite": { "method": "createRepository", - "weight": 280, + "weight": 281, "cookies": false, "type": "", "deprecated": false, @@ -31654,7 +31742,7 @@ }, "x-appwrite": { "method": "getRepository", - "weight": 281, + "weight": 282, "cookies": false, "type": "", "deprecated": false, @@ -31724,7 +31812,7 @@ }, "x-appwrite": { "method": "listRepositoryBranches", - "weight": 282, + "weight": 283, "cookies": false, "type": "", "deprecated": false, @@ -31794,7 +31882,7 @@ }, "x-appwrite": { "method": "getRepositoryContents", - "weight": 277, + "weight": 278, "cookies": false, "type": "", "deprecated": false, @@ -31873,7 +31961,7 @@ }, "x-appwrite": { "method": "createRepositoryDetection", - "weight": 278, + "weight": 279, "cookies": false, "type": "", "deprecated": false, @@ -31953,7 +32041,7 @@ }, "x-appwrite": { "method": "updateExternalDeployments", - "weight": 287, + "weight": 288, "cookies": false, "type": "", "deprecated": false, @@ -32041,7 +32129,7 @@ }, "x-appwrite": { "method": "listInstallations", - "weight": 284, + "weight": 285, "cookies": false, "type": "", "deprecated": false, @@ -32116,7 +32204,7 @@ }, "x-appwrite": { "method": "getInstallation", - "weight": 285, + "weight": 286, "cookies": false, "type": "", "deprecated": false, @@ -32171,7 +32259,7 @@ }, "x-appwrite": { "method": "deleteInstallation", - "weight": 286, + "weight": 287, "cookies": false, "type": "", "deprecated": false, @@ -36591,17 +36679,17 @@ "description": "Whether or not to send session alert emails to users.", "x-example": true }, - "membershipsUserName": { + "authMembershipsUserName": { "type": "boolean", "description": "Whether or not to show user names in the teams membership response.", "x-example": true }, - "membershipsUserEmail": { + "authMembershipsUserEmail": { "type": "boolean", "description": "Whether or not to show user emails in the teams membership response.", "x-example": true }, - "membershipsMfa": { + "authMembershipsMfa": { "type": "boolean", "description": "Whether or not to show user MFA status in the teams membership response.", "x-example": true @@ -36815,9 +36903,9 @@ "authPersonalDataCheck", "authMockNumbers", "authSessionAlerts", - "membershipsUserName", - "membershipsUserEmail", - "membershipsMfa", + "authMembershipsUserName", + "authMembershipsUserEmail", + "authMembershipsMfa", "oAuthProviders", "platforms", "webhooks", diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index 2c8e80c65e..09aad57d90 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -7874,6 +7874,96 @@ } } ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "x-appwrite": { + "method": "deleteDocuments", + "weight": 114, + "cookies": false, + "type": "", + "deprecated": false, + "demo": "databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "server" + ], + "packaging": false, + "offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents", + "offline-key": "{documentId}", + "offline-response-key": "$id", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } + } + } + ] } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -8535,7 +8625,7 @@ }, "x-appwrite": { "method": "list", - "weight": 289, + "weight": 290, "cookies": false, "type": "", "deprecated": false, @@ -8610,7 +8700,7 @@ }, "x-appwrite": { "method": "create", - "weight": 288, + "weight": 289, "cookies": false, "type": "", "deprecated": false, @@ -8883,7 +8973,7 @@ }, "x-appwrite": { "method": "listRuntimes", - "weight": 290, + "weight": 291, "cookies": false, "type": "", "deprecated": false, @@ -8937,7 +9027,7 @@ }, "x-appwrite": { "method": "listSpecifications", - "weight": 291, + "weight": 292, "cookies": false, "type": "", "deprecated": false, @@ -8992,7 +9082,7 @@ }, "x-appwrite": { "method": "get", - "weight": 292, + "weight": 293, "cookies": false, "type": "", "deprecated": false, @@ -9054,7 +9144,7 @@ }, "x-appwrite": { "method": "update", - "weight": 295, + "weight": 296, "cookies": false, "type": "", "deprecated": false, @@ -9297,7 +9387,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 298, + "weight": 299, "cookies": false, "type": "", "deprecated": false, @@ -9361,7 +9451,7 @@ }, "x-appwrite": { "method": "listDeployments", - "weight": 300, + "weight": 301, "cookies": false, "type": "", "deprecated": false, @@ -9444,7 +9534,7 @@ }, "x-appwrite": { "method": "createDeployment", - "weight": 299, + "weight": 300, "cookies": false, "type": "upload", "deprecated": false, @@ -9539,7 +9629,7 @@ }, "x-appwrite": { "method": "getDeployment", - "weight": 301, + "weight": 302, "cookies": false, "type": "", "deprecated": false, @@ -9609,7 +9699,7 @@ }, "x-appwrite": { "method": "updateDeployment", - "weight": 297, + "weight": 298, "cookies": false, "type": "", "deprecated": false, @@ -9674,7 +9764,7 @@ }, "x-appwrite": { "method": "deleteDeployment", - "weight": 302, + "weight": 303, "cookies": false, "type": "", "deprecated": false, @@ -9741,7 +9831,7 @@ }, "x-appwrite": { "method": "createBuild", - "weight": 303, + "weight": 304, "cookies": false, "type": "", "deprecated": false, @@ -9826,7 +9916,7 @@ }, "x-appwrite": { "method": "updateDeploymentBuild", - "weight": 304, + "weight": 305, "cookies": false, "type": "", "deprecated": false, @@ -9898,7 +9988,7 @@ }, "x-appwrite": { "method": "getDeploymentDownload", - "weight": 296, + "weight": 297, "cookies": false, "type": "location", "deprecated": false, @@ -9972,7 +10062,7 @@ }, "x-appwrite": { "method": "listExecutions", - "weight": 306, + "weight": 307, "cookies": false, "type": "", "deprecated": false, @@ -10059,7 +10149,7 @@ }, "x-appwrite": { "method": "createExecution", - "weight": 305, + "weight": 306, "cookies": false, "type": "", "deprecated": false, @@ -10182,7 +10272,7 @@ }, "x-appwrite": { "method": "getExecution", - "weight": 307, + "weight": 308, "cookies": false, "type": "", "deprecated": false, @@ -10251,7 +10341,7 @@ }, "x-appwrite": { "method": "deleteExecution", - "weight": 308, + "weight": 309, "cookies": false, "type": "", "deprecated": false, @@ -10323,7 +10413,7 @@ }, "x-appwrite": { "method": "listVariables", - "weight": 310, + "weight": 311, "cookies": false, "type": "", "deprecated": false, @@ -10385,7 +10475,7 @@ }, "x-appwrite": { "method": "createVariable", - "weight": 309, + "weight": 310, "cookies": false, "type": "", "deprecated": false, @@ -10474,7 +10564,7 @@ }, "x-appwrite": { "method": "getVariable", - "weight": 311, + "weight": 312, "cookies": false, "type": "", "deprecated": false, @@ -10544,7 +10634,7 @@ }, "x-appwrite": { "method": "updateVariable", - "weight": 312, + "weight": 313, "cookies": false, "type": "", "deprecated": false, @@ -10633,7 +10723,7 @@ }, "x-appwrite": { "method": "deleteVariable", - "weight": 313, + "weight": 314, "cookies": false, "type": "", "deprecated": false, @@ -10705,7 +10795,7 @@ }, "x-appwrite": { "method": "query", - "weight": 331, + "weight": 332, "cookies": false, "type": "graphql", "deprecated": false, @@ -10783,7 +10873,7 @@ }, "x-appwrite": { "method": "mutation", - "weight": 330, + "weight": 331, "cookies": false, "type": "graphql", "deprecated": false, @@ -10861,7 +10951,7 @@ }, "x-appwrite": { "method": "get", - "weight": 125, + "weight": 126, "cookies": false, "type": "", "deprecated": false, @@ -10915,7 +11005,7 @@ }, "x-appwrite": { "method": "getAntivirus", - "weight": 147, + "weight": 148, "cookies": false, "type": "", "deprecated": false, @@ -10969,7 +11059,7 @@ }, "x-appwrite": { "method": "getCache", - "weight": 128, + "weight": 129, "cookies": false, "type": "", "deprecated": false, @@ -11023,7 +11113,7 @@ }, "x-appwrite": { "method": "getCertificate", - "weight": 134, + "weight": 135, "cookies": false, "type": "", "deprecated": false, @@ -11086,7 +11176,7 @@ }, "x-appwrite": { "method": "getDB", - "weight": 127, + "weight": 128, "cookies": false, "type": "", "deprecated": false, @@ -11140,7 +11230,7 @@ }, "x-appwrite": { "method": "getPubSub", - "weight": 130, + "weight": 131, "cookies": false, "type": "", "deprecated": false, @@ -11194,7 +11284,7 @@ }, "x-appwrite": { "method": "getQueue", - "weight": 129, + "weight": 130, "cookies": false, "type": "", "deprecated": false, @@ -11248,7 +11338,7 @@ }, "x-appwrite": { "method": "getQueueBuilds", - "weight": 136, + "weight": 137, "cookies": false, "type": "", "deprecated": false, @@ -11313,7 +11403,7 @@ }, "x-appwrite": { "method": "getQueueCertificates", - "weight": 135, + "weight": 136, "cookies": false, "type": "", "deprecated": false, @@ -11378,7 +11468,7 @@ }, "x-appwrite": { "method": "getQueueDatabases", - "weight": 137, + "weight": 138, "cookies": false, "type": "", "deprecated": false, @@ -11452,7 +11542,7 @@ }, "x-appwrite": { "method": "getQueueDeletes", - "weight": 138, + "weight": 139, "cookies": false, "type": "", "deprecated": false, @@ -11517,7 +11607,7 @@ }, "x-appwrite": { "method": "getFailedJobs", - "weight": 148, + "weight": 149, "cookies": false, "type": "", "deprecated": false, @@ -11606,7 +11696,7 @@ }, "x-appwrite": { "method": "getQueueFunctions", - "weight": 142, + "weight": 143, "cookies": false, "type": "", "deprecated": false, @@ -11671,7 +11761,7 @@ }, "x-appwrite": { "method": "getQueueLogs", - "weight": 133, + "weight": 134, "cookies": false, "type": "", "deprecated": false, @@ -11736,7 +11826,7 @@ }, "x-appwrite": { "method": "getQueueMails", - "weight": 139, + "weight": 140, "cookies": false, "type": "", "deprecated": false, @@ -11801,7 +11891,7 @@ }, "x-appwrite": { "method": "getQueueMessaging", - "weight": 140, + "weight": 141, "cookies": false, "type": "", "deprecated": false, @@ -11866,7 +11956,7 @@ }, "x-appwrite": { "method": "getQueueMigrations", - "weight": 141, + "weight": 142, "cookies": false, "type": "", "deprecated": false, @@ -11931,7 +12021,7 @@ }, "x-appwrite": { "method": "getQueueUsage", - "weight": 143, + "weight": 144, "cookies": false, "type": "", "deprecated": false, @@ -11996,7 +12086,7 @@ }, "x-appwrite": { "method": "getQueueUsageDump", - "weight": 144, + "weight": 145, "cookies": false, "type": "", "deprecated": false, @@ -12061,7 +12151,7 @@ }, "x-appwrite": { "method": "getQueueWebhooks", - "weight": 132, + "weight": 133, "cookies": false, "type": "", "deprecated": false, @@ -12126,7 +12216,7 @@ }, "x-appwrite": { "method": "getStorage", - "weight": 146, + "weight": 147, "cookies": false, "type": "", "deprecated": false, @@ -12180,7 +12270,7 @@ }, "x-appwrite": { "method": "getStorageLocal", - "weight": 145, + "weight": 146, "cookies": false, "type": "", "deprecated": false, @@ -12234,7 +12324,7 @@ }, "x-appwrite": { "method": "getTime", - "weight": 131, + "weight": 132, "cookies": false, "type": "", "deprecated": false, @@ -12288,7 +12378,7 @@ }, "x-appwrite": { "method": "get", - "weight": 117, + "weight": 118, "cookies": false, "type": "", "deprecated": false, @@ -12346,7 +12436,7 @@ }, "x-appwrite": { "method": "listCodes", - "weight": 118, + "weight": 119, "cookies": false, "type": "", "deprecated": false, @@ -12404,7 +12494,7 @@ }, "x-appwrite": { "method": "listContinents", - "weight": 122, + "weight": 123, "cookies": false, "type": "", "deprecated": false, @@ -12462,7 +12552,7 @@ }, "x-appwrite": { "method": "listCountries", - "weight": 119, + "weight": 120, "cookies": false, "type": "", "deprecated": false, @@ -12520,7 +12610,7 @@ }, "x-appwrite": { "method": "listCountriesEU", - "weight": 120, + "weight": 121, "cookies": false, "type": "", "deprecated": false, @@ -12578,7 +12668,7 @@ }, "x-appwrite": { "method": "listCountriesPhones", - "weight": 121, + "weight": 122, "cookies": false, "type": "", "deprecated": false, @@ -12636,7 +12726,7 @@ }, "x-appwrite": { "method": "listCurrencies", - "weight": 123, + "weight": 124, "cookies": false, "type": "", "deprecated": false, @@ -12694,7 +12784,7 @@ }, "x-appwrite": { "method": "listLanguages", - "weight": 124, + "weight": 125, "cookies": false, "type": "", "deprecated": false, @@ -12752,7 +12842,7 @@ }, "x-appwrite": { "method": "listMessages", - "weight": 390, + "weight": 391, "cookies": false, "type": "", "deprecated": false, @@ -12830,7 +12920,7 @@ }, "x-appwrite": { "method": "createEmail", - "weight": 387, + "weight": 388, "cookies": false, "type": "", "deprecated": false, @@ -12991,7 +13081,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 394, + "weight": 395, "cookies": false, "type": "", "deprecated": false, @@ -13149,7 +13239,7 @@ }, "x-appwrite": { "method": "createPush", - "weight": 389, + "weight": 390, "cookies": false, "type": "", "deprecated": false, @@ -13325,7 +13415,7 @@ }, "x-appwrite": { "method": "updatePush", - "weight": 396, + "weight": 397, "cookies": false, "type": "", "deprecated": false, @@ -13498,7 +13588,7 @@ }, "x-appwrite": { "method": "createSms", - "weight": 388, + "weight": 389, "cookies": false, "type": "", "deprecated": false, @@ -13619,7 +13709,7 @@ }, "x-appwrite": { "method": "updateSms", - "weight": 395, + "weight": 396, "cookies": false, "type": "", "deprecated": false, @@ -13738,7 +13828,7 @@ }, "x-appwrite": { "method": "getMessage", - "weight": 393, + "weight": 394, "cookies": false, "type": "", "deprecated": false, @@ -13798,7 +13888,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 397, + "weight": 398, "cookies": false, "type": "", "deprecated": false, @@ -13863,7 +13953,7 @@ }, "x-appwrite": { "method": "listMessageLogs", - "weight": 391, + "weight": 392, "cookies": false, "type": "", "deprecated": false, @@ -13940,7 +14030,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 392, + "weight": 393, "cookies": false, "type": "", "deprecated": false, @@ -14017,7 +14107,7 @@ }, "x-appwrite": { "method": "listProviders", - "weight": 362, + "weight": 363, "cookies": false, "type": "", "deprecated": false, @@ -14095,7 +14185,7 @@ }, "x-appwrite": { "method": "createApnsProvider", - "weight": 361, + "weight": 362, "cookies": false, "type": "", "deprecated": false, @@ -14213,7 +14303,7 @@ }, "x-appwrite": { "method": "updateApnsProvider", - "weight": 374, + "weight": 375, "cookies": false, "type": "", "deprecated": false, @@ -14329,7 +14419,7 @@ }, "x-appwrite": { "method": "createFcmProvider", - "weight": 360, + "weight": 361, "cookies": false, "type": "", "deprecated": false, @@ -14423,7 +14513,7 @@ }, "x-appwrite": { "method": "updateFcmProvider", - "weight": 373, + "weight": 374, "cookies": false, "type": "", "deprecated": false, @@ -14515,7 +14605,7 @@ }, "x-appwrite": { "method": "createMailgunProvider", - "weight": 352, + "weight": 353, "cookies": false, "type": "", "deprecated": false, @@ -14645,7 +14735,7 @@ }, "x-appwrite": { "method": "updateMailgunProvider", - "weight": 365, + "weight": 366, "cookies": false, "type": "", "deprecated": false, @@ -14773,7 +14863,7 @@ }, "x-appwrite": { "method": "createMsg91Provider", - "weight": 355, + "weight": 356, "cookies": false, "type": "", "deprecated": false, @@ -14879,7 +14969,7 @@ }, "x-appwrite": { "method": "updateMsg91Provider", - "weight": 368, + "weight": 369, "cookies": false, "type": "", "deprecated": false, @@ -14983,7 +15073,7 @@ }, "x-appwrite": { "method": "createSendgridProvider", - "weight": 353, + "weight": 354, "cookies": false, "type": "", "deprecated": false, @@ -15101,7 +15191,7 @@ }, "x-appwrite": { "method": "updateSendgridProvider", - "weight": 366, + "weight": 367, "cookies": false, "type": "", "deprecated": false, @@ -15217,7 +15307,7 @@ }, "x-appwrite": { "method": "createSmtpProvider", - "weight": 354, + "weight": 355, "cookies": false, "type": "", "deprecated": false, @@ -15379,7 +15469,7 @@ }, "x-appwrite": { "method": "updateSmtpProvider", - "weight": 367, + "weight": 368, "cookies": false, "type": "", "deprecated": false, @@ -15538,7 +15628,7 @@ }, "x-appwrite": { "method": "createTelesignProvider", - "weight": 356, + "weight": 357, "cookies": false, "type": "", "deprecated": false, @@ -15644,7 +15734,7 @@ }, "x-appwrite": { "method": "updateTelesignProvider", - "weight": 369, + "weight": 370, "cookies": false, "type": "", "deprecated": false, @@ -15748,7 +15838,7 @@ }, "x-appwrite": { "method": "createTextmagicProvider", - "weight": 357, + "weight": 358, "cookies": false, "type": "", "deprecated": false, @@ -15854,7 +15944,7 @@ }, "x-appwrite": { "method": "updateTextmagicProvider", - "weight": 370, + "weight": 371, "cookies": false, "type": "", "deprecated": false, @@ -15958,7 +16048,7 @@ }, "x-appwrite": { "method": "createTwilioProvider", - "weight": 358, + "weight": 359, "cookies": false, "type": "", "deprecated": false, @@ -16064,7 +16154,7 @@ }, "x-appwrite": { "method": "updateTwilioProvider", - "weight": 371, + "weight": 372, "cookies": false, "type": "", "deprecated": false, @@ -16168,7 +16258,7 @@ }, "x-appwrite": { "method": "createVonageProvider", - "weight": 359, + "weight": 360, "cookies": false, "type": "", "deprecated": false, @@ -16274,7 +16364,7 @@ }, "x-appwrite": { "method": "updateVonageProvider", - "weight": 372, + "weight": 373, "cookies": false, "type": "", "deprecated": false, @@ -16378,7 +16468,7 @@ }, "x-appwrite": { "method": "getProvider", - "weight": 364, + "weight": 365, "cookies": false, "type": "", "deprecated": false, @@ -16438,7 +16528,7 @@ }, "x-appwrite": { "method": "deleteProvider", - "weight": 375, + "weight": 376, "cookies": false, "type": "", "deprecated": false, @@ -16503,7 +16593,7 @@ }, "x-appwrite": { "method": "listProviderLogs", - "weight": 363, + "weight": 364, "cookies": false, "type": "", "deprecated": false, @@ -16580,7 +16670,7 @@ }, "x-appwrite": { "method": "listSubscriberLogs", - "weight": 384, + "weight": 385, "cookies": false, "type": "", "deprecated": false, @@ -16657,7 +16747,7 @@ }, "x-appwrite": { "method": "listTopics", - "weight": 377, + "weight": 378, "cookies": false, "type": "", "deprecated": false, @@ -16733,7 +16823,7 @@ }, "x-appwrite": { "method": "createTopic", - "weight": 376, + "weight": 377, "cookies": false, "type": "", "deprecated": false, @@ -16826,7 +16916,7 @@ }, "x-appwrite": { "method": "getTopic", - "weight": 379, + "weight": 380, "cookies": false, "type": "", "deprecated": false, @@ -16889,7 +16979,7 @@ }, "x-appwrite": { "method": "updateTopic", - "weight": 380, + "weight": 381, "cookies": false, "type": "", "deprecated": false, @@ -16973,7 +17063,7 @@ }, "x-appwrite": { "method": "deleteTopic", - "weight": 381, + "weight": 382, "cookies": false, "type": "", "deprecated": false, @@ -17038,7 +17128,7 @@ }, "x-appwrite": { "method": "listTopicLogs", - "weight": 378, + "weight": 379, "cookies": false, "type": "", "deprecated": false, @@ -17115,7 +17205,7 @@ }, "x-appwrite": { "method": "listSubscribers", - "weight": 383, + "weight": 384, "cookies": false, "type": "", "deprecated": false, @@ -17199,7 +17289,7 @@ }, "x-appwrite": { "method": "createSubscriber", - "weight": 382, + "weight": 383, "cookies": false, "type": "", "deprecated": false, @@ -17293,7 +17383,7 @@ }, "x-appwrite": { "method": "getSubscriber", - "weight": 385, + "weight": 386, "cookies": false, "type": "", "deprecated": false, @@ -17361,7 +17451,7 @@ }, "x-appwrite": { "method": "deleteSubscriber", - "weight": 386, + "weight": 387, "cookies": false, "type": "", "deprecated": false, @@ -17438,7 +17528,7 @@ }, "x-appwrite": { "method": "listBuckets", - "weight": 203, + "weight": 204, "cookies": false, "type": "", "deprecated": false, @@ -17513,7 +17603,7 @@ }, "x-appwrite": { "method": "createBucket", - "weight": 202, + "weight": 203, "cookies": false, "type": "", "deprecated": false, @@ -17655,7 +17745,7 @@ }, "x-appwrite": { "method": "getBucket", - "weight": 204, + "weight": 205, "cookies": false, "type": "", "deprecated": false, @@ -17717,7 +17807,7 @@ }, "x-appwrite": { "method": "updateBucket", - "weight": 205, + "weight": 206, "cookies": false, "type": "", "deprecated": false, @@ -17853,7 +17943,7 @@ }, "x-appwrite": { "method": "deleteBucket", - "weight": 206, + "weight": 207, "cookies": false, "type": "", "deprecated": false, @@ -17917,7 +18007,7 @@ }, "x-appwrite": { "method": "listFiles", - "weight": 208, + "weight": 209, "cookies": false, "type": "", "deprecated": false, @@ -18004,7 +18094,7 @@ }, "x-appwrite": { "method": "createFile", - "weight": 207, + "weight": 208, "cookies": false, "type": "upload", "deprecated": false, @@ -18100,7 +18190,7 @@ }, "x-appwrite": { "method": "getFile", - "weight": 209, + "weight": 210, "cookies": false, "type": "", "deprecated": false, @@ -18174,7 +18264,7 @@ }, "x-appwrite": { "method": "updateFile", - "weight": 214, + "weight": 215, "cookies": false, "type": "", "deprecated": false, @@ -18267,7 +18357,7 @@ }, "x-appwrite": { "method": "deleteFile", - "weight": 215, + "weight": 216, "cookies": false, "type": "", "deprecated": false, @@ -18343,7 +18433,7 @@ }, "x-appwrite": { "method": "getFileDownload", - "weight": 211, + "weight": 212, "cookies": false, "type": "location", "deprecated": false, @@ -18419,7 +18509,7 @@ }, "x-appwrite": { "method": "getFilePreview", - "weight": 210, + "weight": 211, "cookies": false, "type": "location", "deprecated": false, @@ -18622,7 +18712,7 @@ }, "x-appwrite": { "method": "getFileView", - "weight": 212, + "weight": 213, "cookies": false, "type": "location", "deprecated": false, @@ -18698,7 +18788,7 @@ }, "x-appwrite": { "method": "list", - "weight": 219, + "weight": 220, "cookies": false, "type": "", "deprecated": false, @@ -18777,7 +18867,7 @@ }, "x-appwrite": { "method": "create", - "weight": 218, + "weight": 219, "cookies": false, "type": "", "deprecated": false, @@ -18873,7 +18963,7 @@ }, "x-appwrite": { "method": "get", - "weight": 220, + "weight": 221, "cookies": false, "type": "", "deprecated": false, @@ -18939,7 +19029,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 222, + "weight": 223, "cookies": false, "type": "", "deprecated": false, @@ -19018,7 +19108,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 224, + "weight": 225, "cookies": false, "type": "", "deprecated": false, @@ -19086,7 +19176,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 226, + "weight": 227, "cookies": false, "type": "", "deprecated": false, @@ -19173,7 +19263,7 @@ }, "x-appwrite": { "method": "createMembership", - "weight": 225, + "weight": 226, "cookies": false, "type": "", "deprecated": false, @@ -19292,7 +19382,7 @@ }, "x-appwrite": { "method": "getMembership", - "weight": 227, + "weight": 228, "cookies": false, "type": "", "deprecated": false, @@ -19366,7 +19456,7 @@ }, "x-appwrite": { "method": "updateMembership", - "weight": 228, + "weight": 229, "cookies": false, "type": "", "deprecated": false, @@ -19456,7 +19546,7 @@ }, "x-appwrite": { "method": "deleteMembership", - "weight": 230, + "weight": 231, "cookies": false, "type": "", "deprecated": false, @@ -19532,7 +19622,7 @@ }, "x-appwrite": { "method": "updateMembershipStatus", - "weight": 229, + "weight": 230, "cookies": false, "type": "", "deprecated": false, @@ -19631,7 +19721,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 221, + "weight": 222, "cookies": false, "type": "", "deprecated": false, @@ -19695,7 +19785,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 223, + "weight": 224, "cookies": false, "type": "", "deprecated": false, @@ -19779,7 +19869,7 @@ }, "x-appwrite": { "method": "list", - "weight": 241, + "weight": 242, "cookies": false, "type": "", "deprecated": false, @@ -19854,7 +19944,7 @@ }, "x-appwrite": { "method": "create", - "weight": 232, + "weight": 233, "cookies": false, "type": "", "deprecated": false, @@ -19952,7 +20042,7 @@ }, "x-appwrite": { "method": "createArgon2User", - "weight": 235, + "weight": 236, "cookies": false, "type": "", "deprecated": false, @@ -20046,7 +20136,7 @@ }, "x-appwrite": { "method": "createBcryptUser", - "weight": 233, + "weight": 234, "cookies": false, "type": "", "deprecated": false, @@ -20140,7 +20230,7 @@ }, "x-appwrite": { "method": "listIdentities", - "weight": 249, + "weight": 250, "cookies": false, "type": "", "deprecated": false, @@ -20212,7 +20302,7 @@ }, "x-appwrite": { "method": "deleteIdentity", - "weight": 272, + "weight": 273, "cookies": false, "type": "", "deprecated": false, @@ -20276,7 +20366,7 @@ }, "x-appwrite": { "method": "createMD5User", - "weight": 234, + "weight": 235, "cookies": false, "type": "", "deprecated": false, @@ -20370,7 +20460,7 @@ }, "x-appwrite": { "method": "createPHPassUser", - "weight": 237, + "weight": 238, "cookies": false, "type": "", "deprecated": false, @@ -20464,7 +20554,7 @@ }, "x-appwrite": { "method": "createScryptUser", - "weight": 238, + "weight": 239, "cookies": false, "type": "", "deprecated": false, @@ -20593,7 +20683,7 @@ }, "x-appwrite": { "method": "createScryptModifiedUser", - "weight": 239, + "weight": 240, "cookies": false, "type": "", "deprecated": false, @@ -20708,7 +20798,7 @@ }, "x-appwrite": { "method": "createSHAUser", - "weight": 236, + "weight": 237, "cookies": false, "type": "", "deprecated": false, @@ -20823,7 +20913,7 @@ }, "x-appwrite": { "method": "get", - "weight": 242, + "weight": 243, "cookies": false, "type": "", "deprecated": false, @@ -20880,7 +20970,7 @@ }, "x-appwrite": { "method": "delete", - "weight": 270, + "weight": 271, "cookies": false, "type": "", "deprecated": false, @@ -20944,7 +21034,7 @@ }, "x-appwrite": { "method": "updateEmail", - "weight": 255, + "weight": 256, "cookies": false, "type": "", "deprecated": false, @@ -21026,7 +21116,7 @@ }, "x-appwrite": { "method": "createJWT", - "weight": 273, + "weight": 274, "cookies": false, "type": "", "deprecated": false, @@ -21111,7 +21201,7 @@ }, "x-appwrite": { "method": "updateLabels", - "weight": 251, + "weight": 252, "cookies": false, "type": "", "deprecated": false, @@ -21196,7 +21286,7 @@ }, "x-appwrite": { "method": "listLogs", - "weight": 247, + "weight": 248, "cookies": false, "type": "", "deprecated": false, @@ -21272,7 +21362,7 @@ }, "x-appwrite": { "method": "listMemberships", - "weight": 246, + "weight": 247, "cookies": false, "type": "", "deprecated": false, @@ -21336,7 +21426,7 @@ }, "x-appwrite": { "method": "updateMfa", - "weight": 260, + "weight": 261, "cookies": false, "type": "", "deprecated": false, @@ -21418,7 +21508,7 @@ }, "x-appwrite": { "method": "deleteMfaAuthenticator", - "weight": 265, + "weight": 266, "cookies": false, "type": "", "deprecated": false, @@ -21495,7 +21585,7 @@ }, "x-appwrite": { "method": "listMfaFactors", - "weight": 261, + "weight": 262, "cookies": false, "type": "", "deprecated": false, @@ -21559,7 +21649,7 @@ }, "x-appwrite": { "method": "getMfaRecoveryCodes", - "weight": 262, + "weight": 263, "cookies": false, "type": "", "deprecated": false, @@ -21621,7 +21711,7 @@ }, "x-appwrite": { "method": "updateMfaRecoveryCodes", - "weight": 264, + "weight": 265, "cookies": false, "type": "", "deprecated": false, @@ -21683,7 +21773,7 @@ }, "x-appwrite": { "method": "createMfaRecoveryCodes", - "weight": 263, + "weight": 264, "cookies": false, "type": "", "deprecated": false, @@ -21747,7 +21837,7 @@ }, "x-appwrite": { "method": "updateName", - "weight": 253, + "weight": 254, "cookies": false, "type": "", "deprecated": false, @@ -21829,7 +21919,7 @@ }, "x-appwrite": { "method": "updatePassword", - "weight": 254, + "weight": 255, "cookies": false, "type": "", "deprecated": false, @@ -21911,7 +22001,7 @@ }, "x-appwrite": { "method": "updatePhone", - "weight": 256, + "weight": 257, "cookies": false, "type": "", "deprecated": false, @@ -21993,7 +22083,7 @@ }, "x-appwrite": { "method": "getPrefs", - "weight": 243, + "weight": 244, "cookies": false, "type": "", "deprecated": false, @@ -22055,7 +22145,7 @@ }, "x-appwrite": { "method": "updatePrefs", - "weight": 258, + "weight": 259, "cookies": false, "type": "", "deprecated": false, @@ -22137,7 +22227,7 @@ }, "x-appwrite": { "method": "listSessions", - "weight": 245, + "weight": 246, "cookies": false, "type": "", "deprecated": false, @@ -22199,7 +22289,7 @@ }, "x-appwrite": { "method": "createSession", - "weight": 266, + "weight": 267, "cookies": false, "type": "", "deprecated": false, @@ -22256,7 +22346,7 @@ }, "x-appwrite": { "method": "deleteSessions", - "weight": 269, + "weight": 270, "cookies": false, "type": "", "deprecated": false, @@ -22315,7 +22405,7 @@ }, "x-appwrite": { "method": "deleteSession", - "weight": 268, + "weight": 269, "cookies": false, "type": "", "deprecated": false, @@ -22387,7 +22477,7 @@ }, "x-appwrite": { "method": "updateStatus", - "weight": 250, + "weight": 251, "cookies": false, "type": "", "deprecated": false, @@ -22469,7 +22559,7 @@ }, "x-appwrite": { "method": "listTargets", - "weight": 248, + "weight": 249, "cookies": false, "type": "", "deprecated": false, @@ -22544,7 +22634,7 @@ }, "x-appwrite": { "method": "createTarget", - "weight": 240, + "weight": 241, "cookies": false, "type": "", "deprecated": false, @@ -22660,7 +22750,7 @@ }, "x-appwrite": { "method": "getTarget", - "weight": 244, + "weight": 245, "cookies": false, "type": "", "deprecated": false, @@ -22731,7 +22821,7 @@ }, "x-appwrite": { "method": "updateTarget", - "weight": 259, + "weight": 260, "cookies": false, "type": "", "deprecated": false, @@ -22826,7 +22916,7 @@ }, "x-appwrite": { "method": "deleteTarget", - "weight": 271, + "weight": 272, "cookies": false, "type": "", "deprecated": false, @@ -22899,7 +22989,7 @@ }, "x-appwrite": { "method": "createToken", - "weight": 267, + "weight": 268, "cookies": false, "type": "", "deprecated": false, @@ -22984,7 +23074,7 @@ }, "x-appwrite": { "method": "updateEmailVerification", - "weight": 257, + "weight": 258, "cookies": false, "type": "", "deprecated": false, @@ -23066,7 +23156,7 @@ }, "x-appwrite": { "method": "updatePhoneVerification", - "weight": 252, + "weight": 253, "cookies": false, "type": "", "deprecated": false, diff --git a/app/controllers/api/databases.php b/app/controllers/api/databases.php index 0114fd343c..59b5899c4c 100644 --- a/app/controllers/api/databases.php +++ b/app/controllers/api/databases.php @@ -46,6 +46,7 @@ use Utopia\Database\Validator\Query\Offset; use Utopia\Database\Validator\Structure; use Utopia\Database\Validator\UID; use Utopia\Locale\Locale; +use Utopia\System\System; use Utopia\Validator\ArrayList; use Utopia\Validator\Boolean; use Utopia\Validator\FloatValidator; @@ -3808,6 +3809,115 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu $response->noContent(); }); +App::delete('/v1/databases/:databaseId/collections/:collectionId/documents') + ->desc('Delete documents') + ->groups(['api', 'database']) + ->label('scope', 'documents.write') + ->label('resourceType', RESOURCE_TYPE_DATABASES) + ->label('audits.event', 'documents.delete') + ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') + ->label('abuse-key', 'ip:{ip},method:{method},url:{url},userId:{userId}') + ->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT) + ->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT) + ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) + ->label('sdk.namespace', 'databases') + ->label('sdk.method', 'deleteDocuments') + ->label('sdk.description', '/docs/references/databases/delete-documents.md') + ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.model', Response::MODEL_DOCUMENT_LIST) + ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) + ->label('sdk.offline.model', '/databases/{databaseId}/collections/{collectionId}/documents') + ->label('sdk.offline.key', '{documentId}') + ->param('databaseId', '', new UID(), 'Database ID.') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).') + ->param('queries', [], new ArrayList(new Text(APP_LIMIT_ARRAY_ELEMENT_SIZE), APP_LIMIT_ARRAY_PARAMS_SIZE), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long.', true) + ->inject('requestTimestamp') + ->inject('response') + ->inject('dbForProject') + ->inject('queueForUsage') + ->inject('project') + ->action(function (string $databaseId, string $collectionId, array $queries, ?\DateTime $requestTimestamp, Response $response, Database $dbForProject, Usage $queueForUsage, Document $project) { + $database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId)); + + $isAPIKey = Auth::isAppUser(Authorization::getRoles()); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + + if ($database->isEmpty() || (!$database->getAttribute('enabled', false) && !$isAPIKey && !$isPrivilegedUser)) { + throw new Exception(Exception::DATABASE_NOT_FOUND); + } + + $collection = Authorization::skip(fn () => $dbForProject->getDocument('database_' . $database->getInternalId(), $collectionId)); + + if ($collection->isEmpty() || (!$collection->getAttribute('enabled', false) && !$isAPIKey && !$isPrivilegedUser)) { + throw new Exception(Exception::COLLECTION_NOT_FOUND); + } + + $queries = Query::parseQueries($queries); + + $documents = $dbForProject->withRequestTimestamp($requestTimestamp, function () use ($dbForProject, $database, $collection, $queries) { + return $dbForProject->deleteDocuments( + 'database_' . $database->getInternalId() . '_collection_' . $collection->getInternalId(), + $queries, + intval(System::getEnv('_APP_DATABASE_BATCH_SIZE', 10_000)) + ); + }); + + // DB Storage Calculation + $queueForUsage + ->addMetric(str_replace(['{databaseInternalId}', '{collectionInternalId}'], [$database->getInternalId(), $collection->getInternalId()], METRIC_DATABASE_ID_COLLECTION_ID_STORAGE), 1); // per collection + + $processDocument = (function (Document $collection, Document &$document) use (&$processDocument, $dbForProject, $database): bool { + if ($document->isEmpty()) { + return false; + } + + $document->setAttribute('$databaseId', $database->getId()); + $document->setAttribute('$collectionId', $collection->getId()); + + $relationships = \array_filter( + $collection->getAttribute('attributes', []), + fn ($attribute) => $attribute->getAttribute('type') === Database::VAR_RELATIONSHIP + ); + + foreach ($relationships as $relationship) { + $related = $document->getAttribute($relationship->getAttribute('key')); + + if (empty($related)) { + continue; + } + if (!\is_array($related)) { + $relations = [$related]; + } else { + $relations = $related; + } + + $relatedCollectionId = $relationship->getAttribute('relatedCollection'); + $relatedCollection = Authorization::skip(fn () => $dbForProject->getDocument('database_' . $database->getInternalId(), $relatedCollectionId)); + + foreach ($relations as $index => $doc) { + if ($doc instanceof Document) { + if (!$processDocument($relatedCollection, $doc)) { + unset($relations[$index]); + } + } + } + + if (\is_array($related)) { + $document->setAttribute($relationship->getAttribute('key'), \array_values($relations)); + } elseif (empty($relations)) { + $document->setAttribute($relationship->getAttribute('key'), null); + } + } + + return true; + }); + + $response->dynamic(new Document([ + 'total' => \count($documents), + 'documents' => $documents, + ]), Response::MODEL_DOCUMENT_LIST); + }); + App::get('/v1/databases/usage') ->desc('Get databases usage stats') ->groups(['api', 'database', 'usage']) diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index f5921bf6e8..c5771fb921 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -90,10 +90,17 @@ $eventDatabaseListener = function (Document $document, Response $response, Event $usageDatabaseListener = function (string $event, Document $document, Usage $queueForUsage) { $value = 1; + if ($event === Database::EVENT_DOCUMENT_DELETE) { $value = -1; } + if ($event === Database::EVENT_DOCUMENTS_DELETE) { + $value = -1 * $document->getAttribute('modified', 0); + } elseif ($event === Database::EVENT_DOCUMENTS_CREATE) { + $value = $document->getAttribute('modified', 0); + } + switch (true) { case $document->getCollection() === 'teams': $queueForUsage diff --git a/composer.json b/composer.json index a04ca51d43..0a81d5d70c 100644 --- a/composer.json +++ b/composer.json @@ -51,7 +51,7 @@ "utopia-php/cache": "0.11.*", "utopia-php/cli": "0.15.*", "utopia-php/config": "0.2.*", - "utopia-php/database": "0.53.16", + "utopia-php/database": "0.53.27", "utopia-php/domains": "0.5.*", "utopia-php/dsn": "0.2.1", "utopia-php/framework": "0.33.*", diff --git a/composer.lock b/composer.lock index 691a7e740e..be7dd88f82 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": "b358198535c1867eabed7c0f99135a57", + "content-hash": "0b299e8aaf279f410c6d81c1ad3a5031", "packages": [ { "name": "adhocore/jwt", @@ -157,16 +157,16 @@ }, { "name": "appwrite/php-runtimes", - "version": "0.16.4", + "version": "0.16.5", "source": { "type": "git", "url": "https://github.com/appwrite/runtimes.git", - "reference": "7e4741337b9373f77210396e68eca539018cabd1" + "reference": "1e430646fdf847a7caf3c611dcf3d6d5a28c3fd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/runtimes/zipball/7e4741337b9373f77210396e68eca539018cabd1", - "reference": "7e4741337b9373f77210396e68eca539018cabd1", + "url": "https://api.github.com/repos/appwrite/runtimes/zipball/1e430646fdf847a7caf3c611dcf3d6d5a28c3fd9", + "reference": "1e430646fdf847a7caf3c611dcf3d6d5a28c3fd9", "shasum": "" }, "require": { @@ -206,9 +206,9 @@ ], "support": { "issues": "https://github.com/appwrite/runtimes/issues", - "source": "https://github.com/appwrite/runtimes/tree/0.16.4" + "source": "https://github.com/appwrite/runtimes/tree/0.16.5" }, - "time": "2024-10-26T10:39:59+00:00" + "time": "2024-11-25T15:17:06+00:00" }, { "name": "beberlei/assert", @@ -277,6 +277,66 @@ }, "time": "2024-07-15T13:18:35+00:00" }, + { + "name": "brick/math", + "version": "0.12.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.12.1" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-11-29T23:19:16+00:00" + }, { "name": "chillerlan/php-qrcode", "version": "4.3.4", @@ -422,6 +482,87 @@ ], "time": "2024-07-17T01:04:28+00:00" }, + { + "name": "composer/semver", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-09-19T14:15:21+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v3.3.2", @@ -567,29 +708,73 @@ "time": "2024-05-03T06:31:11+00:00" }, { - "name": "jean85/pretty-package-versions", - "version": "2.0.6", + "name": "google/protobuf", + "version": "v4.29.0", "source": { "type": "git", - "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" + "url": "https://github.com/protocolbuffers/protobuf-php.git", + "reference": "0ef6b2eb74b782f3f9023276c324d22e440f7587" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", - "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/0ef6b2eb74b782f3f9023276c324d22e440f7587", + "reference": "0ef6b2eb74b782f3f9023276c324d22e440f7587", "shasum": "" }, "require": { - "composer-runtime-api": "^2.0.0", - "php": "^7.1|^8.0" + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": ">=5.0.0" + }, + "suggest": { + "ext-bcmath": "Need to support JSON deserialization" + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Protobuf\\": "src/Google/Protobuf", + "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "proto library for PHP", + "homepage": "https://developers.google.com/protocol-buffers/", + "keywords": [ + "proto" + ], + "support": { + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.29.0" + }, + "time": "2024-11-27T18:37:40+00:00" + }, + { + "name": "jean85/pretty-package-versions", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.5|^8.5|^9.4", - "vimeo/psalm": "^4.3" + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "vimeo/psalm": "^4.3 || ^5.0" }, "type": "library", "extra": { @@ -621,9 +806,9 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0" }, - "time": "2024-03-08T09:58:59+00:00" + "time": "2024-11-18T16:19:46+00:00" }, { "name": "league/csv", @@ -906,6 +1091,553 @@ }, "time": "2019-09-10T13:16:29+00:00" }, + { + "name": "nyholm/psr7", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7.git", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0", + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "php-http/message-factory": "^1.0", + "php-http/psr7-integration-tests": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "symfony/error-handler": "^4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "https://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7/issues", + "source": "https://github.com/Nyholm/psr7/tree/1.8.2" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-09-09T07:06:30+00:00" + }, + { + "name": "nyholm/psr7-server", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7-server.git", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/4335801d851f554ca43fa6e7d2602141538854dc", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "nyholm/nsa": "^1.1", + "nyholm/psr7": "^1.3", + "phpunit/phpunit": "^7.0 || ^8.5 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Nyholm\\Psr7Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "Helper classes to handle PSR-7 server requests", + "homepage": "http://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7-server/issues", + "source": "https://github.com/Nyholm/psr7-server/tree/1.1.0" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2023-11-08T09:30:43+00:00" + }, + { + "name": "open-telemetry/api", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/api.git", + "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/542064815d38a6df55af7957cd6f1d7d967c99c6", + "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6", + "shasum": "" + }, + "require": { + "open-telemetry/context": "^1.0", + "php": "^8.1", + "psr/log": "^1.1|^2.0|^3.0", + "symfony/polyfill-php82": "^1.26" + }, + "conflict": { + "open-telemetry/sdk": "<=1.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.x-dev" + }, + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] + } + }, + "autoload": { + "files": [ + "Trace/functions.php" + ], + "psr-4": { + "OpenTelemetry\\API\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "API for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "api", + "apm", + "logging", + "opentelemetry", + "otel", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-10-15T22:42:37+00:00" + }, + { + "name": "open-telemetry/context", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/context.git", + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/0cba875ea1953435f78aec7f1d75afa87bdbf7f3", + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3", + "shasum": "" + }, + "require": { + "php": "^8.1", + "symfony/polyfill-php82": "^1.26" + }, + "suggest": { + "ext-ffi": "To allow context switching in Fibers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "fiber/initialize_fiber_handler.php" + ], + "psr-4": { + "OpenTelemetry\\Context\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "Context implementation for OpenTelemetry PHP.", + "keywords": [ + "Context", + "opentelemetry", + "otel" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-08-21T00:29:20+00:00" + }, + { + "name": "open-telemetry/exporter-otlp", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/exporter-otlp.git", + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/9b6de12204f25f8ab9540b46d6e7b5151897ce18", + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18", + "shasum": "" + }, + "require": { + "open-telemetry/api": "^1.0", + "open-telemetry/gen-otlp-protobuf": "^1.1", + "open-telemetry/sdk": "^1.0", + "php": "^8.1", + "php-http/discovery": "^1.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "files": [ + "_register.php" + ], + "psr-4": { + "OpenTelemetry\\Contrib\\Otlp\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "OTLP exporter for OpenTelemetry.", + "keywords": [ + "Metrics", + "exporter", + "gRPC", + "http", + "opentelemetry", + "otel", + "otlp", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-04-30T18:28:30+00:00" + }, + { + "name": "open-telemetry/gen-otlp-protobuf", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git", + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/66c3b98e998a726691c92e6405a82e6e7b8b169d", + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d", + "shasum": "" + }, + "require": { + "google/protobuf": "^3.22 || ^4.0", + "php": "^8.0" + }, + "suggest": { + "ext-protobuf": "For better performance, when dealing with the protobuf format" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opentelemetry\\Proto\\": "Opentelemetry/Proto/", + "GPBMetadata\\Opentelemetry\\": "GPBMetadata/Opentelemetry/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "PHP protobuf files for communication with OpenTelemetry OTLP collectors/servers.", + "keywords": [ + "Metrics", + "apm", + "gRPC", + "logging", + "opentelemetry", + "otel", + "otlp", + "protobuf", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-10-30T11:49:49+00:00" + }, + { + "name": "open-telemetry/sdk", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/sdk.git", + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/fb0ff8d8279a3776bd604791e2531dd0cc147e8b", + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nyholm/psr7-server": "^1.1", + "open-telemetry/api": "~1.0 || ~1.1", + "open-telemetry/context": "^1.0", + "open-telemetry/sem-conv": "^1.0", + "php": "^8.1", + "php-http/discovery": "^1.14", + "psr/http-client": "^1.0", + "psr/http-client-implementation": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-message": "^1.0.1|^2.0", + "psr/log": "^1.1|^2.0|^3.0", + "ramsey/uuid": "^3.0 || ^4.0", + "symfony/polyfill-mbstring": "^1.23", + "symfony/polyfill-php82": "^1.26", + "tbachert/spi": "^1.0.1" + }, + "suggest": { + "ext-gmp": "To support unlimited number of synchronous metric readers", + "ext-mbstring": "To increase performance of string operations", + "open-telemetry/sdk-configuration": "File-based OpenTelemetry SDK configuration" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + }, + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] + } + }, + "autoload": { + "files": [ + "Common/Util/functions.php", + "Logs/Exporter/_register.php", + "Metrics/MetricExporter/_register.php", + "Propagation/_register.php", + "Trace/SpanExporter/_register.php", + "Common/Dev/Compatibility/_load.php", + "_autoload.php" + ], + "psr-4": { + "OpenTelemetry\\SDK\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "SDK for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "apm", + "logging", + "opentelemetry", + "otel", + "sdk", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-10-18T21:01:35+00:00" + }, + { + "name": "open-telemetry/sem-conv", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/opentelemetry-php/sem-conv.git", + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/1dba705fea74bc0718d04be26090e3697e56f4e6", + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "OpenTelemetry\\SemConv\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "opentelemetry-php contributors", + "homepage": "https://github.com/open-telemetry/opentelemetry-php/graphs/contributors" + } + ], + "description": "Semantic conventions for OpenTelemetry PHP.", + "keywords": [ + "Metrics", + "apm", + "logging", + "opentelemetry", + "otel", + "semantic conventions", + "semconv", + "tracing" + ], + "support": { + "chat": "https://app.slack.com/client/T08PSQ7BQ/C01NFPCV44V", + "docs": "https://opentelemetry.io/docs/php", + "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", + "source": "https://github.com/open-telemetry/opentelemetry-php" + }, + "time": "2024-08-28T09:20:31+00:00" + }, { "name": "paragonie/constant_time_encoding", "version": "v2.7.0", @@ -973,6 +1705,85 @@ }, "time": "2024-05-08T12:18:48+00:00" }, + { + "name": "php-http/discovery", + "version": "1.20.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + }, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.20.0" + }, + "time": "2024-10-02T11:20:13+00:00" + }, { "name": "phpmailer/phpmailer", "version": "v6.9.1", @@ -1054,6 +1865,450 @@ ], "time": "2023-11-25T22:23:28+00:00" }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.6", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.6" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" + }, { "name": "spomky-labs/otphp", "version": "v10.0.3", @@ -1088,9 +2343,9 @@ "type": "library", "extra": { "branch-alias": { - "v10.0": "10.0.x-dev", + "v8.3": "8.3.x-dev", "v9.0": "9.0.x-dev", - "v8.3": "8.3.x-dev" + "v10.0": "10.0.x-dev" } }, "autoload": { @@ -1129,6 +2384,246 @@ }, "time": "2022-03-17T08:00:35+00:00" }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "symfony/http-client", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "955e43336aff03df1e8a8e17daefabb0127a313b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/955e43336aff03df1e8a8e17daefabb0127a313b", + "reference": "955e43336aff03df1e8a8e17daefabb0127a313b", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-client-contracts": "~3.4.3|^3.5.1", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "amphp/amp": "<2.5", + "php-http/discovery": "<1.15", + "symfony/http-foundation": "<6.4" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "3.0" + }, + "require-dev": { + "amphp/http-client": "^4.2.1|^5.0", + "amphp/http-tunnel": "^1.0|^2.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4|^2.0", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/amphp-http-client-meta": "^1.0|^2.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "keywords": [ + "http" + ], + "support": { + "source": "https://github.com/symfony/http-client/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-29T08:22:02+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/c2f3ad828596624ca39ea40f83617ef51ca8bbf9", + "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-25T12:02:18+00:00" + }, { "name": "symfony/polyfill-mbstring", "version": "v1.31.0", @@ -1289,6 +2784,217 @@ ], "time": "2024-09-09T11:45:10+00:00" }, + { + "name": "symfony/polyfill-php82", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php82.git", + "reference": "5d2ed36f7734637dacc025f179698031951b1692" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/5d2ed36f7734637dacc025f179698031951b1692", + "reference": "5d2ed36f7734637dacc025f179698031951b1692", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php82\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php82/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "tbachert/spi", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/Nevay/spi.git", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nevay/spi/zipball/2ddfaf815dafb45791a61b08170de8d583c16062", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "composer/semver": "^1.0 || ^2.0 || ^3.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "infection/infection": "^0.27.9", + "phpunit/phpunit": "^10.5", + "psalm/phar": "^5.18" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-main": "0.2.x-dev" + }, + "class": "Nevay\\SPI\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Nevay\\SPI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Service provider loading facility", + "keywords": [ + "service provider" + ], + "support": { + "issues": "https://github.com/Nevay/spi/issues", + "source": "https://github.com/Nevay/spi/tree/v1.0.2" + }, + "time": "2024-10-04T16:36:12+00:00" + }, { "name": "thecodingmachine/safe", "version": "v2.5.0", @@ -1770,16 +3476,16 @@ }, { "name": "utopia-php/database", - "version": "0.53.16", + "version": "0.53.27", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "6661edffeef05b59e16d102b989a72f7f78cf7de" + "reference": "d3a8cae6e743a6a1a5719b860762a03aabce678a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/6661edffeef05b59e16d102b989a72f7f78cf7de", - "reference": "6661edffeef05b59e16d102b989a72f7f78cf7de", + "url": "https://api.github.com/repos/utopia-php/database/zipball/d3a8cae6e743a6a1a5719b860762a03aabce678a", + "reference": "d3a8cae6e743a6a1a5719b860762a03aabce678a", "shasum": "" }, "require": { @@ -1820,9 +3526,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/0.53.16" + "source": "https://github.com/utopia-php/database/tree/0.53.27" }, - "time": "2024-11-06T03:07:16+00:00" + "time": "2024-12-02T08:53:55+00:00" }, { "name": "utopia-php/domains", @@ -1972,21 +3678,22 @@ }, { "name": "utopia-php/framework", - "version": "0.33.11", + "version": "0.33.14", "source": { "type": "git", "url": "https://github.com/utopia-php/http.git", - "reference": "354ff0d23bfc6e82bea0fe8e89e115cff1af8466" + "reference": "45a5a2db3602fa054096f378482c7da9936f5850" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/http/zipball/354ff0d23bfc6e82bea0fe8e89e115cff1af8466", - "reference": "354ff0d23bfc6e82bea0fe8e89e115cff1af8466", + "url": "https://api.github.com/repos/utopia-php/http/zipball/45a5a2db3602fa054096f378482c7da9936f5850", + "reference": "45a5a2db3602fa054096f378482c7da9936f5850", "shasum": "" }, "require": { - "php": ">=8.0", - "utopia-php/compression": "0.1.*" + "php": ">=8.1", + "utopia-php/compression": "0.1.*", + "utopia-php/telemetry": "0.1.*" }, "require-dev": { "laravel/pint": "^1.2", @@ -2012,9 +3719,9 @@ ], "support": { "issues": "https://github.com/utopia-php/http/issues", - "source": "https://github.com/utopia-php/http/tree/0.33.11" + "source": "https://github.com/utopia-php/http/tree/0.33.14" }, - "time": "2024-11-08T18:47:43+00:00" + "time": "2024-11-20T12:39:10+00:00" }, { "name": "utopia-php/image", @@ -2222,16 +3929,16 @@ }, { "name": "utopia-php/migration", - "version": "0.6.11", + "version": "0.6.13", "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "4d167914d3f7fa1fe816b2b2c6f221e70166bfd7" + "reference": "68d9b0a9477755afcda607e7e8109785cae17a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/4d167914d3f7fa1fe816b2b2c6f221e70166bfd7", - "reference": "4d167914d3f7fa1fe816b2b2c6f221e70166bfd7", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/68d9b0a9477755afcda607e7e8109785cae17a13", + "reference": "68d9b0a9477755afcda607e7e8109785cae17a13", "shasum": "" }, "require": { @@ -2272,9 +3979,9 @@ ], "support": { "issues": "https://github.com/utopia-php/migration/issues", - "source": "https://github.com/utopia-php/migration/tree/0.6.11" + "source": "https://github.com/utopia-php/migration/tree/0.6.13" }, - "time": "2024-10-31T06:19:57+00:00" + "time": "2024-11-26T13:57:53+00:00" }, { "name": "utopia-php/mongo", @@ -2542,22 +4249,23 @@ }, { "name": "utopia-php/queue", - "version": "0.7.1", + "version": "0.7.3", "source": { "type": "git", "url": "https://github.com/utopia-php/queue.git", - "reference": "94c240d9f6383829807ce7b2d737f04b159fd3e8" + "reference": "16074a98ee7d6212bc1228de200e13db470c098a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/queue/zipball/94c240d9f6383829807ce7b2d737f04b159fd3e8", - "reference": "94c240d9f6383829807ce7b2d737f04b159fd3e8", + "url": "https://api.github.com/repos/utopia-php/queue/zipball/16074a98ee7d6212bc1228de200e13db470c098a", + "reference": "16074a98ee7d6212bc1228de200e13db470c098a", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.1", "utopia-php/cli": "0.15.*", - "utopia-php/framework": "0.*.*" + "utopia-php/framework": "0.*.*", + "utopia-php/telemetry": "0.1.*" }, "require-dev": { "laravel/pint": "^0.2.3", @@ -2597,9 +4305,9 @@ ], "support": { "issues": "https://github.com/utopia-php/queue/issues", - "source": "https://github.com/utopia-php/queue/tree/0.7.1" + "source": "https://github.com/utopia-php/queue/tree/0.7.3" }, - "time": "2024-11-05T17:00:38+00:00" + "time": "2024-11-13T12:47:48+00:00" }, { "name": "utopia-php/registry", @@ -2655,16 +4363,16 @@ }, { "name": "utopia-php/storage", - "version": "0.18.6", + "version": "0.18.7", "source": { "type": "git", "url": "https://github.com/utopia-php/storage.git", - "reference": "893ccf06e183f8ece2aed8dbf14d64d6ba036071" + "reference": "0d9228faa1c202f9e01483e45a8950485f01a288" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/storage/zipball/893ccf06e183f8ece2aed8dbf14d64d6ba036071", - "reference": "893ccf06e183f8ece2aed8dbf14d64d6ba036071", + "url": "https://api.github.com/repos/utopia-php/storage/zipball/0d9228faa1c202f9e01483e45a8950485f01a288", + "reference": "0d9228faa1c202f9e01483e45a8950485f01a288", "shasum": "" }, "require": { @@ -2704,9 +4412,9 @@ ], "support": { "issues": "https://github.com/utopia-php/storage/issues", - "source": "https://github.com/utopia-php/storage/tree/0.18.6" + "source": "https://github.com/utopia-php/storage/tree/0.18.7" }, - "time": "2024-11-06T09:58:50+00:00" + "time": "2024-11-28T11:10:53+00:00" }, { "name": "utopia-php/swoole", @@ -2816,17 +4524,67 @@ "time": "2024-10-09T14:44:01+00:00" }, { - "name": "utopia-php/vcs", - "version": "0.8.3", + "name": "utopia-php/telemetry", + "version": "0.1.0", "source": { "type": "git", - "url": "https://github.com/utopia-php/vcs.git", - "reference": "a032ed0611a8f4467aeaa9484f73223074457337" + "url": "https://github.com/utopia-php/telemetry.git", + "reference": "d35f2f0632f4ee0be63fb7ace6a94a6adda71a80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/vcs/zipball/a032ed0611a8f4467aeaa9484f73223074457337", - "reference": "a032ed0611a8f4467aeaa9484f73223074457337", + "url": "https://api.github.com/repos/utopia-php/telemetry/zipball/d35f2f0632f4ee0be63fb7ace6a94a6adda71a80", + "reference": "d35f2f0632f4ee0be63fb7ace6a94a6adda71a80", + "shasum": "" + }, + "require": { + "ext-opentelemetry": "*", + "ext-protobuf": "*", + "nyholm/psr7": "^1.8", + "open-telemetry/exporter-otlp": "^1.1", + "open-telemetry/sdk": "^1.1", + "php": ">=8.0", + "symfony/http-client": "^7.1" + }, + "require-dev": { + "laravel/pint": "^1.2", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "Utopia\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "keywords": [ + "framework", + "php", + "upf" + ], + "support": { + "issues": "https://github.com/utopia-php/telemetry/issues", + "source": "https://github.com/utopia-php/telemetry/tree/0.1.0" + }, + "time": "2024-11-13T10:29:53+00:00" + }, + { + "name": "utopia-php/vcs", + "version": "0.8.5", + "source": { + "type": "git", + "url": "https://github.com/utopia-php/vcs.git", + "reference": "7622330628d53844a3873ca873338150756bab82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/utopia-php/vcs/zipball/7622330628d53844a3873ca873338150756bab82", + "reference": "7622330628d53844a3873ca873338150756bab82", "shasum": "" }, "require": { @@ -2860,9 +4618,9 @@ ], "support": { "issues": "https://github.com/utopia-php/vcs/issues", - "source": "https://github.com/utopia-php/vcs/tree/0.8.3" + "source": "https://github.com/utopia-php/vcs/tree/0.8.5" }, - "time": "2024-11-05T17:10:09+00:00" + "time": "2024-11-11T18:33:10+00:00" }, { "name": "utopia-php/websocket", @@ -3049,16 +4807,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "0.39.24", + "version": "0.39.25", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "412451c87f6ef17e24e9a5cf41721043d74c60c8" + "reference": "5b5323636a8d75a1c4faaae9728098dd6a6a47d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/412451c87f6ef17e24e9a5cf41721043d74c60c8", - "reference": "412451c87f6ef17e24e9a5cf41721043d74c60c8", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/5b5323636a8d75a1c4faaae9728098dd6a6a47d1", + "reference": "5b5323636a8d75a1c4faaae9728098dd6a6a47d1", "shasum": "" }, "require": { @@ -3066,7 +4824,7 @@ "ext-json": "*", "ext-mbstring": "*", "matthiasmullie/minify": "1.3.*", - "php": ">=8.0", + "php": ">=8.3", "twig/twig": "3.14.*" }, "require-dev": { @@ -3094,9 +4852,9 @@ "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "support": { "issues": "https://github.com/appwrite/sdk-generator/issues", - "source": "https://github.com/appwrite/sdk-generator/tree/0.39.24" + "source": "https://github.com/appwrite/sdk-generator/tree/0.39.25" }, - "time": "2024-10-09T19:13:27+00:00" + "time": "2024-11-08T10:16:34+00:00" }, { "name": "doctrine/annotations", @@ -3370,16 +5128,16 @@ }, { "name": "laravel/pint", - "version": "v1.18.1", + "version": "v1.18.3", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9" + "reference": "cef51821608239040ab841ad6e1c6ae502ae3026" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9", - "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9", + "url": "https://api.github.com/repos/laravel/pint/zipball/cef51821608239040ab841ad6e1c6ae502ae3026", + "reference": "cef51821608239040ab841ad6e1c6ae502ae3026", "shasum": "" }, "require": { @@ -3390,13 +5148,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.64.0", - "illuminate/view": "^10.48.20", - "larastan/larastan": "^2.9.8", + "friendsofphp/php-cs-fixer": "^3.65.0", + "illuminate/view": "^10.48.24", + "larastan/larastan": "^2.9.11", "laravel-zero/framework": "^10.4.0", "mockery/mockery": "^1.6.12", - "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.35.1" + "nunomaduro/termwind": "^1.17.0", + "pestphp/pest": "^2.36.0" }, "bin": [ "builds/pint" @@ -3432,7 +5190,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-09-24T17:22:50+00:00" + "time": "2024-11-26T15:34:00+00:00" }, { "name": "matthiasmullie/minify", @@ -4051,16 +5809,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.5.1", + "version": "5.6.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c", + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c", "shasum": "" }, "require": { @@ -4069,7 +5827,7 @@ "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", "webmozart/assert": "^1.9.1" }, "require-dev": { @@ -4109,9 +5867,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0" }, - "time": "2024-11-06T11:58:54+00:00" + "time": "2024-11-12T11:25:25+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -4173,26 +5931,27 @@ }, { "name": "phpspec/prophecy", - "version": "v1.19.0", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" + "reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", - "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/a0165c648cab6a80311c74ffc708a07bb53ecc93", + "reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", - "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.* || 8.4.*", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { + "friendsofphp/php-cs-fixer": "^3.40", "phpspec/phpspec": "^6.0 || ^7.0", "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" @@ -4236,36 +5995,36 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.20.0" }, - "time": "2024-02-29T11:52:51+00:00" + "time": "2024-11-19T13:12:41+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.33.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -4283,9 +6042,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" }, - "time": "2024-10-13T11:25:22+00:00" + "time": "2024-10-13T11:29:49+00:00" }, { "name": "phpunit/php-code-coverage", @@ -4758,109 +6517,6 @@ }, "time": "2021-02-03T23:26:27+00:00" }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/log", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" - }, - "time": "2024-09-11T13:17:53+00:00" - }, { "name": "sebastian/cli-parser", "version": "1.0.2", @@ -5922,16 +7578,16 @@ }, { "name": "symfony/console", - "version": "v7.1.7", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a" + "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3284aafcac338b6e86fd955ee4d794cbe434151a", - "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a", + "url": "https://api.github.com/repos/symfony/console/zipball/23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", + "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", "shasum": "" }, "require": { @@ -5995,7 +7651,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.7" + "source": "https://github.com/symfony/console/tree/v7.2.0" }, "funding": [ { @@ -6011,87 +7667,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:55+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/filesystem", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4" + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4", - "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", "shasum": "" }, "require": { @@ -6128,7 +7717,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.6" + "source": "https://github.com/symfony/filesystem/tree/v7.2.0" }, "funding": [ { @@ -6144,20 +7733,20 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:11:02+00:00" + "time": "2024-10-25T15:15:23+00:00" }, { "name": "symfony/finder", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8" + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2cb89664897be33f78c65d3d2845954c8d7a43b8", - "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8", + "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49", + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49", "shasum": "" }, "require": { @@ -6192,7 +7781,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.6" + "source": "https://github.com/symfony/finder/tree/v7.2.0" }, "funding": [ { @@ -6208,20 +7797,20 @@ "type": "tidelift" } ], - "time": "2024-10-01T08:31:23+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85" + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/85e95eeede2d41cd146146e98c9c81d9214cae85", - "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", "shasum": "" }, "require": { @@ -6259,7 +7848,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.6" + "source": "https://github.com/symfony/options-resolver/tree/v7.2.0" }, "funding": [ { @@ -6275,7 +7864,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-20T11:17:29+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6593,16 +8182,16 @@ }, { "name": "symfony/process", - "version": "v7.1.7", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "9b8a40b7289767aa7117e957573c2a535efe6585" + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/9b8a40b7289767aa7117e957573c2a535efe6585", - "reference": "9b8a40b7289767aa7117e957573c2a535efe6585", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "shasum": "" }, "require": { @@ -6634,7 +8223,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.7" + "source": "https://github.com/symfony/process/tree/v7.2.0" }, "funding": [ { @@ -6650,103 +8239,20 @@ "type": "tidelift" } ], - "time": "2024-11-06T09:25:12+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/string", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626", - "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { @@ -6804,7 +8310,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.6" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -6820,7 +8326,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-13T13:31:26+00:00" }, { "name": "textalk/websocket", @@ -6923,16 +8429,16 @@ }, { "name": "twig/twig", - "version": "v3.14.1", + "version": "v3.14.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "f405356d20fb43603bcadc8b09bfb676cb04a379" + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/f405356d20fb43603bcadc8b09bfb676cb04a379", - "reference": "f405356d20fb43603bcadc8b09bfb676cb04a379", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", "shasum": "" }, "require": { @@ -6986,7 +8492,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.1" + "source": "https://github.com/twigphp/Twig/tree/v3.14.2" }, "funding": [ { @@ -6998,7 +8504,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T18:17:38+00:00" + "time": "2024-11-07T12:36:22+00:00" }, { "name": "webmozart/glob", diff --git a/docs/references/databases/delete-documents.md b/docs/references/databases/delete-documents.md new file mode 100644 index 0000000000..a7b05503de --- /dev/null +++ b/docs/references/databases/delete-documents.md @@ -0,0 +1 @@ +Bulk delete documents using queries, if no queries are passed then all documents are deleted. \ No newline at end of file diff --git a/src/Appwrite/Messaging/Adapter/Realtime.php b/src/Appwrite/Messaging/Adapter/Realtime.php index dceafacf6e..cd3dcc57c0 100644 --- a/src/Appwrite/Messaging/Adapter/Realtime.php +++ b/src/Appwrite/Messaging/Adapter/Realtime.php @@ -3,6 +3,7 @@ namespace Appwrite\Messaging\Adapter; use Appwrite\Messaging\Adapter; +use Utopia\CLI\Console; use Utopia\Database\DateTime; use Utopia\Database\Document; use Utopia\Database\Helpers\ID; @@ -132,6 +133,7 @@ class Realtime extends Adapter public static function send(string $projectId, array $payload, array $events, array $channels, array $roles, array $options = []): void { if (empty($channels) || empty($roles) || empty($projectId)) { + Console::error('Missing required parameters for Realtime event'); return; } diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index 53aa2389ed..6cc2639f51 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -31,7 +31,6 @@ use Appwrite\Utopia\Response\Model\BaseList; use Appwrite\Utopia\Response\Model\Branch; use Appwrite\Utopia\Response\Model\Bucket; use Appwrite\Utopia\Response\Model\Build; -use Appwrite\Utopia\Response\Model\BulkOperation; use Appwrite\Utopia\Response\Model\Collection; use Appwrite\Utopia\Response\Model\ConsoleVariables; use Appwrite\Utopia\Response\Model\Continent; @@ -152,7 +151,6 @@ class Response extends SwooleResponse public const MODEL_INDEX_LIST = 'indexList'; public const MODEL_DOCUMENT = 'document'; public const MODEL_DOCUMENT_LIST = 'documentList'; - public const MODEL_BULK_OPERATION = 'bulkOperation'; // Database Attributes public const MODEL_ATTRIBUTE = 'attribute'; @@ -484,7 +482,6 @@ class Response extends SwooleResponse ->setModel(new Migration()) ->setModel(new MigrationReport()) ->setModel(new MigrationFirebaseProject()) - ->setModel(new BulkOperation()) // Tests (keep last) ->setModel(new Mock()); diff --git a/src/Appwrite/Utopia/Response/Model/BulkOperation.php b/src/Appwrite/Utopia/Response/Model/BulkOperation.php deleted file mode 100644 index 7c6d7f6fe9..0000000000 --- a/src/Appwrite/Utopia/Response/Model/BulkOperation.php +++ /dev/null @@ -1,40 +0,0 @@ -addRule('modified', [ - 'type' => self::TYPE_INTEGER, - 'description' => 'Total number of documents affected by the operation.', - 'default' => 0, - 'example' => 64, - ]); - } - - /** - * Get Name - * - * @return string - */ - public function getName(): string - { - return 'BulkOperation'; - } - - /** - * Get Type - * - * @return string - */ - public function getType(): string - { - return Response::MODEL_BULK_OPERATION; - } -} diff --git a/tests/e2e/Services/Databases/DatabasesBase.php b/tests/e2e/Services/Databases/DatabasesBase.php index d079cb313c..f2a4728eef 100644 --- a/tests/e2e/Services/Databases/DatabasesBase.php +++ b/tests/e2e/Services/Databases/DatabasesBase.php @@ -1514,12 +1514,6 @@ trait DatabasesBase $this->assertEquals(400, $document4['headers']['status-code']); - // Delete document 4 with incomplete path - $this->assertEquals(404, $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId . '/collections/' . $data['moviesId'] . '/documents/', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()))['headers']['status-code']); - return $data; } @@ -4798,5 +4792,658 @@ trait DatabasesBase ]); $this->assertEquals(408, $response['headers']['status-code']); + + $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ])); + } + + public function testBulkDeletes(): void + { + // Create database + $database = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Bulk Deletes' + ]); + + $this->assertNotEmpty($database['body']['$id']); + + $databaseId = $database['body']['$id']; + + $collection = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Bulk Deletes', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $this->assertEquals(201, $collection['headers']['status-code']); + + $data = [ + '$id' => $collection['body']['$id'], + 'databaseId' => $collection['body']['databaseId'] + ]; + + // Await attribute + $numberAttribute = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $data['$id'] . '/attributes/integer', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'number', + 'required' => true, + ]); + + $this->assertEquals(202, $numberAttribute['headers']['status-code']); + + // wait for database worker to create attributes + sleep(2); + + // Create documents + $createBulkDocuments = function ($amount = 10) use ($data) { + for ($x = 0; $x <= $amount; $x++) { + $doc = $this->client->call(Client::METHOD_POST, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => ID::unique(), + 'data' => [ + 'number' => $x, + ], + ]); + + $this->assertEquals(201, $doc['headers']['status-code']); + } + }; + + $createBulkDocuments(); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(11, $documents['body']['total']); + + // TEST: Delete all documents + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(11, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(0, $documents['body']['total']); + + // TEST: Delete documents with query + $createBulkDocuments(); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(11, $documents['body']['total']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'queries' => [ + Query::lessThan('number', 5)->toString(), + ], + ]); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(5, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(6, $documents['body']['total']); + + foreach ($documents['body']['documents'] as $document) { + $this->assertGreaterThanOrEqual(5, $document['number']); + } + + // Cleanup + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(6, $response['body']['total']); + + // SUCCESS: Delete documents with query + $createBulkDocuments(); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(11, $documents['body']['total']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'queries' => [ + Query::lessThan('number', 5)->toString(), + ], + ]); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(5, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(6, $documents['body']['total']); + + // Cleanup + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(6, $response['body']['total']); + + // SUCCESS: Delete Documents with limit query + $createBulkDocuments(); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(11, $documents['body']['total']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'queries' => [ + Query::limit(2)->toString(), + ], + ]); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(2, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(9, $documents['body']['total']); + + // Cleanup + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(9, $response['body']['total']); + + // SUCCESS: Delete Documents with offset query + $createBulkDocuments(); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(11, $documents['body']['total']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'queries' => [ + Query::offset(5)->toString(), + ], + ]); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(6, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(5, $documents['body']['total']); + + $lastDoc = end($documents['body']['documents']); + + $this->assertNotEmpty($lastDoc); + $this->assertEquals(4, $lastDoc['number']); + + // Cleanup + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(5, $response['body']['total']); + + // SUCCESS: Delete over 1k documents + $createBulkDocuments(1000); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(1001, $documents['body']['total']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(1001, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(0, $documents['body']['total']); + + // Delete Database + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + } + + public function testBulkDeletesRelationshipRestrict() + { + $database = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Bulk Deletes' + ]); + + $this->assertNotEmpty($database['body']['$id']); + + $databaseId = $database['body']['$id']; + + $collection1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection1', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection2 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection2', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection1 = $collection1['body']['$id']; + $collection2 = $collection2['body']['$id']; + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/relationship', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'relatedCollectionId' => $collection2, + 'type' => Database::RELATION_ONE_TO_MANY, + 'key' => 'collection2', + 'onDelete' => Database::RELATION_MUTATE_RESTRICT, + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection2 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + sleep(3); + + $document1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders()), [ + 'documentId' => ID::unique(), + 'data' => [ + 'name' => 'Document 1', + 'collection2' => [ + [ + 'name' => 'Document 2', + ], + ], + ], + ]); + + $this->assertEquals(201, $document1['headers']['status-code']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(403, $response['headers']['status-code']); + $this->assertEquals('document_delete_restricted', $response['body']['type']); + } + + public function testBulkDeletesRelationshipNull() + { + $database = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Bulk Deletes' + ]); + + $this->assertNotEmpty($database['body']['$id']); + + $databaseId = $database['body']['$id']; + + $collection1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection1', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection2 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection2', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection1 = $collection1['body']['$id']; + $collection2 = $collection2['body']['$id']; + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/relationship', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'relatedCollectionId' => $collection2, + 'type' => Database::RELATION_ONE_TO_MANY, + 'key' => 'collection2', + 'onDelete' => Database::RELATION_MUTATE_SET_NULL, + 'twoWay' => true, + 'twoWayKey' => 'collection1', + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection2 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + sleep(3); + + $document1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders()), [ + 'documentId' => ID::unique(), + 'data' => [ + 'name' => 'Document 1', + 'collection2' => [ + [ + 'name' => 'Document 2', + ], + ], + ], + ]); + + $this->assertEquals(201, $document1['headers']['status-code']); + + $document2 = $document1['body']['collection2'][0]['$id']; + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + + $document2 = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $collection2 . '/documents/' . $document2, array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(200, $document2['headers']['status-code']); + $this->assertEmpty($document2['body']['collection1']); + } + + public function testBulkDeletesRelationshipCascade() + { + $database = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Bulk Deletes' + ]); + + $this->assertNotEmpty($database['body']['$id']); + + $databaseId = $database['body']['$id']; + + $collection1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection1', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection2 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Collection2', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::any()), + Permission::read(Role::any()), + Permission::delete(Role::any()), + ], + ]); + + $collection1 = $collection1['body']['$id']; + $collection2 = $collection2['body']['$id']; + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/relationship', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'relatedCollectionId' => $collection2, + 'type' => Database::RELATION_ONE_TO_ONE, + 'key' => 'collection2', + 'onDelete' => Database::RELATION_MUTATE_CASCADE + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection2 . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'name', + 'size' => 256, + 'required' => true, + ]); + + sleep(3); + + for ($i = 0; $i < 5; $i++) { + $document1 = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders()), [ + 'documentId' => ID::unique(), + 'data' => [ + 'name' => 'Document 1', + 'collection2' => [ + 'name' => 'Document 2', + ], + ], + ]); + + $this->assertEquals(201, $document1['headers']['status-code']); + } + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + + $collection1docs = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $collection1 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(200, $collection1docs['headers']['status-code']); + $this->assertEquals(0, $collection1docs['body']['total']); + + $collection2docs = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $collection2 . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders())); + + $this->assertEquals(200, $collection2docs['headers']['status-code']); + $this->assertEquals(0, $collection2docs['body']['total']); } } diff --git a/tests/e2e/Services/Databases/DatabasesCustomClientTest.php b/tests/e2e/Services/Databases/DatabasesCustomClientTest.php index 8484996058..86d93779e8 100644 --- a/tests/e2e/Services/Databases/DatabasesCustomClientTest.php +++ b/tests/e2e/Services/Databases/DatabasesCustomClientTest.php @@ -890,4 +890,125 @@ class DatabasesCustomClientTest extends Scope $this->assertEquals(200, $response['headers']['status-code']); } + + public function testBulkDeletesPermissions(): void + { + // Create database + $database = $this->client->call(Client::METHOD_POST, '/databases', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'databaseId' => ID::unique(), + 'name' => 'Bulk Deletes Perms' + ]); + + $this->assertNotEmpty($database['body']['$id']); + + $databaseId = $database['body']['$id']; + + $collection = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => ID::unique(), + 'name' => 'Bulk Deletes Perms', + 'documentSecurity' => false, + 'permissions' => [ + Permission::create(Role::user($this->getUser()['$id'])) + ], + ]); + + $this->assertEquals(201, $collection['headers']['status-code']); + + $data = [ + '$id' => $collection['body']['$id'], + 'databaseId' => $collection['body']['databaseId'] + ]; + + // Await attribute + $numberAttribute = $this->client->call(Client::METHOD_POST, '/databases/' . $databaseId . '/collections/' . $data['$id'] . '/attributes/integer', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'key' => 'number', + 'required' => true, + ]); + + $this->assertEquals(202, $numberAttribute['headers']['status-code']); + + sleep(2); + + // TEST: Delete all documents with invalid collection level permissions + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(401, $response['headers']['status-code']); + + $collection = $this->client->call(Client::METHOD_PUT, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'name' => 'Bulk Deletes Perms', + 'documentSecurity' => true + ]); + + $this->assertEquals(200, $collection['headers']['status-code']); + + // TEST: Make sure we can delete only documents we have permissions for + for ($i = 0; $i < 6; $i++) { + $doc = $this->client->call(Client::METHOD_POST, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => ID::unique(), + 'data' => [ + 'number' => $i, + ], + 'permissions' => [ + Permission::delete(Role::user($this->getUser()['$id'])) + ] + ]); + + $this->assertEquals(201, $doc['headers']['status-code']); + } + + $doc = $this->client->call(Client::METHOD_POST, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'documentId' => ID::unique(), + 'data' => [ + 'number' => 6, + ], + 'permissions' => [ + Permission::delete(Role::user('user2')) + ] + ]); + + $this->assertEquals(201, $doc['headers']['status-code']); + + $response = $this->client->call(Client::METHOD_DELETE, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals(6, $response['body']['total']); + + $documents = $this->client->call(Client::METHOD_GET, '/databases/' . $data['databaseId'] . '/collections/' . $data['$id'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ])); + + $this->assertEquals(200, $documents['headers']['status-code']); + $this->assertEquals(1, $documents['body']['total']); + } } diff --git a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php index 616f309fd2..32ff3f7618 100644 --- a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php @@ -650,6 +650,7 @@ class RealtimeCustomClientTest extends Scope $user = $this->getUser(); $session = $user['session'] ?? ''; $projectId = $this->getProject()['$id']; + $documentIds = []; $client = $this->getWebsocket(['documents', 'collections'], [ 'origin' => 'http://localhost', @@ -739,6 +740,7 @@ class RealtimeCustomClientTest extends Scope $response = json_decode($client->receive(), true); $documentId = $document['body']['$id']; + $documentIds[] = $documentId; $this->assertArrayHasKey('type', $response); $this->assertArrayHasKey('data', $response);