Merge branch '1.8.x' into ser-10-oauth-auto-allow-site-domains

This commit is contained in:
Hemachandar 2025-09-22 11:21:32 +05:30
commit 2f768aa30d
232 changed files with 3719 additions and 2851 deletions

View file

@ -11,7 +11,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
'version' => '19.0.0',
'version' => '20.0.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@ -60,7 +60,7 @@ return [
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '18.0.0',
'version' => '19.0.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
@ -79,7 +79,7 @@ return [
[
'key' => 'apple',
'name' => 'Apple',
'version' => '11.0.0',
'version' => '12.0.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@ -116,7 +116,7 @@ return [
[
'key' => 'android',
'name' => 'Android',
'version' => '9.0.0',
'version' => '10.0.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@ -139,7 +139,7 @@ return [
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.12.0',
'version' => '0.13.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
@ -262,7 +262,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '18.0.0',
'version' => '19.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@ -281,7 +281,7 @@ return [
[
'key' => 'php',
'name' => 'PHP',
'version' => '16.0.0',
'version' => '17.0.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@ -300,7 +300,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '12.0.0',
'version' => '13.0.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@ -319,7 +319,7 @@ return [
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '17.0.0',
'version' => '18.0.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@ -338,7 +338,7 @@ return [
[
'key' => 'go',
'name' => 'Go',
'version' => '0.10.0',
'version' => '0.11.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
@ -357,7 +357,7 @@ return [
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.16.0',
'version' => '0.17.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@ -376,7 +376,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '17.0.0',
'version' => '18.0.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@ -395,7 +395,7 @@ return [
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '10.0.0',
'version' => '11.0.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@ -418,7 +418,7 @@ return [
[
'key' => 'swift',
'name' => 'Swift',
'version' => '11.0.0',
'version' => '12.0.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,

View file

@ -214,7 +214,7 @@ return [
'name' => 'Proxy',
'subtitle' => 'The Proxy Service allows you to configure actions for your domains beyond DNS configuration.',
'description' => '/docs/services/proxy.md',
'controller' => 'api/proxy.php',
'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/proxy',

View file

@ -4830,7 +4830,7 @@
"x-appwrite": {
"method": "listDocuments",
"group": "documents",
"weight": 339,
"weight": 335,
"cookies": false,
"type": "",
"demo": "databases\/list-documents.md",
@ -4919,7 +4919,7 @@
"x-appwrite": {
"method": "createDocument",
"group": "documents",
"weight": 331,
"weight": 327,
"cookies": false,
"type": "",
"demo": "databases\/create-document.md",
@ -5069,7 +5069,7 @@
"x-appwrite": {
"method": "getDocument",
"group": "documents",
"weight": 332,
"weight": 328,
"cookies": false,
"type": "",
"demo": "databases\/get-document.md",
@ -5168,7 +5168,7 @@
"x-appwrite": {
"method": "upsertDocument",
"group": "documents",
"weight": 335,
"weight": 331,
"cookies": false,
"type": "",
"demo": "databases\/upsert-document.md",
@ -5316,7 +5316,7 @@
"x-appwrite": {
"method": "updateDocument",
"group": "documents",
"weight": 333,
"weight": 329,
"cookies": false,
"type": "",
"demo": "databases\/update-document.md",
@ -5419,7 +5419,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
"weight": 337,
"weight": 333,
"cookies": false,
"type": "",
"demo": "databases\/delete-document.md",
@ -5507,7 +5507,7 @@
"x-appwrite": {
"method": "decrementDocumentAttribute",
"group": "documents",
"weight": 342,
"weight": 338,
"cookies": false,
"type": "",
"demo": "databases\/decrement-document-attribute.md",
@ -5626,7 +5626,7 @@
"x-appwrite": {
"method": "incrementDocumentAttribute",
"group": "documents",
"weight": 341,
"weight": 337,
"cookies": false,
"type": "",
"demo": "databases\/increment-document-attribute.md",
@ -5745,7 +5745,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
"weight": 460,
"weight": 456,
"cookies": false,
"type": "",
"demo": "functions\/list-executions.md",
@ -5820,7 +5820,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
"weight": 458,
"weight": 454,
"cookies": false,
"type": "",
"demo": "functions\/create-execution.md",
@ -5936,7 +5936,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
"weight": 459,
"weight": 455,
"cookies": false,
"type": "",
"demo": "functions\/get-execution.md",
@ -6010,7 +6010,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 254,
"weight": 250,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -6062,7 +6062,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 253,
"weight": 249,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -6530,7 +6530,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 296,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -6613,7 +6613,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 300,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -7491,7 +7491,7 @@
"x-appwrite": {
"method": "listRows",
"group": "rows",
"weight": 431,
"weight": 427,
"cookies": false,
"type": "",
"demo": "tablesdb\/list-rows.md",
@ -7579,7 +7579,7 @@
"x-appwrite": {
"method": "createRow",
"group": "rows",
"weight": 423,
"weight": 419,
"cookies": false,
"type": "",
"demo": "tablesdb\/create-row.md",
@ -7687,7 +7687,7 @@
},
"rows": {
"type": "array",
"description": "Array of documents data as JSON objects.",
"description": "Array of rows data as JSON objects.",
"x-example": null,
"items": {
"type": "object"
@ -7724,7 +7724,7 @@
"x-appwrite": {
"method": "getRow",
"group": "rows",
"weight": 424,
"weight": 420,
"cookies": false,
"type": "",
"demo": "tablesdb\/get-row.md",
@ -7822,7 +7822,7 @@
"x-appwrite": {
"method": "upsertRow",
"group": "rows",
"weight": 427,
"weight": 423,
"cookies": false,
"type": "",
"demo": "tablesdb\/upsert-row.md",
@ -7961,7 +7961,7 @@
"x-appwrite": {
"method": "updateRow",
"group": "rows",
"weight": 425,
"weight": 421,
"cookies": false,
"type": "",
"demo": "tablesdb\/update-row.md",
@ -8063,7 +8063,7 @@
"x-appwrite": {
"method": "deleteRow",
"group": "rows",
"weight": 429,
"weight": 425,
"cookies": false,
"type": "",
"demo": "tablesdb\/delete-row.md",
@ -8150,7 +8150,7 @@
"x-appwrite": {
"method": "decrementRowColumn",
"group": "rows",
"weight": 434,
"weight": 430,
"cookies": false,
"type": "",
"demo": "tablesdb\/decrement-row-column.md",
@ -8268,7 +8268,7 @@
"x-appwrite": {
"method": "incrementRowColumn",
"group": "rows",
"weight": 433,
"weight": 429,
"cookies": false,
"type": "",
"demo": "tablesdb\/increment-row-column.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4830,7 +4830,7 @@
"x-appwrite": {
"method": "listDocuments",
"group": "documents",
"weight": 339,
"weight": 335,
"cookies": false,
"type": "",
"demo": "databases\/list-documents.md",
@ -4919,7 +4919,7 @@
"x-appwrite": {
"method": "createDocument",
"group": "documents",
"weight": 331,
"weight": 327,
"cookies": false,
"type": "",
"demo": "databases\/create-document.md",
@ -5069,7 +5069,7 @@
"x-appwrite": {
"method": "getDocument",
"group": "documents",
"weight": 332,
"weight": 328,
"cookies": false,
"type": "",
"demo": "databases\/get-document.md",
@ -5168,7 +5168,7 @@
"x-appwrite": {
"method": "upsertDocument",
"group": "documents",
"weight": 335,
"weight": 331,
"cookies": false,
"type": "",
"demo": "databases\/upsert-document.md",
@ -5316,7 +5316,7 @@
"x-appwrite": {
"method": "updateDocument",
"group": "documents",
"weight": 333,
"weight": 329,
"cookies": false,
"type": "",
"demo": "databases\/update-document.md",
@ -5419,7 +5419,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
"weight": 337,
"weight": 333,
"cookies": false,
"type": "",
"demo": "databases\/delete-document.md",
@ -5507,7 +5507,7 @@
"x-appwrite": {
"method": "decrementDocumentAttribute",
"group": "documents",
"weight": 342,
"weight": 338,
"cookies": false,
"type": "",
"demo": "databases\/decrement-document-attribute.md",
@ -5626,7 +5626,7 @@
"x-appwrite": {
"method": "incrementDocumentAttribute",
"group": "documents",
"weight": 341,
"weight": 337,
"cookies": false,
"type": "",
"demo": "databases\/increment-document-attribute.md",
@ -5745,7 +5745,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
"weight": 460,
"weight": 456,
"cookies": false,
"type": "",
"demo": "functions\/list-executions.md",
@ -5820,7 +5820,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
"weight": 458,
"weight": 454,
"cookies": false,
"type": "",
"demo": "functions\/create-execution.md",
@ -5936,7 +5936,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
"weight": 459,
"weight": 455,
"cookies": false,
"type": "",
"demo": "functions\/get-execution.md",
@ -6010,7 +6010,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 254,
"weight": 250,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -6062,7 +6062,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 253,
"weight": 249,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -6530,7 +6530,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 296,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -6613,7 +6613,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 300,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -7491,7 +7491,7 @@
"x-appwrite": {
"method": "listRows",
"group": "rows",
"weight": 431,
"weight": 427,
"cookies": false,
"type": "",
"demo": "tablesdb\/list-rows.md",
@ -7579,7 +7579,7 @@
"x-appwrite": {
"method": "createRow",
"group": "rows",
"weight": 423,
"weight": 419,
"cookies": false,
"type": "",
"demo": "tablesdb\/create-row.md",
@ -7687,7 +7687,7 @@
},
"rows": {
"type": "array",
"description": "Array of documents data as JSON objects.",
"description": "Array of rows data as JSON objects.",
"x-example": null,
"items": {
"type": "object"
@ -7724,7 +7724,7 @@
"x-appwrite": {
"method": "getRow",
"group": "rows",
"weight": 424,
"weight": 420,
"cookies": false,
"type": "",
"demo": "tablesdb\/get-row.md",
@ -7822,7 +7822,7 @@
"x-appwrite": {
"method": "upsertRow",
"group": "rows",
"weight": 427,
"weight": 423,
"cookies": false,
"type": "",
"demo": "tablesdb\/upsert-row.md",
@ -7961,7 +7961,7 @@
"x-appwrite": {
"method": "updateRow",
"group": "rows",
"weight": 425,
"weight": 421,
"cookies": false,
"type": "",
"demo": "tablesdb\/update-row.md",
@ -8063,7 +8063,7 @@
"x-appwrite": {
"method": "deleteRow",
"group": "rows",
"weight": 429,
"weight": 425,
"cookies": false,
"type": "",
"demo": "tablesdb\/delete-row.md",
@ -8150,7 +8150,7 @@
"x-appwrite": {
"method": "decrementRowColumn",
"group": "rows",
"weight": 434,
"weight": 430,
"cookies": false,
"type": "",
"demo": "tablesdb\/decrement-row-column.md",
@ -8268,7 +8268,7 @@
"x-appwrite": {
"method": "incrementRowColumn",
"group": "rows",
"weight": 433,
"weight": 429,
"cookies": false,
"type": "",
"demo": "tablesdb\/increment-row-column.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4972,7 +4972,7 @@
"x-appwrite": {
"method": "listDocuments",
"group": "documents",
"weight": 339,
"weight": 335,
"cookies": false,
"type": "",
"demo": "databases\/list-documents.md",
@ -5057,7 +5057,7 @@
"x-appwrite": {
"method": "createDocument",
"group": "documents",
"weight": 331,
"weight": 327,
"cookies": false,
"type": "",
"demo": "databases\/create-document.md",
@ -5204,7 +5204,7 @@
"x-appwrite": {
"method": "getDocument",
"group": "documents",
"weight": 332,
"weight": 328,
"cookies": false,
"type": "",
"demo": "databases\/get-document.md",
@ -5297,7 +5297,7 @@
"x-appwrite": {
"method": "upsertDocument",
"group": "documents",
"weight": 335,
"weight": 331,
"cookies": false,
"type": "",
"demo": "databases\/upsert-document.md",
@ -5440,7 +5440,7 @@
"x-appwrite": {
"method": "updateDocument",
"group": "documents",
"weight": 333,
"weight": 329,
"cookies": false,
"type": "",
"demo": "databases\/update-document.md",
@ -5540,7 +5540,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
"weight": 337,
"weight": 333,
"cookies": false,
"type": "",
"demo": "databases\/delete-document.md",
@ -5623,7 +5623,7 @@
"x-appwrite": {
"method": "decrementDocumentAttribute",
"group": "documents",
"weight": 342,
"weight": 338,
"cookies": false,
"type": "",
"demo": "databases\/decrement-document-attribute.md",
@ -5735,7 +5735,7 @@
"x-appwrite": {
"method": "incrementDocumentAttribute",
"group": "documents",
"weight": 341,
"weight": 337,
"cookies": false,
"type": "",
"demo": "databases\/increment-document-attribute.md",
@ -5845,7 +5845,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
"weight": 460,
"weight": 456,
"cookies": false,
"type": "",
"demo": "functions\/list-executions.md",
@ -5918,7 +5918,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
"weight": 458,
"weight": 454,
"cookies": false,
"type": "",
"demo": "functions\/create-execution.md",
@ -6035,7 +6035,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
"weight": 459,
"weight": 455,
"cookies": false,
"type": "",
"demo": "functions\/get-execution.md",
@ -6106,7 +6106,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 254,
"weight": 250,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -6179,7 +6179,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 253,
"weight": 249,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -6660,7 +6660,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 296,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -6744,7 +6744,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 300,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -7573,7 +7573,7 @@
"x-appwrite": {
"method": "listRows",
"group": "rows",
"weight": 431,
"weight": 427,
"cookies": false,
"type": "",
"demo": "tablesdb\/list-rows.md",
@ -7657,7 +7657,7 @@
"x-appwrite": {
"method": "createRow",
"group": "rows",
"weight": 423,
"weight": 419,
"cookies": false,
"type": "",
"demo": "tablesdb\/create-row.md",
@ -7762,7 +7762,7 @@
},
"rows": {
"type": "array",
"description": "Array of documents data as JSON objects.",
"description": "Array of rows data as JSON objects.",
"default": [],
"x-example": null,
"items": {
@ -7799,7 +7799,7 @@
"x-appwrite": {
"method": "getRow",
"group": "rows",
"weight": 424,
"weight": 420,
"cookies": false,
"type": "",
"demo": "tablesdb\/get-row.md",
@ -7891,7 +7891,7 @@
"x-appwrite": {
"method": "upsertRow",
"group": "rows",
"weight": 427,
"weight": 423,
"cookies": false,
"type": "",
"demo": "tablesdb\/upsert-row.md",
@ -8025,7 +8025,7 @@
"x-appwrite": {
"method": "updateRow",
"group": "rows",
"weight": 425,
"weight": 421,
"cookies": false,
"type": "",
"demo": "tablesdb\/update-row.md",
@ -8124,7 +8124,7 @@
"x-appwrite": {
"method": "deleteRow",
"group": "rows",
"weight": 429,
"weight": 425,
"cookies": false,
"type": "",
"demo": "tablesdb\/delete-row.md",
@ -8206,7 +8206,7 @@
"x-appwrite": {
"method": "decrementRowColumn",
"group": "rows",
"weight": 434,
"weight": 430,
"cookies": false,
"type": "",
"demo": "tablesdb\/decrement-row-column.md",
@ -8317,7 +8317,7 @@
"x-appwrite": {
"method": "incrementRowColumn",
"group": "rows",
"weight": 433,
"weight": 429,
"cookies": false,
"type": "",
"demo": "tablesdb\/increment-row-column.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4972,7 +4972,7 @@
"x-appwrite": {
"method": "listDocuments",
"group": "documents",
"weight": 339,
"weight": 335,
"cookies": false,
"type": "",
"demo": "databases\/list-documents.md",
@ -5057,7 +5057,7 @@
"x-appwrite": {
"method": "createDocument",
"group": "documents",
"weight": 331,
"weight": 327,
"cookies": false,
"type": "",
"demo": "databases\/create-document.md",
@ -5204,7 +5204,7 @@
"x-appwrite": {
"method": "getDocument",
"group": "documents",
"weight": 332,
"weight": 328,
"cookies": false,
"type": "",
"demo": "databases\/get-document.md",
@ -5297,7 +5297,7 @@
"x-appwrite": {
"method": "upsertDocument",
"group": "documents",
"weight": 335,
"weight": 331,
"cookies": false,
"type": "",
"demo": "databases\/upsert-document.md",
@ -5440,7 +5440,7 @@
"x-appwrite": {
"method": "updateDocument",
"group": "documents",
"weight": 333,
"weight": 329,
"cookies": false,
"type": "",
"demo": "databases\/update-document.md",
@ -5540,7 +5540,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
"weight": 337,
"weight": 333,
"cookies": false,
"type": "",
"demo": "databases\/delete-document.md",
@ -5623,7 +5623,7 @@
"x-appwrite": {
"method": "decrementDocumentAttribute",
"group": "documents",
"weight": 342,
"weight": 338,
"cookies": false,
"type": "",
"demo": "databases\/decrement-document-attribute.md",
@ -5735,7 +5735,7 @@
"x-appwrite": {
"method": "incrementDocumentAttribute",
"group": "documents",
"weight": 341,
"weight": 337,
"cookies": false,
"type": "",
"demo": "databases\/increment-document-attribute.md",
@ -5845,7 +5845,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
"weight": 460,
"weight": 456,
"cookies": false,
"type": "",
"demo": "functions\/list-executions.md",
@ -5918,7 +5918,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
"weight": 458,
"weight": 454,
"cookies": false,
"type": "",
"demo": "functions\/create-execution.md",
@ -6035,7 +6035,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
"weight": 459,
"weight": 455,
"cookies": false,
"type": "",
"demo": "functions\/get-execution.md",
@ -6106,7 +6106,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 254,
"weight": 250,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -6179,7 +6179,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 253,
"weight": 249,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -6660,7 +6660,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 296,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -6744,7 +6744,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 300,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -7573,7 +7573,7 @@
"x-appwrite": {
"method": "listRows",
"group": "rows",
"weight": 431,
"weight": 427,
"cookies": false,
"type": "",
"demo": "tablesdb\/list-rows.md",
@ -7657,7 +7657,7 @@
"x-appwrite": {
"method": "createRow",
"group": "rows",
"weight": 423,
"weight": 419,
"cookies": false,
"type": "",
"demo": "tablesdb\/create-row.md",
@ -7762,7 +7762,7 @@
},
"rows": {
"type": "array",
"description": "Array of documents data as JSON objects.",
"description": "Array of rows data as JSON objects.",
"default": [],
"x-example": null,
"items": {
@ -7799,7 +7799,7 @@
"x-appwrite": {
"method": "getRow",
"group": "rows",
"weight": 424,
"weight": 420,
"cookies": false,
"type": "",
"demo": "tablesdb\/get-row.md",
@ -7891,7 +7891,7 @@
"x-appwrite": {
"method": "upsertRow",
"group": "rows",
"weight": 427,
"weight": 423,
"cookies": false,
"type": "",
"demo": "tablesdb\/upsert-row.md",
@ -8025,7 +8025,7 @@
"x-appwrite": {
"method": "updateRow",
"group": "rows",
"weight": 425,
"weight": 421,
"cookies": false,
"type": "",
"demo": "tablesdb\/update-row.md",
@ -8124,7 +8124,7 @@
"x-appwrite": {
"method": "deleteRow",
"group": "rows",
"weight": 429,
"weight": 425,
"cookies": false,
"type": "",
"demo": "tablesdb\/delete-row.md",
@ -8206,7 +8206,7 @@
"x-appwrite": {
"method": "decrementRowColumn",
"group": "rows",
"weight": 434,
"weight": 430,
"cookies": false,
"type": "",
"demo": "tablesdb\/decrement-row-column.md",
@ -8317,7 +8317,7 @@
"x-appwrite": {
"method": "incrementRowColumn",
"group": "rows",
"weight": 433,
"weight": 429,
"cookies": false,
"type": "",
"demo": "tablesdb\/increment-row-column.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -538,7 +538,7 @@ App::get('/v1/health/queue/databases')
->inject('response')
->action(function (string $name, int|string $threshold, Database $queueForDatabase, Response $response) {
$threshold = \intval($threshold);
$size = $queueForDatabase->getSize();
$size = $queueForDatabase->setQueue($name)->getSize();
if ($size >= $threshold) {
throw new Exception(Exception::HEALTH_QUEUE_SIZE_EXCEEDED, "Queue size threshold hit. Current size is {$size} and threshold is {$threshold}.");

View file

@ -1,318 +0,0 @@
<?php
use Appwrite\Event\Certificate;
use Appwrite\Event\Delete;
use Appwrite\Event\Event;
use Appwrite\Extend\Exception;
use Appwrite\Network\Validator\DNS;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
use Appwrite\SDK\Response as SDKResponse;
use Appwrite\Utopia\Database\Validator\Queries\Rules;
use Appwrite\Utopia\Response;
use Utopia\App;
use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Exception\Query as QueryException;
use Utopia\Database\Query;
use Utopia\Database\Validator\Query\Cursor;
use Utopia\Database\Validator\UID;
use Utopia\Domains\Domain;
use Utopia\Logger\Log;
use Utopia\System\System;
use Utopia\Validator\AnyOf;
use Utopia\Validator\IP;
use Utopia\Validator\Text;
App::get('/v1/proxy/rules')
->groups(['api', 'proxy'])
->desc('List rules')
->label('scope', 'rules.read')
->label('sdk', new Method(
namespace: 'proxy',
group: null,
name: 'listRules',
description: '/docs/references/proxy/list-rules.md',
auth: [AuthType::ADMIN],
responses: [
new SDKResponse(
code: Response::STATUS_CODE_OK,
model: Response::MODEL_PROXY_RULE_LIST,
)
]
))
->param('queries', [], new Rules(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', Rules::ALLOWED_ATTRIBUTES), true)
->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true)
->inject('response')
->inject('project')
->inject('dbForPlatform')
->action(function (array $queries, string $search, Response $response, Document $project, Database $dbForPlatform) {
try {
$queries = Query::parseQueries($queries);
} catch (QueryException $e) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
}
if (!empty($search)) {
$queries[] = Query::search('search', $search);
}
$queries[] = Query::equal('projectInternalId', [$project->getSequence()]);
/**
* Get cursor document if there was a cursor query, we use array_filter and reset for reference $cursor to $queries
*/
$cursor = \array_filter($queries, function ($query) {
return \in_array($query->getMethod(), [Query::TYPE_CURSOR_AFTER, Query::TYPE_CURSOR_BEFORE]);
});
$cursor = reset($cursor);
if ($cursor) {
/** @var Query $cursor */
$validator = new Cursor();
if (!$validator->isValid($cursor)) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription());
}
$ruleId = $cursor->getValue();
$cursorDocument = $dbForPlatform->getDocument('rules', $ruleId);
if ($cursorDocument->isEmpty()) {
throw new Exception(Exception::GENERAL_CURSOR_NOT_FOUND, "Rule '{$ruleId}' for the 'cursor' value not found.");
}
$cursor->setValue($cursorDocument);
}
$filterQueries = Query::groupByType($queries)['filters'];
$rules = $dbForPlatform->find('rules', $queries);
foreach ($rules as $rule) {
$certificate = $dbForPlatform->getDocument('certificates', $rule->getAttribute('certificateId', ''));
$rule->setAttribute('logs', $certificate->getAttribute('logs', ''));
$rule->setAttribute('renewAt', $certificate->getAttribute('renewDate', ''));
}
$response->dynamic(new Document([
'rules' => $rules,
'total' => $dbForPlatform->count('rules', $filterQueries, APP_LIMIT_COUNT),
]), Response::MODEL_PROXY_RULE_LIST);
});
App::get('/v1/proxy/rules/:ruleId')
->groups(['api', 'proxy'])
->desc('Get rule')
->label('scope', 'rules.read')
->label('sdk', new Method(
namespace: 'proxy',
group: null,
name: 'getRule',
description: '/docs/references/proxy/get-rule.md',
auth: [AuthType::ADMIN],
responses: [
new SDKResponse(
code: Response::STATUS_CODE_OK,
model: Response::MODEL_PROXY_RULE,
)
]
))
->param('ruleId', '', new UID(), 'Rule ID.')
->inject('response')
->inject('project')
->inject('dbForPlatform')
->action(function (string $ruleId, Response $response, Document $project, Database $dbForPlatform) {
$rule = $dbForPlatform->getDocument('rules', $ruleId);
if ($rule->isEmpty() || $rule->getAttribute('projectInternalId') !== $project->getSequence()) {
throw new Exception(Exception::RULE_NOT_FOUND);
}
$certificate = $dbForPlatform->getDocument('certificates', $rule->getAttribute('certificateId', ''));
$rule->setAttribute('logs', $certificate->getAttribute('logs', ''));
$rule->setAttribute('renewAt', $certificate->getAttribute('renewDate', ''));
$response->dynamic($rule, Response::MODEL_PROXY_RULE);
});
App::delete('/v1/proxy/rules/:ruleId')
->groups(['api', 'proxy'])
->desc('Delete rule')
->label('scope', 'rules.write')
->label('event', 'rules.[ruleId].delete')
->label('audits.event', 'rules.delete')
->label('audits.resource', 'rule/{request.ruleId}')
->label('sdk', new Method(
namespace: 'proxy',
group: null,
name: 'deleteRule',
description: '/docs/references/proxy/delete-rule.md',
auth: [AuthType::ADMIN],
responses: [
new SDKResponse(
code: Response::STATUS_CODE_NOCONTENT,
model: Response::MODEL_NONE,
)
],
contentType: ContentType::NONE
))
->param('ruleId', '', new UID(), 'Rule ID.')
->inject('response')
->inject('project')
->inject('dbForPlatform')
->inject('queueForDeletes')
->inject('queueForEvents')
->action(function (string $ruleId, Response $response, Document $project, Database $dbForPlatform, Delete $queueForDeletes, Event $queueForEvents) {
$rule = $dbForPlatform->getDocument('rules', $ruleId);
if ($rule->isEmpty() || $rule->getAttribute('projectInternalId') !== $project->getSequence()) {
throw new Exception(Exception::RULE_NOT_FOUND);
}
$dbForPlatform->deleteDocument('rules', $rule->getId());
$queueForDeletes
->setType(DELETE_TYPE_DOCUMENT)
->setDocument($rule);
$queueForEvents->setParam('ruleId', $rule->getId());
$response->noContent();
});
App::patch('/v1/proxy/rules/:ruleId/verification')
->desc('Update rule verification status')
->groups(['api', 'proxy'])
->label('scope', 'rules.write')
->label('event', 'rules.[ruleId].update')
->label('audits.event', 'rule.update')
->label('audits.resource', 'rule/{response.$id}')
->label('sdk', new Method(
namespace: 'proxy',
group: null,
name: 'updateRuleVerification',
description: '/docs/references/proxy/update-rule-verification.md',
auth: [AuthType::ADMIN],
responses: [
new SDKResponse(
code: Response::STATUS_CODE_OK,
model: Response::MODEL_PROXY_RULE,
)
]
))
->param('ruleId', '', new UID(), 'Rule ID.')
->inject('response')
->inject('queueForCertificates')
->inject('queueForEvents')
->inject('project')
->inject('dbForPlatform')
->inject('log')
->action(function (string $ruleId, Response $response, Certificate $queueForCertificates, Event $queueForEvents, Document $project, Database $dbForPlatform, Log $log) {
$rule = $dbForPlatform->getDocument('rules', $ruleId);
if ($rule->isEmpty() || $rule->getAttribute('projectInternalId') !== $project->getSequence()) {
throw new Exception(Exception::RULE_NOT_FOUND);
}
$targetCNAME = null;
switch ($rule->getAttribute('type', '')) {
case 'api':
// For example: fra.cloud.appwrite.io
$targetCNAME = new Domain(System::getEnv('_APP_DOMAIN_TARGET_CNAME', ''));
break;
case 'redirect':
// For example: appwrite.network
$targetCNAME = new Domain(System::getEnv('_APP_DOMAIN_SITES', ''));
break;
case 'deployment':
switch ($rule->getAttribute('deploymentResourceType', '')) {
case 'function':
// For example: fra.appwrite.run
$targetCNAME = new Domain(System::getEnv('_APP_DOMAIN_FUNCTIONS', ''));
break;
case 'site':
// For example: appwrite.network
$targetCNAME = new Domain(System::getEnv('_APP_DOMAIN_SITES', ''));
break;
default:
break;
}
// no break
default:
break;
}
$validators = [];
if (!is_null($targetCNAME)) {
if ($targetCNAME->isKnown() && !$targetCNAME->isTest()) {
$validators[] = new DNS($targetCNAME->get(), DNS::RECORD_CNAME);
}
}
if ((new IP(IP::V4))->isValid(System::getEnv('_APP_DOMAIN_TARGET_A', ''))) {
$validators[] = new DNS(System::getEnv('_APP_DOMAIN_TARGET_A', ''), DNS::RECORD_A);
}
if ((new IP(IP::V6))->isValid(System::getEnv('_APP_DOMAIN_TARGET_AAAA', ''))) {
$validators[] = new DNS(System::getEnv('_APP_DOMAIN_TARGET_AAAA', ''), DNS::RECORD_AAAA);
}
if (empty($validators)) {
throw new Exception(Exception::GENERAL_SERVER_ERROR, 'At least one of domain targets environment variable must be configured.');
}
if ($rule->getAttribute('verification') === true) {
return $response->dynamic($rule, Response::MODEL_PROXY_RULE);
}
$validator = new AnyOf($validators, AnyOf::TYPE_STRING);
$domain = new Domain($rule->getAttribute('domain', ''));
$validationStart = \microtime(true);
if (!$validator->isValid($domain->get())) {
$log->addExtra('dnsTiming', \strval(\microtime(true) - $validationStart));
$log->addTag('dnsDomain', $domain->get());
$errors = [];
foreach ($validators as $validator) {
if (!empty($validator->getLogs())) {
$errors[] = $validator->getLogs();
}
}
$error = \implode("\n", $errors);
$log->addExtra('dnsResponse', \is_array($error) ? \json_encode($error) : \strval($error));
throw new Exception(Exception::RULE_VERIFICATION_FAILED);
}
// Ensure CAA won't block certificate issuance
if (!empty(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''))) {
$validationStart = \microtime(true);
$validator = new DNS(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''), DNS::RECORD_CAA);
if (!$validator->isValid($domain->get())) {
$log->addExtra('dnsTimingCaa', \strval(\microtime(true) - $validationStart));
$log->addTag('dnsDomain', $domain->get());
$error = $validator->getDescription();
$log->addExtra('dnsResponse', \is_array($error) ? \json_encode($error) : \strval($error));
throw new Exception(Exception::RULE_VERIFICATION_FAILED, 'Domain verification failed because CAA records do not allow Appwrite\'s certificate issuer.');
}
}
$dbForPlatform->updateDocument('rules', $rule->getId(), $rule->setAttribute('status', 'verifying'));
// Issue a TLS certificate when domain is verified
$queueForCertificates
->setDomain(new Document([
'domain' => $rule->getAttribute('domain'),
'domainType' => $rule->getAttribute('deploymentResourceType', $rule->getAttribute('type')),
]))
->trigger();
$queueForEvents->setParam('ruleId', $rule->getId());
$certificate = $dbForPlatform->getDocument('certificates', $rule->getAttribute('certificateId', ''));
$rule->setAttribute('logs', $certificate->getAttribute('logs', ''));
$response->dynamic($rule, Response::MODEL_PROXY_RULE);
});

View file

@ -225,6 +225,8 @@ App::get('/v1/storage/buckets')
$total = $dbForProject->count('buckets', $filterQueries, APP_LIMIT_COUNT);
} catch (OrderException $e) {
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
} catch (QueryException $e) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
}
$response->dynamic(new Document([
'buckets' => $buckets,
@ -853,6 +855,8 @@ App::get('/v1/storage/buckets/:bucketId/files')
throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND);
} catch (OrderException $e) {
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
} catch (QueryException $e) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
}
$response->dynamic(new Document([

View file

@ -246,10 +246,11 @@ App::init()
$role = $apiKey->getRole();
$scopes = $apiKey->getScopes();
// Disable authorization checks for API keys
Authorization::setDefaultStatus(false);
if ($apiKey->getRole() === Auth::USER_ROLE_APPS) {
// Disable authorization checks for API keys
Authorization::setDefaultStatus(false);
$user = new Document([
'$id' => '',
'status' => true,

View file

@ -10,6 +10,7 @@ use Swoole\Http\Response as SwooleResponse;
use Swoole\Http\Server;
use Swoole\Process;
use Swoole\Table;
use Swoole\Timer;
use Utopia\App;
use Utopia\Audit\Audit;
use Utopia\CLI\Console;
@ -156,11 +157,16 @@ $http->on(Constant::EVENT_WORKER_START, function ($server, $workerId) {
Console::success('Worker ' . ++$workerId . ' started successfully');
});
$http->on(Constant::EVENT_BEFORE_RELOAD, function ($server, $workerId) {
$http->on(Constant::EVENT_WORKER_STOP, function ($server, $workerId) {
Timer::clearAll();
Console::success('Worker ' . ++$workerId . ' stopped successfully');
});
$http->on(Constant::EVENT_BEFORE_RELOAD, function ($server) {
Console::success('Starting reload...');
});
$http->on(Constant::EVENT_AFTER_RELOAD, function ($server, $workerId) {
$http->on(Constant::EVENT_AFTER_RELOAD, function ($server) {
Console::success('Reload completed...');
});
@ -550,7 +556,7 @@ $http->on(Constant::EVENT_TASK, function () use ($register, $domains) {
/** @var Utopia\Database\Database $dbForPlatform */
$dbForPlatform = $app->getResource('dbForPlatform');
Console::loop(function () use ($dbForPlatform, $domains, &$lastSyncUpdate) {
Timer::tick(DOMAIN_SYNC_TIMER * 1000, function () use ($dbForPlatform, $domains, &$lastSyncUpdate) {
try {
$time = DateTime::now();
$limit = 1000;
@ -589,8 +595,6 @@ $http->on(Constant::EVENT_TASK, function () use ($register, $domains) {
} catch (Throwable $th) {
Console::error($th->getMessage());
}
}, DOMAIN_SYNC_TIMER, 0, function ($error) {
Console::error($error);
});
});

View file

@ -255,6 +255,8 @@ Database::addFilter(
->find('variables', [
Query::equal('resourceInternalId', [$document->getSequence()]),
Query::equal('resourceType', $resourceType),
Query::orderAsc('resourceType'),
Query::orderAsc(),
Query::limit(APP_LIMIT_SUBQUERY),
]);
}

94
composer.lock generated
View file

@ -756,24 +756,21 @@
},
{
"name": "google/protobuf",
"version": "v4.32.0",
"version": "v4.32.1",
"source": {
"type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git",
"reference": "9a9a92ecbe9c671dc1863f6d4a91ea3ea12c8646"
"reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/9a9a92ecbe9c671dc1863f6d4a91ea3ea12c8646",
"reference": "9a9a92ecbe9c671dc1863f6d4a91ea3ea12c8646",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb",
"reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb",
"shasum": ""
},
"require": {
"php": ">=8.1.0"
},
"provide": {
"ext-protobuf": "*"
},
"require-dev": {
"phpunit/phpunit": ">=5.0.0 <8.5.27"
},
@ -797,9 +794,9 @@
"proto"
],
"support": {
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.32.0"
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.32.1"
},
"time": "2025-08-14T20:00:33+00:00"
"time": "2025-09-14T05:14:52+00:00"
},
{
"name": "league/csv",
@ -1355,16 +1352,16 @@
},
{
"name": "open-telemetry/gen-otlp-protobuf",
"version": "1.5.0",
"version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git",
"reference": "585bafddd4ae6565de154610b10a787a455c9ba0"
"reference": "673af5b06545b513466081884b47ef15a536edde"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/585bafddd4ae6565de154610b10a787a455c9ba0",
"reference": "585bafddd4ae6565de154610b10a787a455c9ba0",
"url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/673af5b06545b513466081884b47ef15a536edde",
"reference": "673af5b06545b513466081884b47ef15a536edde",
"shasum": ""
},
"require": {
@ -1414,7 +1411,7 @@
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
"source": "https://github.com/open-telemetry/opentelemetry-php"
},
"time": "2025-01-15T23:07:07+00:00"
"time": "2025-09-17T23:10:12+00:00"
},
{
"name": "open-telemetry/sdk",
@ -3638,16 +3635,16 @@
},
{
"name": "utopia-php/database",
"version": "1.4.1",
"version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "b5ea4d133a1a4e747b7522e61e072289129a06f4"
"reference": "24c4519b4ac32aee13af31dddd984db2a3b34980"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/b5ea4d133a1a4e747b7522e61e072289129a06f4",
"reference": "b5ea4d133a1a4e747b7522e61e072289129a06f4",
"url": "https://api.github.com/repos/utopia-php/database/zipball/24c4519b4ac32aee13af31dddd984db2a3b34980",
"reference": "24c4519b4ac32aee13af31dddd984db2a3b34980",
"shasum": ""
},
"require": {
@ -3688,9 +3685,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/1.4.1"
"source": "https://github.com/utopia-php/database/tree/1.5.0"
},
"time": "2025-09-05T13:23:52+00:00"
"time": "2025-09-18T14:42:01+00:00"
},
{
"name": "utopia-php/detector",
@ -4190,16 +4187,16 @@
},
{
"name": "utopia-php/migration",
"version": "1.0.1",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/migration.git",
"reference": "38171023efd3abe650d2abc5ac65f5df52311da6"
"reference": "c42935a6a4ee3701c68d24244e82ecb39e945ec4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/38171023efd3abe650d2abc5ac65f5df52311da6",
"reference": "38171023efd3abe650d2abc5ac65f5df52311da6",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/c42935a6a4ee3701c68d24244e82ecb39e945ec4",
"reference": "c42935a6a4ee3701c68d24244e82ecb39e945ec4",
"shasum": ""
},
"require": {
@ -4240,9 +4237,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/migration/issues",
"source": "https://github.com/utopia-php/migration/tree/1.0.1"
"source": "https://github.com/utopia-php/migration/tree/1.1.1"
},
"time": "2025-08-28T13:41:25+00:00"
"time": "2025-09-10T06:17:20+00:00"
},
{
"name": "utopia-php/orchestration",
@ -5007,16 +5004,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "1.3.2",
"version": "1.3.5",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "375a6c9b168db6fdf58fbe0d49d2261d80700b4a"
"reference": "6fda9e58b37c9872c1a2a424e5467de8de1bc567"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/375a6c9b168db6fdf58fbe0d49d2261d80700b4a",
"reference": "375a6c9b168db6fdf58fbe0d49d2261d80700b4a",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/6fda9e58b37c9872c1a2a424e5467de8de1bc567",
"reference": "6fda9e58b37c9872c1a2a424e5467de8de1bc567",
"shasum": ""
},
"require": {
@ -5052,9 +5049,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/1.3.2"
"source": "https://github.com/appwrite/sdk-generator/tree/1.3.5"
},
"time": "2025-09-05T15:50:35+00:00"
"time": "2025-09-15T04:19:40+00:00"
},
{
"name": "doctrine/annotations",
@ -5281,16 +5278,16 @@
},
{
"name": "laravel/pint",
"version": "v1.24.0",
"version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a"
"reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/0345f3b05f136801af8c339f9d16ef29e6b4df8a",
"reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a",
"url": "https://api.github.com/repos/laravel/pint/zipball/595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96",
"reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96",
"shasum": ""
},
"require": {
@ -5301,9 +5298,9 @@
"php": "^8.2.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.82.2",
"illuminate/view": "^11.45.1",
"larastan/larastan": "^3.5.0",
"friendsofphp/php-cs-fixer": "^3.87.2",
"illuminate/view": "^11.46.0",
"larastan/larastan": "^3.7.1",
"laravel-zero/framework": "^11.45.0",
"mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.3.1",
@ -5314,9 +5311,6 @@
],
"type": "project",
"autoload": {
"files": [
"overrides/Runner/Parallel/ProcessFactory.php"
],
"psr-4": {
"App\\": "app/",
"Database\\Seeders\\": "database/seeders/",
@ -5346,7 +5340,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2025-07-10T18:09:32+00:00"
"time": "2025-09-17T01:36:44+00:00"
},
{
"name": "matthiasmullie/minify",
@ -6236,16 +6230,16 @@
},
{
"name": "phpunit/phpunit",
"version": "9.6.25",
"version": "9.6.27",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "049c011e01be805202d8eebedef49f769a8ec7b7"
"reference": "0a9aa4440b6a9528cf360071502628d717af3e0a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/049c011e01be805202d8eebedef49f769a8ec7b7",
"reference": "049c011e01be805202d8eebedef49f769a8ec7b7",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0a9aa4440b6a9528cf360071502628d717af3e0a",
"reference": "0a9aa4440b6a9528cf360071502628d717af3e0a",
"shasum": ""
},
"require": {
@ -6319,7 +6313,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.25"
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.27"
},
"funding": [
{
@ -6343,7 +6337,7 @@
"type": "tidelift"
}
],
"time": "2025-08-20T14:38:31+00:00"
"time": "2025-09-14T06:18:03+00:00"
},
{
"name": "psr/cache",
@ -8536,5 +8530,5 @@
"platform-overrides": {
"php": "8.3"
},
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.6.0"
}

View file

@ -11,7 +11,7 @@ const result = await databases.createLineAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [[1, 2], [3, 4], [5, 6]] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await databases.createPointAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [1, 2] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await databases.createPolygonAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await databases.updateLineAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [[1, 2], [3, 4], [5, 6]], // optional
newKey: '' // optional
});

View file

@ -11,7 +11,7 @@ const result = await databases.updatePointAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [1, 2], // optional
newKey: '' // optional
});

View file

@ -11,7 +11,7 @@ const result = await databases.updatePolygonAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // optional
newKey: '' // optional
});

View file

@ -11,7 +11,7 @@ const result = await tablesDB.createLineColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [[1, 2], [3, 4], [5, 6]] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await tablesDB.createPointColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [1, 2] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await tablesDB.createPolygonColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]] // optional
});
console.log(result);

View file

@ -11,7 +11,7 @@ const result = await tablesDB.updateLineColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [[1, 2], [3, 4], [5, 6]], // optional
newKey: '' // optional
});

View file

@ -11,7 +11,7 @@ const result = await tablesDB.updatePointColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [1, 2], // optional
newKey: '' // optional
});

View file

@ -11,7 +11,7 @@ const result = await tablesDB.updatePolygonColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // optional
newKey: '' // optional
});

View file

@ -12,5 +12,5 @@ AttributeLine result = await databases.createLineAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[1, 2], [3, 4], [5, 6]], // (optional)
);

View file

@ -12,5 +12,5 @@ AttributePoint result = await databases.createPointAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [1, 2], // (optional)
);

View file

@ -12,5 +12,5 @@ AttributePolygon result = await databases.createPolygonAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // (optional)
);

View file

@ -12,6 +12,6 @@ AttributeLine result = await databases.updateLineAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[1, 2], [3, 4], [5, 6]], // (optional)
newKey: '', // (optional)
);

View file

@ -12,6 +12,6 @@ AttributePoint result = await databases.updatePointAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [1, 2], // (optional)
newKey: '', // (optional)
);

View file

@ -12,6 +12,6 @@ AttributePolygon result = await databases.updatePolygonAttribute(
collectionId: '<COLLECTION_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // (optional)
newKey: '', // (optional)
);

View file

@ -12,5 +12,5 @@ ColumnLine result = await tablesDB.createLineColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[1, 2], [3, 4], [5, 6]], // (optional)
);

View file

@ -12,5 +12,5 @@ ColumnPoint result = await tablesDB.createPointColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [1, 2], // (optional)
);

View file

@ -12,5 +12,5 @@ ColumnPolygon result = await tablesDB.createPolygonColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // (optional)
);

View file

@ -12,6 +12,6 @@ ColumnLine result = await tablesDB.updateLineColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[1, 2], [3, 4], [5, 6]], // (optional)
newKey: '', // (optional)
);

View file

@ -12,6 +12,6 @@ ColumnPoint result = await tablesDB.updatePointColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [1, 2], // (optional)
newKey: '', // (optional)
);

View file

@ -12,6 +12,6 @@ ColumnPolygon result = await tablesDB.updatePolygonColumn(
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
xdefault: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // (optional)
newKey: '', // (optional)
);

View file

@ -12,5 +12,5 @@ const response = await databases.createLineAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,5 +12,5 @@ const response = await databases.createPointAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,5 +12,5 @@ const response = await databases.createPolygonAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,6 +12,6 @@ const response = await databases.updateLineAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -12,6 +12,6 @@ const response = await databases.updatePointAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -12,6 +12,6 @@ const response = await databases.updatePolygonAttribute({
collectionId: '<COLLECTION_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -12,5 +12,5 @@ const response = await tablesDB.createLineColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,5 +12,5 @@ const response = await tablesDB.createPointColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,5 +12,5 @@ const response = await tablesDB.createPolygonColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '' // optional
default: [[1,2], [3, 4]] // optional
});

View file

@ -12,6 +12,6 @@ const response = await tablesDB.updateLineColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -12,6 +12,6 @@ const response = await tablesDB.updatePointColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -12,6 +12,6 @@ const response = await tablesDB.updatePolygonColumn({
tableId: '<TABLE_ID>',
key: '',
required: false,
default: '', // optional
default: [[1,2], [3, 4]], // optional
newKey: '' // optional
});

View file

@ -14,5 +14,5 @@ AttributeLine result = await databases.CreateLineAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "" // optional
default: [[1, 2], [3, 4], [5, 6]] // optional
);

View file

@ -14,5 +14,5 @@ AttributePoint result = await databases.CreatePointAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "" // optional
default: [1, 2] // optional
);

View file

@ -14,5 +14,5 @@ AttributePolygon result = await databases.CreatePolygonAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "" // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]] // optional
);

View file

@ -14,6 +14,6 @@ AttributeLine result = await databases.UpdateLineAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "", // optional
default: [[1, 2], [3, 4], [5, 6]], // optional
newKey: "" // optional
);

View file

@ -14,6 +14,6 @@ AttributePoint result = await databases.UpdatePointAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "", // optional
default: [1, 2], // optional
newKey: "" // optional
);

View file

@ -14,6 +14,6 @@ AttributePolygon result = await databases.UpdatePolygonAttribute(
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "", // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // optional
newKey: "" // optional
);

View file

@ -14,5 +14,5 @@ ColumnLine result = await tablesDB.CreateLineColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "" // optional
default: [[1, 2], [3, 4], [5, 6]] // optional
);

View file

@ -14,5 +14,5 @@ ColumnPoint result = await tablesDB.CreatePointColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "" // optional
default: [1, 2] // optional
);

View file

@ -14,5 +14,5 @@ ColumnPolygon result = await tablesDB.CreatePolygonColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "" // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]] // optional
);

View file

@ -14,6 +14,6 @@ ColumnLine result = await tablesDB.UpdateLineColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "", // optional
default: [[1, 2], [3, 4], [5, 6]], // optional
newKey: "" // optional
);

View file

@ -14,6 +14,6 @@ ColumnPoint result = await tablesDB.UpdatePointColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "", // optional
default: [1, 2], // optional
newKey: "" // optional
);

View file

@ -14,6 +14,6 @@ ColumnPolygon result = await tablesDB.UpdatePolygonColumn(
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "", // optional
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]], // optional
newKey: "" // optional
);

View file

@ -19,5 +19,5 @@ response, error := service.CreateLineAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithCreateLineAttributeDefault(""),
databases.WithCreateLineAttributeDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
)

View file

@ -19,5 +19,5 @@ response, error := service.CreatePointAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithCreatePointAttributeDefault(""),
databases.WithCreatePointAttributeDefault(interface{}{1, 2}),
)

View file

@ -19,5 +19,5 @@ response, error := service.CreatePolygonAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithCreatePolygonAttributeDefault(""),
databases.WithCreatePolygonAttributeDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdateLineAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithUpdateLineAttributeDefault(""),
databases.WithUpdateLineAttributeDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
databases.WithUpdateLineAttributeNewKey(""),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdatePointAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithUpdatePointAttributeDefault(""),
databases.WithUpdatePointAttributeDefault(interface{}{1, 2}),
databases.WithUpdatePointAttributeNewKey(""),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdatePolygonAttribute(
"<COLLECTION_ID>",
"",
false,
databases.WithUpdatePolygonAttributeDefault(""),
databases.WithUpdatePolygonAttributeDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
databases.WithUpdatePolygonAttributeNewKey(""),
)

View file

@ -19,5 +19,5 @@ response, error := service.CreateLineColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithCreateLineColumnDefault(""),
tablesdb.WithCreateLineColumnDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
)

View file

@ -19,5 +19,5 @@ response, error := service.CreatePointColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithCreatePointColumnDefault(""),
tablesdb.WithCreatePointColumnDefault(interface{}{1, 2}),
)

View file

@ -19,5 +19,5 @@ response, error := service.CreatePolygonColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithCreatePolygonColumnDefault(""),
tablesdb.WithCreatePolygonColumnDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdateLineColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithUpdateLineColumnDefault(""),
tablesdb.WithUpdateLineColumnDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
tablesdb.WithUpdateLineColumnNewKey(""),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdatePointColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithUpdatePointColumnDefault(""),
tablesdb.WithUpdatePointColumnDefault(interface{}{1, 2}),
tablesdb.WithUpdatePointColumnNewKey(""),
)

View file

@ -19,6 +19,6 @@ response, error := service.UpdatePolygonColumn(
"<TABLE_ID>",
"",
false,
tablesdb.WithUpdatePolygonColumnDefault(""),
tablesdb.WithUpdatePolygonColumnDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
tablesdb.WithUpdatePolygonColumnNewKey(""),
)

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: ""
default: [[1, 2], [3, 4], [5, 6]]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: ""
default: [1, 2]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: ""
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "",
default: [[1, 2], [3, 4], [5, 6]],
newKey: ""
) {
key

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "",
default: [1, 2],
newKey: ""
) {
key

View file

@ -4,7 +4,7 @@ mutation {
collectionId: "<COLLECTION_ID>",
key: "",
required: false,
default: "",
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]],
newKey: ""
) {
key

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: ""
default: [[1, 2], [3, 4], [5, 6]]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: ""
default: [1, 2]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: ""
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]]
) {
key
type

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "",
default: [[1, 2], [3, 4], [5, 6]],
newKey: ""
) {
key

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "",
default: [1, 2],
newKey: ""
) {
key

View file

@ -4,7 +4,7 @@ mutation {
tableId: "<TABLE_ID>",
key: "",
required: false,
default: "",
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]],
newKey: ""
) {
key

View file

@ -14,7 +14,7 @@ databases.createLineAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf([1, 2], [3, 4], [5, 6]), // default (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

View file

@ -14,7 +14,7 @@ databases.createPointAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf(1, 2), // default (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

View file

@ -14,7 +14,7 @@ databases.createPolygonAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf([[1, 2], [3, 4], [5, 6], [1, 2]]), // default (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

View file

@ -14,7 +14,7 @@ databases.updateLineAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf([1, 2], [3, 4], [5, 6]), // default (optional)
"", // newKey (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -14,7 +14,7 @@ databases.updatePointAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf(1, 2), // default (optional)
"", // newKey (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -14,7 +14,7 @@ databases.updatePolygonAttribute(
"<COLLECTION_ID>", // collectionId
"", // key
false, // required
"", // default (optional)
listOf([[1, 2], [3, 4], [5, 6], [1, 2]]), // default (optional)
"", // newKey (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -14,7 +14,7 @@ tablesDB.createLineColumn(
"<TABLE_ID>", // tableId
"", // key
false, // required
"", // default (optional)
listOf([1, 2], [3, 4], [5, 6]), // default (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

Some files were not shown because too many files have changed in this diff Show more