mirror of
https://github.com/appwrite/appwrite
synced 2026-05-21 16:08:22 +00:00
Merge branch '1.8.x' into chore-beautify-certificate-logs
This commit is contained in:
commit
e7a44c9fb2
206 changed files with 2770 additions and 2566 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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);
|
||||
});
|
||||
28
composer.lock
generated
28
composer.lock
generated
|
|
@ -3638,16 +3638,16 @@
|
|||
},
|
||||
{
|
||||
"name": "utopia-php/database",
|
||||
"version": "1.4.4",
|
||||
"version": "1.4.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/database.git",
|
||||
"reference": "16f96e5d9784dae87d4f6b864e87da8e3be15507"
|
||||
"reference": "c7dcfd8a5671944d1a9a454cbf26b95a8bd47544"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/16f96e5d9784dae87d4f6b864e87da8e3be15507",
|
||||
"reference": "16f96e5d9784dae87d4f6b864e87da8e3be15507",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/c7dcfd8a5671944d1a9a454cbf26b95a8bd47544",
|
||||
"reference": "c7dcfd8a5671944d1a9a454cbf26b95a8bd47544",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -3688,9 +3688,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/database/issues",
|
||||
"source": "https://github.com/utopia-php/database/tree/1.4.4"
|
||||
"source": "https://github.com/utopia-php/database/tree/1.4.6"
|
||||
},
|
||||
"time": "2025-09-10T00:50:05+00:00"
|
||||
"time": "2025-09-11T06:01:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/detector",
|
||||
|
|
@ -6236,16 +6236,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.6.25",
|
||||
"version": "9.6.26",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "049c011e01be805202d8eebedef49f769a8ec7b7"
|
||||
"reference": "a0139ea157533454f611038326f3020b3051f129"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/049c011e01be805202d8eebedef49f769a8ec7b7",
|
||||
"reference": "049c011e01be805202d8eebedef49f769a8ec7b7",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a0139ea157533454f611038326f3020b3051f129",
|
||||
"reference": "a0139ea157533454f611038326f3020b3051f129",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -6319,7 +6319,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.26"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -6343,7 +6343,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-08-20T14:38:31+00:00"
|
||||
"time": "2025-09-11T06:17:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
|
|
@ -8512,7 +8512,7 @@
|
|||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"stability-flags": {},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
|
|
@ -8536,5 +8536,5 @@
|
|||
"platform-overrides": {
|
||||
"php": "8.3"
|
||||
},
|
||||
"plugin-api-version": "2.3.0"
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ const result = await databases.createPointAttribute({
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [1, 2] // optional
|
||||
});
|
||||
|
||||
console.log(result);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ const result = await databases.updatePointAttribute({
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '', // optional
|
||||
default: [1, 2], // optional
|
||||
newKey: '' // optional
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ const result = await tablesDB.createPointColumn({
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [1, 2] // optional
|
||||
});
|
||||
|
||||
console.log(result);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ const result = await tablesDB.updatePointColumn({
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '', // optional
|
||||
default: [1, 2], // optional
|
||||
newKey: '' // optional
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ AttributePoint result = await databases.createPointAttribute(
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
xrequired: false,
|
||||
xdefault: '', // (optional)
|
||||
xdefault: [1, 2], // (optional)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ AttributePoint result = await databases.updatePointAttribute(
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
xrequired: false,
|
||||
xdefault: '', // (optional)
|
||||
xdefault: [1, 2], // (optional)
|
||||
newKey: '', // (optional)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ ColumnPoint result = await tablesDB.createPointColumn(
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
xrequired: false,
|
||||
xdefault: '', // (optional)
|
||||
xdefault: [1, 2], // (optional)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ ColumnPoint result = await tablesDB.updatePointColumn(
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
xrequired: false,
|
||||
xdefault: '', // (optional)
|
||||
xdefault: [1, 2], // (optional)
|
||||
newKey: '', // (optional)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await databases.createLineAttribute({
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await databases.createPointAttribute({
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await databases.createPolygonAttribute({
|
|||
collectionId: '<COLLECTION_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await tablesDB.createLineColumn({
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await tablesDB.createPointColumn({
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ const response = await tablesDB.createPolygonColumn({
|
|||
tableId: '<TABLE_ID>',
|
||||
key: '',
|
||||
required: false,
|
||||
default: '' // optional
|
||||
default: [[1,2], [3, 4]] // optional
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -14,5 +14,5 @@ AttributePoint result = await databases.CreatePointAttribute(
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "" // optional
|
||||
default: [1, 2] // optional
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -14,6 +14,6 @@ AttributePoint result = await databases.UpdatePointAttribute(
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "", // optional
|
||||
default: [1, 2], // optional
|
||||
newKey: "" // optional
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -14,5 +14,5 @@ ColumnPoint result = await tablesDB.CreatePointColumn(
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "" // optional
|
||||
default: [1, 2] // optional
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -14,6 +14,6 @@ ColumnPoint result = await tablesDB.UpdatePointColumn(
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "", // optional
|
||||
default: [1, 2], // optional
|
||||
newKey: "" // optional
|
||||
);
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -19,5 +19,5 @@ response, error := service.CreateLineAttribute(
|
|||
"<COLLECTION_ID>",
|
||||
"",
|
||||
false,
|
||||
databases.WithCreateLineAttributeDefault(""),
|
||||
databases.WithCreateLineAttributeDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,5 +19,5 @@ response, error := service.CreatePointAttribute(
|
|||
"<COLLECTION_ID>",
|
||||
"",
|
||||
false,
|
||||
databases.WithCreatePointAttributeDefault(""),
|
||||
databases.WithCreatePointAttributeDefault(interface{}{1, 2}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,5 +19,5 @@ response, error := service.CreatePolygonAttribute(
|
|||
"<COLLECTION_ID>",
|
||||
"",
|
||||
false,
|
||||
databases.WithCreatePolygonAttributeDefault(""),
|
||||
databases.WithCreatePolygonAttributeDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ response, error := service.UpdateLineAttribute(
|
|||
"<COLLECTION_ID>",
|
||||
"",
|
||||
false,
|
||||
databases.WithUpdateLineAttributeDefault(""),
|
||||
databases.WithUpdateLineAttributeDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
|
||||
databases.WithUpdateLineAttributeNewKey(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ response, error := service.UpdatePointAttribute(
|
|||
"<COLLECTION_ID>",
|
||||
"",
|
||||
false,
|
||||
databases.WithUpdatePointAttributeDefault(""),
|
||||
databases.WithUpdatePointAttributeDefault(interface{}{1, 2}),
|
||||
databases.WithUpdatePointAttributeNewKey(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,5 +19,5 @@ response, error := service.CreateLineColumn(
|
|||
"<TABLE_ID>",
|
||||
"",
|
||||
false,
|
||||
tablesdb.WithCreateLineColumnDefault(""),
|
||||
tablesdb.WithCreateLineColumnDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,5 +19,5 @@ response, error := service.CreatePointColumn(
|
|||
"<TABLE_ID>",
|
||||
"",
|
||||
false,
|
||||
tablesdb.WithCreatePointColumnDefault(""),
|
||||
tablesdb.WithCreatePointColumnDefault(interface{}{1, 2}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,5 +19,5 @@ response, error := service.CreatePolygonColumn(
|
|||
"<TABLE_ID>",
|
||||
"",
|
||||
false,
|
||||
tablesdb.WithCreatePolygonColumnDefault(""),
|
||||
tablesdb.WithCreatePolygonColumnDefault(interface{}{[[1, 2], [3, 4], [5, 6], [1, 2]]}),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ response, error := service.UpdateLineColumn(
|
|||
"<TABLE_ID>",
|
||||
"",
|
||||
false,
|
||||
tablesdb.WithUpdateLineColumnDefault(""),
|
||||
tablesdb.WithUpdateLineColumnDefault(interface{}{[1, 2], [3, 4], [5, 6]}),
|
||||
tablesdb.WithUpdateLineColumnNewKey(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,6 @@ response, error := service.UpdatePointColumn(
|
|||
"<TABLE_ID>",
|
||||
"",
|
||||
false,
|
||||
tablesdb.WithUpdatePointColumnDefault(""),
|
||||
tablesdb.WithUpdatePointColumnDefault(interface{}{1, 2}),
|
||||
tablesdb.WithUpdatePointColumnNewKey(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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(""),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [[1, 2], [3, 4], [5, 6]]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [1, 2]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [[1, 2], [3, 4], [5, 6]],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [1, 2],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
collectionId: "<COLLECTION_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [[1, 2], [3, 4], [5, 6]]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [1, 2]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: ""
|
||||
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]]
|
||||
) {
|
||||
key
|
||||
type
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [[1, 2], [3, 4], [5, 6]],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [1, 2],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mutation {
|
|||
tableId: "<TABLE_ID>",
|
||||
key: "",
|
||||
required: false,
|
||||
default: "",
|
||||
default: [[[1, 2], [3, 4], [5, 6], [1, 2]]],
|
||||
newKey: ""
|
||||
) {
|
||||
key
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ tablesDB.createPointColumn(
|
|||
"<TABLE_ID>", // tableId
|
||||
"", // key
|
||||
false, // required
|
||||
"", // default (optional)
|
||||
listOf(1, 2), // default (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ tablesDB.createPolygonColumn(
|
|||
"<TABLE_ID>", // tableId
|
||||
"", // 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();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ tablesDB.updateLineColumn(
|
|||
"<TABLE_ID>", // tableId
|
||||
"", // key
|
||||
false, // required
|
||||
"", // default (optional)
|
||||
listOf([1, 2], [3, 4], [5, 6]), // default (optional)
|
||||
"", // newKey (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ tablesDB.updatePointColumn(
|
|||
"<TABLE_ID>", // tableId
|
||||
"", // key
|
||||
false, // required
|
||||
"", // default (optional)
|
||||
listOf(1, 2), // default (optional)
|
||||
"", // newKey (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ tablesDB.updatePolygonColumn(
|
|||
"<TABLE_ID>", // tableId
|
||||
"", // 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) {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue