diff --git a/app/config/collections/common.php b/app/config/collections/common.php index f0760638e4..f706b9a088 100644 --- a/app/config/collections/common.php +++ b/app/config/collections/common.php @@ -1582,6 +1582,17 @@ return [ 'required' => true, 'array' => false, ], + [ + '$id' => ID::custom('transformations'), + 'type' => Database::VAR_BOOLEAN, + 'signed' => true, + 'size' => 0, + 'format' => '', + 'filters' => [], + 'required' => false, + 'array' => false, + 'default' => true, + ], [ '$id' => ID::custom('search'), 'type' => Database::VAR_STRING, diff --git a/app/config/errors.php b/app/config/errors.php index 2e18f05797..e9c3894f53 100644 --- a/app/config/errors.php +++ b/app/config/errors.php @@ -522,6 +522,11 @@ return [ 'description' => 'The requested file is not publicly readable.', 'code' => 403, ], + Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED => [ + 'name' => Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED, + 'description' => 'Image transformations are disabled for the requested bucket.', + 'code' => 403, + ], /** Tokens */ Exception::TOKEN_NOT_FOUND => [ diff --git a/app/config/platforms.php b/app/config/platforms.php index 2b5c107648..ce60b2f6c2 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -60,7 +60,7 @@ return [ [ 'key' => 'flutter', 'name' => 'Flutter', - 'version' => '20.3.1', + 'version' => '20.3.2', 'url' => 'https://github.com/appwrite/sdk-for-flutter', 'package' => 'https://pub.dev/packages/appwrite', 'enabled' => true, diff --git a/app/config/specs/open-api3-1.8.x-console.json b/app/config/specs/open-api3-1.8.x-console.json index 6b6ab7409f..fded6c46b0 100644 --- a/app/config/specs/open-api3-1.8.x-console.json +++ b/app/config/specs/open-api3-1.8.x-console.json @@ -7753,7 +7753,8 @@ "default": { "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -14414,10 +14415,22 @@ "description": "Path to function code in the template repo.", "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the function template.", - "x-example": "" + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "" }, "activate": { "type": "boolean", @@ -14429,7 +14442,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -32314,10 +32328,22 @@ "description": "Path to site code in the template repo.", "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the site template.", - "x-example": "" + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "" }, "activate": { "type": "boolean", @@ -32329,7 +32355,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -33455,7 +33482,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "schema": { "type": "array", @@ -33605,6 +33632,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -33799,6 +33831,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -36096,7 +36133,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { @@ -36593,7 +36630,8 @@ "default": { "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -53579,6 +53617,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -53593,7 +53636,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -53612,7 +53656,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { @@ -54798,6 +54843,17 @@ "type": "string", "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] } }, "required": [ @@ -54807,7 +54863,8 @@ "provider", "private", "defaultBranch", - "pushedAt" + "pushedAt", + "variables" ], "example": { "id": "5e5ea5c16897e", @@ -54816,7 +54873,11 @@ "provider": "github", "private": true, "defaultBranch": "main", - "pushedAt": "datetime" + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] } }, "providerRepositoryFramework": { @@ -54858,6 +54919,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "framework": { "type": "string", "description": "Auto-detected framework. Empty if type is not \"framework\".", @@ -54872,6 +54944,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "framework" ], "example": { @@ -54882,6 +54955,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "framework": "nextjs" } }, @@ -54924,6 +55001,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "runtime": { "type": "string", "description": "Auto-detected runtime. Empty if type is not \"runtime\".", @@ -54938,6 +55026,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "runtime" ], "example": { @@ -54948,6 +55037,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "runtime": "node-22" } }, @@ -54955,6 +55048,15 @@ "description": "DetectionFramework", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "x-example": {}, + "nullable": true + }, "framework": { "type": "string", "description": "Framework", @@ -54983,6 +55085,7 @@ "outputDirectory" ], "example": { + "variables": {}, "framework": "nuxt", "installCommand": "npm install", "buildCommand": "npm run build", @@ -54993,6 +55096,15 @@ "description": "DetectionRuntime", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "x-example": {}, + "nullable": true + }, "runtime": { "type": "string", "description": "Runtime", @@ -55015,11 +55127,36 @@ "commands" ], "example": { + "variables": {}, "runtime": "node", "entrypoint": "index.js", "commands": "npm install && npm run build" } }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "x-example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "x-example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, "vcsContent": { "description": "VcsContents", "type": "object", diff --git a/app/config/specs/open-api3-1.8.x-server.json b/app/config/specs/open-api3-1.8.x-server.json index 8fc49b1db5..2cb6a74853 100644 --- a/app/config/specs/open-api3-1.8.x-server.json +++ b/app/config/specs/open-api3-1.8.x-server.json @@ -7222,7 +7222,8 @@ "default": { "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -13203,10 +13204,22 @@ "description": "Path to function code in the template repo.", "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the function template.", - "x-example": "" + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "" }, "activate": { "type": "boolean", @@ -13218,7 +13231,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -22838,10 +22852,22 @@ "description": "Path to site code in the template repo.", "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the site template.", - "x-example": "" + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "" }, "activate": { "type": "boolean", @@ -22853,7 +22879,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -23911,7 +23938,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "schema": { "type": "array", @@ -24062,6 +24089,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -24258,6 +24290,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -26342,7 +26379,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { @@ -26844,7 +26881,8 @@ "default": { "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -42256,6 +42294,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -42270,7 +42313,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -42289,7 +42333,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { diff --git a/app/config/specs/open-api3-latest-console.json b/app/config/specs/open-api3-latest-console.json index 12d2d30ab9..fded6c46b0 100644 --- a/app/config/specs/open-api3-latest-console.json +++ b/app/config/specs/open-api3-latest-console.json @@ -7753,7 +7753,8 @@ "default": { "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -33481,7 +33482,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "schema": { "type": "array", @@ -33631,6 +33632,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -33825,6 +33831,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -36122,7 +36133,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { @@ -36619,7 +36630,8 @@ "default": { "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -53605,6 +53617,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -53619,7 +53636,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -53638,7 +53656,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { @@ -54824,6 +54843,17 @@ "type": "string", "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] } }, "required": [ @@ -54833,7 +54863,8 @@ "provider", "private", "defaultBranch", - "pushedAt" + "pushedAt", + "variables" ], "example": { "id": "5e5ea5c16897e", @@ -54842,7 +54873,11 @@ "provider": "github", "private": true, "defaultBranch": "main", - "pushedAt": "datetime" + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] } }, "providerRepositoryFramework": { @@ -54884,6 +54919,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "framework": { "type": "string", "description": "Auto-detected framework. Empty if type is not \"framework\".", @@ -54898,6 +54944,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "framework" ], "example": { @@ -54908,6 +54955,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "framework": "nextjs" } }, @@ -54950,6 +55001,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "runtime": { "type": "string", "description": "Auto-detected runtime. Empty if type is not \"runtime\".", @@ -54964,6 +55026,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "runtime" ], "example": { @@ -54974,6 +55037,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "runtime": "node-22" } }, @@ -54981,6 +55048,15 @@ "description": "DetectionFramework", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "x-example": {}, + "nullable": true + }, "framework": { "type": "string", "description": "Framework", @@ -55009,6 +55085,7 @@ "outputDirectory" ], "example": { + "variables": {}, "framework": "nuxt", "installCommand": "npm install", "buildCommand": "npm run build", @@ -55019,6 +55096,15 @@ "description": "DetectionRuntime", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "x-example": {}, + "nullable": true + }, "runtime": { "type": "string", "description": "Runtime", @@ -55041,11 +55127,36 @@ "commands" ], "example": { + "variables": {}, "runtime": "node", "entrypoint": "index.js", "commands": "npm install && npm run build" } }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "x-example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "x-example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, "vcsContent": { "description": "VcsContents", "type": "object", diff --git a/app/config/specs/open-api3-latest-server.json b/app/config/specs/open-api3-latest-server.json index b11c69442b..2cb6a74853 100644 --- a/app/config/specs/open-api3-latest-server.json +++ b/app/config/specs/open-api3-latest-server.json @@ -7222,7 +7222,8 @@ "default": { "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -23937,7 +23938,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "schema": { "type": "array", @@ -24088,6 +24089,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -24284,6 +24290,11 @@ "type": "boolean", "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ @@ -26368,7 +26379,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { @@ -26870,7 +26881,8 @@ "default": { "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -42282,6 +42294,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -42296,7 +42313,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -42315,7 +42333,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { diff --git a/app/config/specs/swagger2-1.8.x-console.json b/app/config/specs/swagger2-1.8.x-console.json index 384011f2fd..28a4f76c61 100644 --- a/app/config/specs/swagger2-1.8.x-console.json +++ b/app/config/specs/swagger2-1.8.x-console.json @@ -7851,7 +7851,8 @@ "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -14355,11 +14356,24 @@ "default": null, "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the function template.", + "description": "Type for the reference provided. Can be commit, branch, or tag", "default": null, - "x-example": "" + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "" }, "activate": { "type": "boolean", @@ -14372,7 +14386,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -32416,11 +32431,24 @@ "default": null, "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the site template.", + "description": "Type for the reference provided. Can be commit, branch, or tag", "default": null, - "x-example": "" + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "" }, "activate": { "type": "boolean", @@ -32433,7 +32461,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -33536,7 +33565,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "type": "array", "collectionFormat": "multi", @@ -33694,6 +33723,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -33893,6 +33928,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -36122,7 +36163,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": false, "x-example": false }, @@ -36610,7 +36651,8 @@ "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -53397,6 +53439,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -53411,7 +53458,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -53430,7 +53478,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { @@ -54623,6 +54672,17 @@ "type": "string", "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] } }, "required": [ @@ -54632,7 +54692,8 @@ "provider", "private", "defaultBranch", - "pushedAt" + "pushedAt", + "variables" ], "example": { "id": "5e5ea5c16897e", @@ -54641,7 +54702,11 @@ "provider": "github", "private": true, "defaultBranch": "main", - "pushedAt": "datetime" + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] } }, "providerRepositoryFramework": { @@ -54683,6 +54748,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "framework": { "type": "string", "description": "Auto-detected framework. Empty if type is not \"framework\".", @@ -54697,6 +54773,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "framework" ], "example": { @@ -54707,6 +54784,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "framework": "nextjs" } }, @@ -54749,6 +54830,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "runtime": { "type": "string", "description": "Auto-detected runtime. Empty if type is not \"runtime\".", @@ -54763,6 +54855,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "runtime" ], "example": { @@ -54773,6 +54866,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "runtime": "node-22" } }, @@ -54780,6 +54877,16 @@ "description": "DetectionFramework", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "object", + "$ref": "#\/definitions\/detectionVariable" + }, + "x-example": {}, + "x-nullable": true + }, "framework": { "type": "string", "description": "Framework", @@ -54808,6 +54915,7 @@ "outputDirectory" ], "example": { + "variables": {}, "framework": "nuxt", "installCommand": "npm install", "buildCommand": "npm run build", @@ -54818,6 +54926,16 @@ "description": "DetectionRuntime", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "object", + "$ref": "#\/definitions\/detectionVariable" + }, + "x-example": {}, + "x-nullable": true + }, "runtime": { "type": "string", "description": "Runtime", @@ -54840,11 +54958,36 @@ "commands" ], "example": { + "variables": {}, "runtime": "node", "entrypoint": "index.js", "commands": "npm install && npm run build" } }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "x-example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "x-example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, "vcsContent": { "description": "VcsContents", "type": "object", diff --git a/app/config/specs/swagger2-1.8.x-server.json b/app/config/specs/swagger2-1.8.x-server.json index af417d5788..e760c1bb7d 100644 --- a/app/config/specs/swagger2-1.8.x-server.json +++ b/app/config/specs/swagger2-1.8.x-server.json @@ -7310,7 +7310,8 @@ "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -13171,11 +13172,24 @@ "default": null, "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the function template.", + "description": "Type for the reference provided. Can be commit, branch, or tag", "default": null, - "x-example": "" + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "" }, "activate": { "type": "boolean", @@ -13188,7 +13202,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -22989,11 +23004,24 @@ "default": null, "x-example": "" }, - "version": { + "type": { "type": "string", - "description": "Version (tag) for the repo linked to the site template.", + "description": "Type for the reference provided. Can be commit, branch, or tag", "default": null, - "x-example": "" + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "" }, "activate": { "type": "boolean", @@ -23006,7 +23034,8 @@ "repository", "owner", "rootDirectory", - "version" + "type", + "reference" ] } } @@ -24045,7 +24074,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "type": "array", "collectionFormat": "multi", @@ -24204,6 +24233,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -24405,6 +24440,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -26429,7 +26470,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": false, "x-example": false }, @@ -26922,7 +26963,8 @@ "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -42175,6 +42217,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -42189,7 +42236,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -42208,7 +42256,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { diff --git a/app/config/specs/swagger2-latest-console.json b/app/config/specs/swagger2-latest-console.json index efa5d9bdee..28a4f76c61 100644 --- a/app/config/specs/swagger2-latest-console.json +++ b/app/config/specs/swagger2-latest-console.json @@ -7851,7 +7851,8 @@ "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -33564,7 +33565,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "type": "array", "collectionFormat": "multi", @@ -33722,6 +33723,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -33921,6 +33928,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -36150,7 +36163,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": false, "x-example": false }, @@ -36638,7 +36651,8 @@ "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -53425,6 +53439,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -53439,7 +53458,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -53458,7 +53478,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { @@ -54651,6 +54672,17 @@ "type": "string", "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] } }, "required": [ @@ -54660,7 +54692,8 @@ "provider", "private", "defaultBranch", - "pushedAt" + "pushedAt", + "variables" ], "example": { "id": "5e5ea5c16897e", @@ -54669,7 +54702,11 @@ "provider": "github", "private": true, "defaultBranch": "main", - "pushedAt": "datetime" + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] } }, "providerRepositoryFramework": { @@ -54711,6 +54748,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "framework": { "type": "string", "description": "Auto-detected framework. Empty if type is not \"framework\".", @@ -54725,6 +54773,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "framework" ], "example": { @@ -54735,6 +54784,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "framework": "nextjs" } }, @@ -54777,6 +54830,17 @@ "description": "Last commit date in ISO 8601 format.", "x-example": "datetime" }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + }, "runtime": { "type": "string", "description": "Auto-detected runtime. Empty if type is not \"runtime\".", @@ -54791,6 +54855,7 @@ "private", "defaultBranch", "pushedAt", + "variables", "runtime" ], "example": { @@ -54801,6 +54866,10 @@ "private": true, "defaultBranch": "main", "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], "runtime": "node-22" } }, @@ -54808,6 +54877,16 @@ "description": "DetectionFramework", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "object", + "$ref": "#\/definitions\/detectionVariable" + }, + "x-example": {}, + "x-nullable": true + }, "framework": { "type": "string", "description": "Framework", @@ -54836,6 +54915,7 @@ "outputDirectory" ], "example": { + "variables": {}, "framework": "nuxt", "installCommand": "npm install", "buildCommand": "npm run build", @@ -54846,6 +54926,16 @@ "description": "DetectionRuntime", "type": "object", "properties": { + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "object", + "$ref": "#\/definitions\/detectionVariable" + }, + "x-example": {}, + "x-nullable": true + }, "runtime": { "type": "string", "description": "Runtime", @@ -54868,11 +54958,36 @@ "commands" ], "example": { + "variables": {}, "runtime": "node", "entrypoint": "index.js", "commands": "npm install && npm run build" } }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "x-example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "x-example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, "vcsContent": { "description": "VcsContents", "type": "object", diff --git a/app/config/specs/swagger2-latest-server.json b/app/config/specs/swagger2-latest-server.json index e48f00475a..e760c1bb7d 100644 --- a/app/config/specs/swagger2-latest-server.json +++ b/app/config/specs/swagger2-latest-server.json @@ -7310,7 +7310,8 @@ "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -24073,7 +24074,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "type": "array", "collectionFormat": "multi", @@ -24232,6 +24233,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -24433,6 +24440,12 @@ "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", "default": true, "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ @@ -26457,7 +26470,7 @@ }, "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": false, "x-example": false }, @@ -26950,7 +26963,8 @@ "type": "string", "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true }, "array": { "type": "boolean", @@ -42203,6 +42217,11 @@ "type": "boolean", "description": "Virus scanning is enabled.", "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "x-example": false } }, "required": [ @@ -42217,7 +42236,8 @@ "allowedFileExtensions", "compression", "encryption", - "antivirus" + "antivirus", + "transformations" ], "example": { "$id": "5e5ea5c16897e", @@ -42236,7 +42256,8 @@ ], "compression": "gzip", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } }, "resourceToken": { diff --git a/app/controllers/api/migrations.php b/app/controllers/api/migrations.php index 2d9890dcbb..be61b1d3e3 100644 --- a/app/controllers/api/migrations.php +++ b/app/controllers/api/migrations.php @@ -43,6 +43,14 @@ use Utopia\Validator\WhiteList; include_once __DIR__ . '/../shared/api.php'; +function getDatabaseTransferResourceServices(string $databaseType) +{ + return match($databaseType) { + DATABASE_LEGACY_TYPE, + DATABASE_TABLESDB_TYPE => Transfer::GROUP_DATABASES_TABLES_DB + }; +} + App::post('/v1/migrations/appwrite') ->groups(['api', 'migrations']) ->desc('Create Appwrite migration') @@ -415,8 +423,16 @@ App::post('/v1/migrations/csv/imports') throw new \Exception('Unable to copy file'); } + // getting databasetype + $resources = explode(':', $resourceId); + $databaseId = $resources[0]; + $database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId)); + $databaseType = $database->getAttribute('type'); + if (!in_array($databaseType, CSV_ALLOWED_DATABASE_TYPES)) { + throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Database type not supported for csv'); + } $fileSize = $deviceForMigrations->getFileSize($newPath); - $resources = Transfer::extractServices([Transfer::GROUP_DATABASES]); + $resources = Transfer::extractServices([getDatabaseTransferResourceServices($databaseType)]); $migration = $dbForProject->createDocument('migrations', new Document([ '$id' => $migrationId, @@ -540,13 +556,23 @@ App::post('/v1/migrations/csv/exports') throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription()); } + // getting databasetype + $resources = explode(':', $resourceId); + $databaseId = $resources[0]; + $database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId)); + $databaseType = $database->getAttribute('type'); + if (!in_array($databaseType, CSV_ALLOWED_DATABASE_TYPES)) { + throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Database type not supported for csv'); + } + $resources = Transfer::extractServices([getDatabaseTransferResourceServices($databaseType)]); + $migration = $dbForProject->createDocument('migrations', new Document([ '$id' => ID::unique(), 'status' => 'pending', 'stage' => 'init', 'source' => Appwrite::getName(), 'destination' => CSV::getName(), - 'resources' => Transfer::extractServices([Transfer::GROUP_DATABASES]), + 'resources' => $resources, 'resourceId' => $resourceId, 'resourceType' => Resource::TYPE_DATABASE, 'statusCounters' => '{}', diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index aaca6137e3..b973b18d44 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -86,10 +86,11 @@ App::post('/v1/storage/buckets') ->param('compression', Compression::NONE, new WhiteList([Compression::NONE, Compression::GZIP, Compression::ZSTD], true), 'Compression algorithm choosen for compression. Can be one of ' . Compression::NONE . ', [' . Compression::GZIP . '](https://en.wikipedia.org/wiki/Gzip), or [' . Compression::ZSTD . '](https://en.wikipedia.org/wiki/Zstd), For file size above ' . Storage::human(APP_STORAGE_READ_BUFFER, 0) . ' compression is skipped even if it\'s enabled', true) ->param('encryption', true, new Boolean(true), 'Is encryption enabled? For file size above ' . Storage::human(APP_STORAGE_READ_BUFFER, 0) . ' encryption is skipped even if it\'s enabled', true) ->param('antivirus', true, new Boolean(true), 'Is virus scanning enabled? For file size above ' . Storage::human(APP_LIMIT_ANTIVIRUS, 0) . ' AntiVirus scanning is skipped even if it\'s enabled', true) + ->param('transformations', true, new Boolean(true), 'Are image transformations enabled?', true) ->inject('response') ->inject('dbForProject') ->inject('queueForEvents') - ->action(function (string $bucketId, string $name, ?array $permissions, bool $fileSecurity, bool $enabled, int $maximumFileSize, array $allowedFileExtensions, ?string $compression, ?bool $encryption, bool $antivirus, Response $response, Database $dbForProject, Event $queueForEvents) { + ->action(function (string $bucketId, string $name, ?array $permissions, bool $fileSecurity, bool $enabled, int $maximumFileSize, array $allowedFileExtensions, ?string $compression, ?bool $encryption, bool $antivirus, bool $transformations, Response $response, Database $dbForProject, Event $queueForEvents) { $bucketId = $bucketId === 'unique()' ? ID::unique() : $bucketId; @@ -142,6 +143,7 @@ App::post('/v1/storage/buckets') 'compression' => $compression, 'encryption' => $encryption, 'antivirus' => $antivirus, + 'transformations' => $transformations, 'search' => implode(' ', [$bucketId, $name]), ])); @@ -299,10 +301,11 @@ App::put('/v1/storage/buckets/:bucketId') ->param('compression', Compression::NONE, new WhiteList([Compression::NONE, Compression::GZIP, Compression::ZSTD], true), 'Compression algorithm choosen for compression. Can be one of ' . Compression::NONE . ', [' . Compression::GZIP . '](https://en.wikipedia.org/wiki/Gzip), or [' . Compression::ZSTD . '](https://en.wikipedia.org/wiki/Zstd), For file size above ' . Storage::human(APP_STORAGE_READ_BUFFER, 0) . ' compression is skipped even if it\'s enabled', true) ->param('encryption', true, new Boolean(true), 'Is encryption enabled? For file size above ' . Storage::human(APP_STORAGE_READ_BUFFER, 0) . ' encryption is skipped even if it\'s enabled', true) ->param('antivirus', true, new Boolean(true), 'Is virus scanning enabled? For file size above ' . Storage::human(APP_LIMIT_ANTIVIRUS, 0) . ' AntiVirus scanning is skipped even if it\'s enabled', true) + ->param('transformations', true, new Boolean(true), 'Are image transformations enabled?', true) ->inject('response') ->inject('dbForProject') ->inject('queueForEvents') - ->action(function (string $bucketId, string $name, ?array $permissions, bool $fileSecurity, bool $enabled, ?int $maximumFileSize, array $allowedFileExtensions, ?string $compression, ?bool $encryption, bool $antivirus, Response $response, Database $dbForProject, Event $queueForEvents) { + ->action(function (string $bucketId, string $name, ?array $permissions, bool $fileSecurity, bool $enabled, ?int $maximumFileSize, array $allowedFileExtensions, ?string $compression, ?bool $encryption, bool $antivirus, bool $transformations, Response $response, Database $dbForProject, Event $queueForEvents) { $bucket = $dbForProject->getDocument('buckets', $bucketId); if ($bucket->isEmpty()) { @@ -316,6 +319,7 @@ App::put('/v1/storage/buckets/:bucketId') $encryption ??= $bucket->getAttribute('encryption', true); $antivirus ??= $bucket->getAttribute('antivirus', true); $compression ??= $bucket->getAttribute('compression', Compression::NONE); + $transformations ??= $bucket->getAttribute('transformations', true); // Map aggregate permissions into the multiple permissions they represent. $permissions = Permission::aggregate($permissions); @@ -329,7 +333,8 @@ App::put('/v1/storage/buckets/:bucketId') ->setAttribute('enabled', $enabled) ->setAttribute('encryption', $encryption) ->setAttribute('compression', $compression) - ->setAttribute('antivirus', $antivirus)); + ->setAttribute('antivirus', $antivirus) + ->setAttribute('transformations', $transformations)); $dbForProject->updateCollection('bucket_' . $bucket->getSequence(), $permissions, $fileSecurity); @@ -984,6 +989,10 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview') throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); } + if (!$bucket->getAttribute('transformations', true) && !$isAPIKey && !$isPrivilegedUser) { + throw new Exception(Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED); + } + $isToken = !$resourceToken->isEmpty() && $resourceToken->getAttribute('bucketInternalId') === $bucket->getSequence(); $fileSecurity = $bucket->getAttribute('fileSecurity', false); $validator = new Authorization(Database::PERMISSION_READ); diff --git a/app/controllers/api/vcs.php b/app/controllers/api/vcs.php index a6e72bf476..204957f485 100644 --- a/app/controllers/api/vcs.php +++ b/app/controllers/api/vcs.php @@ -14,9 +14,12 @@ use Appwrite\Utopia\Database\Validator\Queries\Installations; use Appwrite\Utopia\Request; use Appwrite\Utopia\Response; use Appwrite\Vcs\Comment; +use Swoole\Coroutine\WaitGroup; use Utopia\App; use Utopia\CLI\Console; +use Utopia\Config\Adapters\Dotenv as ConfigDotenv; use Utopia\Config\Config; +use Utopia\Config\Exceptions\Parse; use Utopia\Database\Database; use Utopia\Database\DateTime; use Utopia\Database\Document; @@ -963,6 +966,46 @@ App::post('/v1/vcs/github/installations/:installationId/detections') throw new Exception(Exception::FUNCTION_RUNTIME_NOT_DETECTED); } } + + $wg = new WaitGroup(); + $envs = []; + foreach ($files as $file) { + if (!(\str_starts_with($file, '.env'))) { + continue; + } + + $wg->add(); + go(function () use ($github, $owner, $repositoryName, $providerRootDirectory, $file, $wg, &$envs) { + try { + $contentResponse = $github->getRepositoryContent($owner, $repositoryName, \rtrim($providerRootDirectory, '/') . '/' . $file); + $envFile = $contentResponse['content'] ?? ''; + + $configAdapter = new ConfigDotenv(); + try { + $envObject = $configAdapter->parse($envFile); + foreach ($envObject as $envName => $envValue) { + $envs[$envName] = $envValue; + } + } catch (Parse $err) { + // Silence error, so rest of endpoint can return + } + } finally { + $wg->done(); + } + }); + } + $wg->wait(); + + $variables = []; + foreach ($envs as $key => $value) { + $variables[] = [ + 'name' => $key, + 'value' => $value, + ]; + } + + $output->setAttribute('variables', $variables); + $response->dynamic($output, $type === 'framework' ? Response::MODEL_DETECTION_FRAMEWORK : Response::MODEL_DETECTION_RUNTIME); }); @@ -1137,6 +1180,44 @@ App::get('/v1/vcs/github/installations/:installationId/providerRepositories') $repo['runtime'] = $runtimeWithVersion ?? ''; } } + + $wg = new WaitGroup(); + $envs = []; + foreach ($files as $file) { + if (!(\str_starts_with($file, '.env'))) { + continue; + } + + $wg->add(); + go(function () use ($github, $repo, $file, $wg, &$envs) { + try { + $contentResponse = $github->getRepositoryContent($repo['organization'], $repo['name'], $file); + $envFile = $contentResponse['content'] ?? ''; + + $configAdapter = new ConfigDotenv(); + try { + $envObject = $configAdapter->parse($envFile); + foreach ($envObject as $envName => $envValue) { + $envs[$envName] = $envValue; + } + } catch (Parse) { + // Silence error, so rest of endpoint can return + } + } finally { + $wg->done(); + } + }); + } + $wg->wait(); + + $repo['variables'] = []; + foreach ($envs as $key => $value) { + $repo['variables'][] = [ + 'name' => $key, + 'value' => $value, + ]; + } + return $repo; }; }, $repos)); diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index d6ceefb30a..e571eb1848 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -615,6 +615,10 @@ App::init() throw new Exception(Exception::STORAGE_BUCKET_NOT_FOUND); } + if (!$bucket->getAttribute('transformations', true) && !$isAppUser && !$isPrivilegedUser) { + throw new Exception(Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED); + } + $fileSecurity = $bucket->getAttribute('fileSecurity', false); $validator = new Authorization(Database::PERMISSION_READ); $valid = $validator->isValid($bucket->getRead()); diff --git a/app/init/configs.php b/app/init/configs.php index 7572302919..51242af578 100644 --- a/app/init/configs.php +++ b/app/init/configs.php @@ -1,42 +1,45 @@ =7.3" + "ext-yaml": "*", + "php": ">=8.0" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "vimeo/psalm": "4.0.1" + "laravel/pint": "1.2.*", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^9.3" }, "type": "library", "autoload": { @@ -3823,12 +3825,6 @@ "license": [ "MIT" ], - "authors": [ - { - "name": "Eldad Fux", - "email": "eldad@appwrite.io" - } - ], "description": "A simple Config library to managing application config variables", "keywords": [ "config", @@ -3839,9 +3835,9 @@ ], "support": { "issues": "https://github.com/utopia-php/config/issues", - "source": "https://github.com/utopia-php/config/tree/0.2.2" + "source": "https://github.com/utopia-php/config/tree/1.0.0" }, - "time": "2020-10-24T09:49:09+00:00" + "time": "2025-11-18T17:02:00+00:00" }, { "name": "utopia-php/console", @@ -3893,16 +3889,16 @@ }, { "name": "utopia-php/database", - "version": "3.4.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "e10b4faa4f3a3ef30a5f6d76acdb605469924aec" + "reference": "5da71b65a6123ce2e78795522b05b7458aabfbd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/e10b4faa4f3a3ef30a5f6d76acdb605469924aec", - "reference": "e10b4faa4f3a3ef30a5f6d76acdb605469924aec", + "url": "https://api.github.com/repos/utopia-php/database/zipball/5da71b65a6123ce2e78795522b05b7458aabfbd7", + "reference": "5da71b65a6123ce2e78795522b05b7458aabfbd7", "shasum": "" }, "require": { @@ -3945,9 +3941,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/3.4.0" + "source": "https://github.com/utopia-php/database/tree/3.5.0" }, - "time": "2025-11-13T06:34:20+00:00" + "time": "2025-11-18T08:11:01+00:00" }, { "name": "utopia-php/detector", @@ -4261,16 +4257,16 @@ }, { "name": "utopia-php/framework", - "version": "0.33.29", + "version": "0.33.30", "source": { "type": "git", "url": "https://github.com/utopia-php/http.git", - "reference": "6e63939fdb33b847f92839499cd6e8df626c278d" + "reference": "07cf699a7c47bd1a03b4da1812f1719a66b3c924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/http/zipball/6e63939fdb33b847f92839499cd6e8df626c278d", - "reference": "6e63939fdb33b847f92839499cd6e8df626c278d", + "url": "https://api.github.com/repos/utopia-php/http/zipball/07cf699a7c47bd1a03b4da1812f1719a66b3c924", + "reference": "07cf699a7c47bd1a03b4da1812f1719a66b3c924", "shasum": "" }, "require": { @@ -4302,9 +4298,9 @@ ], "support": { "issues": "https://github.com/utopia-php/http/issues", - "source": "https://github.com/utopia-php/http/tree/0.33.29" + "source": "https://github.com/utopia-php/http/tree/0.33.30" }, - "time": "2025-11-14T06:33:29+00:00" + "time": "2025-11-18T12:18:00+00:00" }, { "name": "utopia-php/image", @@ -4513,12 +4509,12 @@ "source": { "type": "git", "url": "https://github.com/utopia-php/migration.git", - "reference": "f5e175fa8da4bee6211dbeb4fe693a3eedb87672" + "reference": "105b48dcf2bc8a1a969497813f3d7d06231770e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/migration/zipball/f5e175fa8da4bee6211dbeb4fe693a3eedb87672", - "reference": "f5e175fa8da4bee6211dbeb4fe693a3eedb87672", + "url": "https://api.github.com/repos/utopia-php/migration/zipball/105b48dcf2bc8a1a969497813f3d7d06231770e6", + "reference": "105b48dcf2bc8a1a969497813f3d7d06231770e6", "shasum": "" }, "require": { @@ -4560,7 +4556,7 @@ "issues": "https://github.com/utopia-php/migration/issues", "source": "https://github.com/utopia-php/migration/tree/feat-documents-db" }, - "time": "2025-11-13T11:11:30+00:00" + "time": "2025-11-19T12:47:12+00:00" }, { "name": "utopia-php/mongo", @@ -5432,16 +5428,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.5.5", + "version": "1.5.7", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "1f3686e41a2d10829220b74f54c80a770e9f968a" + "reference": "dc6720ba92ed98e2c62b2a319d4371f167ccc808" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/1f3686e41a2d10829220b74f54c80a770e9f968a", - "reference": "1f3686e41a2d10829220b74f54c80a770e9f968a", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/dc6720ba92ed98e2c62b2a319d4371f167ccc808", + "reference": "dc6720ba92ed98e2c62b2a319d4371f167ccc808", "shasum": "" }, "require": { @@ -5477,9 +5473,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.5.5" + "source": "https://github.com/appwrite/sdk-generator/tree/1.5.7" }, - "time": "2025-11-14T05:56:33+00:00" + "time": "2025-11-18T05:57:01+00:00" }, { "name": "doctrine/annotations", @@ -8767,16 +8763,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "d74205c497bfbca49f34d4bc4c19c17e22db4ebb" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/d74205c497bfbca49f34d4bc4c19c17e22db4ebb", - "reference": "d74205c497bfbca49f34d4bc4c19c17e22db4ebb", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -8805,7 +8801,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.0" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -8813,7 +8809,7 @@ "type": "github" } ], - "time": "2025-11-13T13:44:09+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "twig/twig", diff --git a/docker-compose.override.yml b/docker-compose.override.yml deleted file mode 100644 index 52c5058ab9..0000000000 --- a/docker-compose.override.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - appwrite: - # volumes: - # - ~/.ssh:/root/.ssh - environment: - - GH_TOKEN= - - GIT_EMAIL= diff --git a/docs/examples/1.8.x/client-android/java/avatars/get-screenshot.md b/docs/examples/1.8.x/client-android/java/avatars/get-screenshot.md index 077716f523..48babdca20 100644 --- a/docs/examples/1.8.x/client-android/java/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/client-android/java/avatars/get-screenshot.md @@ -1,6 +1,9 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Avatars; +import io.appwrite.enums.Theme; +import io.appwrite.enums.Timezone; +import io.appwrite.enums.Output; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,11 +17,11 @@ avatars.getScreenshot( 1, // viewportWidth (optional) 1, // viewportHeight (optional) 0.1, // scale (optional) - theme.LIGHT, // theme (optional) + Theme.LIGHT, // theme (optional) "", // userAgent (optional) false, // fullpage (optional) "", // locale (optional) - timezone.AFRICA_ABIDJAN, // timezone (optional) + Timezone.AFRICA_ABIDJAN, // timezone (optional) -90, // latitude (optional) -180, // longitude (optional) 0, // accuracy (optional) @@ -28,7 +31,7 @@ avatars.getScreenshot( 0, // width (optional) 0, // height (optional) -1, // quality (optional) - output.JPG, // output (optional) + Output.JPG, // output (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/client-android/java/functions/create-execution.md b/docs/examples/1.8.x/client-android/java/functions/create-execution.md index 06c50278a5..758881d13c 100644 --- a/docs/examples/1.8.x/client-android/java/functions/create-execution.md +++ b/docs/examples/1.8.x/client-android/java/functions/create-execution.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Functions; +import io.appwrite.enums.ExecutionMethod; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-android/java/storage/get-file-preview.md b/docs/examples/1.8.x/client-android/java/storage/get-file-preview.md index 67b92ebf85..392ef11649 100644 --- a/docs/examples/1.8.x/client-android/java/storage/get-file-preview.md +++ b/docs/examples/1.8.x/client-android/java/storage/get-file-preview.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.enums.ImageGravity; +import io.appwrite.enums.ImageFormat; Client client = new Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-android/kotlin/avatars/get-screenshot.md b/docs/examples/1.8.x/client-android/kotlin/avatars/get-screenshot.md index 014ca90fd8..2638e9e6a5 100644 --- a/docs/examples/1.8.x/client-android/kotlin/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/client-android/kotlin/avatars/get-screenshot.md @@ -1,6 +1,9 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Avatars +import io.appwrite.enums.Theme +import io.appwrite.enums.Timezone +import io.appwrite.enums.Output val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-android/kotlin/functions/create-execution.md b/docs/examples/1.8.x/client-android/kotlin/functions/create-execution.md index 5e1950b8d9..8f7b49b849 100644 --- a/docs/examples/1.8.x/client-android/kotlin/functions/create-execution.md +++ b/docs/examples/1.8.x/client-android/kotlin/functions/create-execution.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Functions +import io.appwrite.enums.ExecutionMethod val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-android/kotlin/storage/get-file-preview.md b/docs/examples/1.8.x/client-android/kotlin/storage/get-file-preview.md index d766dc7174..a4841d53c4 100644 --- a/docs/examples/1.8.x/client-android/kotlin/storage/get-file-preview.md +++ b/docs/examples/1.8.x/client-android/kotlin/storage/get-file-preview.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.enums.ImageGravity +import io.appwrite.enums.ImageFormat val client = Client(context) .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-browser.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-browser.md index e97d24ab4f..50c28ff378 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-browser.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-browser.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getBrowser( +Uint8List bytes = await avatars.getBrowser( code: Browser.avantBrowser, width: 0, // optional height: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-credit-card.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-credit-card.md index 9ec42588b4..c3471fc2e8 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-credit-card.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-credit-card.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getCreditCard( +Uint8List bytes = await avatars.getCreditCard( code: CreditCard.americanExpress, width: 0, // optional height: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-favicon.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-favicon.md index 0df5ed0d2a..abd61a0974 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-favicon.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-favicon.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getFavicon( +Uint8List bytes = await avatars.getFavicon( url: 'https://example.com', ) diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-flag.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-flag.md index 99d43409a0..e5a4c60ba9 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-flag.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-flag.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getFlag( +Uint8List bytes = await avatars.getFlag( code: Flag.afghanistan, width: 0, // optional height: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-image.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-image.md index 5b9d1b58c1..bbfcc03885 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-image.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-image.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getImage( +Uint8List bytes = await avatars.getImage( url: 'https://example.com', width: 0, // optional height: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-initials.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-initials.md index 0c5b62a309..29940c17bf 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-initials.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-initials.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getInitials( +Uint8List bytes = await avatars.getInitials( name: '', // optional width: 0, // optional height: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-qr.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-qr.md index d9a533c886..0a75a6682f 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-qr.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-qr.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getQR( +Uint8List bytes = await avatars.getQR( text: '', size: 1, // optional margin: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/client-flutter/examples/avatars/get-screenshot.md index 768cb8f271..42a5ca7230 100644 --- a/docs/examples/1.8.x/client-flutter/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/client-flutter/examples/avatars/get-screenshot.md @@ -7,17 +7,17 @@ Client client = Client() Avatars avatars = Avatars(client); // Downloading file -UInt8List bytes = await avatars.getScreenshot( +Uint8List bytes = await avatars.getScreenshot( url: 'https://example.com', headers: {}, // optional viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: .light, // optional + theme: Theme.light, // optional userAgent: '', // optional fullpage: false, // optional locale: '', // optional - timezone: .africaAbidjan, // optional + timezone: Timezone.africaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -27,7 +27,7 @@ UInt8List bytes = await avatars.getScreenshot( width: 0, // optional height: 0, // optional quality: -1, // optional - output: .jpg, // optional + output: Output.jpg, // optional ) final file = File('path_to_file/filename.ext'); @@ -41,11 +41,11 @@ FutureBuilder( viewportWidth:1 , // optional viewportHeight:1 , // optional scale:0.1 , // optional - theme: .light, // optional + theme: Theme.light, // optional userAgent:'' , // optional fullpage:false , // optional locale:'' , // optional - timezone: .africaAbidjan, // optional + timezone: Timezone.africaAbidjan, // optional latitude:-90 , // optional longitude:-180 , // optional accuracy:0 , // optional @@ -55,7 +55,7 @@ FutureBuilder( width:0 , // optional height:0 , // optional quality:-1 , // optional - output: .jpg, // optional + output: Output.jpg, // optional ), // Works for both public file and private file, for private files you need to be logged in builder: (context, snapshot) { return snapshot.hasData && snapshot.data != null diff --git a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-download.md b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-download.md index 5bef06ee7d..2cdba9b1fa 100644 --- a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-download.md +++ b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-download.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); // Downloading file -UInt8List bytes = await storage.getFileDownload( +Uint8List bytes = await storage.getFileDownload( bucketId: '', fileId: '', token: '', // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-preview.md b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-preview.md index 96338bd25a..6fd148e935 100644 --- a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-preview.md +++ b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-preview.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); // Downloading file -UInt8List bytes = await storage.getFilePreview( +Uint8List bytes = await storage.getFilePreview( bucketId: '', fileId: '', width: 0, // optional diff --git a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-view.md b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-view.md index 6587f086bd..bcf5902c4e 100644 --- a/docs/examples/1.8.x/client-flutter/examples/storage/get-file-view.md +++ b/docs/examples/1.8.x/client-flutter/examples/storage/get-file-view.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); // Downloading file -UInt8List bytes = await storage.getFileView( +Uint8List bytes = await storage.getFileView( bucketId: '', fileId: '', token: '', // optional diff --git a/docs/examples/1.8.x/client-react-native/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/client-react-native/examples/avatars/get-screenshot.md index 7482b4cf0e..918ab667d6 100644 --- a/docs/examples/1.8.x/client-react-native/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/client-react-native/examples/avatars/get-screenshot.md @@ -1,4 +1,4 @@ -import { Client, Avatars, , , } from "react-native-appwrite"; +import { Client, Avatars, Theme, Timezone, Output } from "react-native-appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,11 +12,11 @@ const result = avatars.getScreenshot({ viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: .Light, // optional + theme: Theme.Light, // optional userAgent: '', // optional fullpage: false, // optional locale: '', // optional - timezone: .AfricaAbidjan, // optional + timezone: Timezone.AfricaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -26,7 +26,7 @@ const result = avatars.getScreenshot({ width: 0, // optional height: 0, // optional quality: -1, // optional - output: .Jpg // optional + output: Output.Jpg // optional }); console.log(result); diff --git a/docs/examples/1.8.x/client-web/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/client-web/examples/avatars/get-screenshot.md index c4722be633..75d6bcf80c 100644 --- a/docs/examples/1.8.x/client-web/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/client-web/examples/avatars/get-screenshot.md @@ -1,4 +1,4 @@ -import { Client, Avatars, , , } from "appwrite"; +import { Client, Avatars, Theme, Timezone, Output } from "appwrite"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,11 +12,11 @@ const result = avatars.getScreenshot({ viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: .Light, // optional + theme: Theme.Light, // optional userAgent: '', // optional fullpage: false, // optional locale: '', // optional - timezone: .AfricaAbidjan, // optional + timezone: Timezone.AfricaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -26,7 +26,7 @@ const result = avatars.getScreenshot({ width: 0, // optional height: 0, // optional quality: -1, // optional - output: .Jpg // optional + output: Output.Jpg // optional }); console.log(result); diff --git a/docs/examples/1.8.x/console-cli/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/console-cli/examples/functions/create-template-deployment.md index f3c8487cf7..72fa62b3c4 100644 --- a/docs/examples/1.8.x/console-cli/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/console-cli/examples/functions/create-template-deployment.md @@ -3,4 +3,5 @@ appwrite functions create-template-deployment \ --repository \ --owner \ --root-directory \ - --version + --type commit \ + --reference diff --git a/docs/examples/1.8.x/console-cli/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/console-cli/examples/sites/create-template-deployment.md index 2eece41976..5242534073 100644 --- a/docs/examples/1.8.x/console-cli/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/console-cli/examples/sites/create-template-deployment.md @@ -3,4 +3,5 @@ appwrite sites create-template-deployment \ --repository \ --owner \ --root-directory \ - --version + --type branch \ + --reference diff --git a/docs/examples/1.8.x/console-web/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/console-web/examples/avatars/get-screenshot.md index 3a9437515d..25ccc040f0 100644 --- a/docs/examples/1.8.x/console-web/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/console-web/examples/avatars/get-screenshot.md @@ -1,4 +1,4 @@ -import { Client, Avatars, , , } from "@appwrite.io/console"; +import { Client, Avatars, Theme, Timezone, Output } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,11 +12,11 @@ const result = avatars.getScreenshot({ viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: .Light, // optional + theme: Theme.Light, // optional userAgent: '', // optional fullpage: false, // optional locale: '', // optional - timezone: .AfricaAbidjan, // optional + timezone: Timezone.AfricaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -26,7 +26,7 @@ const result = avatars.getScreenshot({ width: 0, // optional height: 0, // optional quality: -1, // optional - output: .Jpg // optional + output: Output.Jpg // optional }); console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/console-web/examples/functions/create-template-deployment.md index 8820ba3565..5bf812c1bc 100644 --- a/docs/examples/1.8.x/console-web/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/console-web/examples/functions/create-template-deployment.md @@ -1,4 +1,4 @@ -import { Client, Functions } from "@appwrite.io/console"; +import { Client, Functions, } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,8 @@ const result = await functions.createTemplateDeployment({ repository: '', owner: '', rootDirectory: '', - version: '', + type: .Commit, + reference: '', activate: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/functions/create.md b/docs/examples/1.8.x/console-web/examples/functions/create.md index b3ebbaf5a4..695d929daf 100644 --- a/docs/examples/1.8.x/console-web/examples/functions/create.md +++ b/docs/examples/1.8.x/console-web/examples/functions/create.md @@ -1,4 +1,4 @@ -import { Client, Functions, } from "@appwrite.io/console"; +import { Client, Functions, Runtime } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +9,7 @@ const functions = new Functions(client); const result = await functions.create({ functionId: '', name: '', - runtime: .Node145, + runtime: Runtime.Node145, execute: ["any"], // optional events: [], // optional schedule: '', // optional diff --git a/docs/examples/1.8.x/console-web/examples/functions/update.md b/docs/examples/1.8.x/console-web/examples/functions/update.md index 377712bfb7..53fe85bf80 100644 --- a/docs/examples/1.8.x/console-web/examples/functions/update.md +++ b/docs/examples/1.8.x/console-web/examples/functions/update.md @@ -1,4 +1,4 @@ -import { Client, Functions, } from "@appwrite.io/console"; +import { Client, Functions, Runtime } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +9,7 @@ const functions = new Functions(client); const result = await functions.update({ functionId: '', name: '', - runtime: .Node145, // optional + runtime: Runtime.Node145, // optional execute: ["any"], // optional events: [], // optional schedule: '', // optional diff --git a/docs/examples/1.8.x/console-web/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/console-web/examples/health/get-failed-jobs.md index d0bac0cd6f..f47927214f 100644 --- a/docs/examples/1.8.x/console-web/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/console-web/examples/health/get-failed-jobs.md @@ -1,4 +1,4 @@ -import { Client, Health, } from "@appwrite.io/console"; +import { Client, Health, Name } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +7,7 @@ const client = new Client() const health = new Health(client); const result = await health.getFailedJobs({ - name: .V1Database, + name: Name.V1Database, threshold: null // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/projects/create.md b/docs/examples/1.8.x/console-web/examples/projects/create.md index 44abc021ef..2bfcaa79bb 100644 --- a/docs/examples/1.8.x/console-web/examples/projects/create.md +++ b/docs/examples/1.8.x/console-web/examples/projects/create.md @@ -1,4 +1,4 @@ -import { Client, Projects, } from "@appwrite.io/console"; +import { Client, Projects, Region } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,7 +10,7 @@ const result = await projects.create({ projectId: '', name: '', teamId: '', - region: .Default, // optional + region: Region.Default, // optional description: '', // optional logo: '', // optional url: 'https://example.com', // optional diff --git a/docs/examples/1.8.x/console-web/examples/projects/update-api-status.md b/docs/examples/1.8.x/console-web/examples/projects/update-api-status.md index 7ec06fee58..7f0f7ca970 100644 --- a/docs/examples/1.8.x/console-web/examples/projects/update-api-status.md +++ b/docs/examples/1.8.x/console-web/examples/projects/update-api-status.md @@ -1,4 +1,4 @@ -import { Client, Projects, } from "@appwrite.io/console"; +import { Client, Projects, Api } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +8,7 @@ const projects = new Projects(client); const result = await projects.updateAPIStatus({ projectId: '', - api: .Rest, + api: Api.Rest, status: false }); diff --git a/docs/examples/1.8.x/console-web/examples/proxy/create-redirect-rule.md b/docs/examples/1.8.x/console-web/examples/proxy/create-redirect-rule.md index 396d6dee58..83a98438ec 100644 --- a/docs/examples/1.8.x/console-web/examples/proxy/create-redirect-rule.md +++ b/docs/examples/1.8.x/console-web/examples/proxy/create-redirect-rule.md @@ -1,4 +1,4 @@ -import { Client, Proxy, , ProxyResourceType } from "@appwrite.io/console"; +import { Client, Proxy, StatusCode, ProxyResourceType } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +9,7 @@ const proxy = new Proxy(client); const result = await proxy.createRedirectRule({ domain: '', url: 'https://example.com', - statusCode: .MovedPermanently301, + statusCode: StatusCode.MovedPermanently301, resourceId: '', resourceType: ProxyResourceType.Site }); diff --git a/docs/examples/1.8.x/console-web/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/console-web/examples/sites/create-template-deployment.md index 969a0b855c..4f1d0184f7 100644 --- a/docs/examples/1.8.x/console-web/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/console-web/examples/sites/create-template-deployment.md @@ -1,4 +1,4 @@ -import { Client, Sites } from "@appwrite.io/console"; +import { Client, Sites, } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,7 +11,8 @@ const result = await sites.createTemplateDeployment({ repository: '', owner: '', rootDirectory: '', - version: '', + type: .Branch, + reference: '', activate: false // optional }); diff --git a/docs/examples/1.8.x/console-web/examples/sites/create.md b/docs/examples/1.8.x/console-web/examples/sites/create.md index bd4e2d1f08..e59139a1e2 100644 --- a/docs/examples/1.8.x/console-web/examples/sites/create.md +++ b/docs/examples/1.8.x/console-web/examples/sites/create.md @@ -1,4 +1,4 @@ -import { Client, Sites, , , } from "@appwrite.io/console"; +import { Client, Sites, Framework, BuildRuntime, Adapter } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,15 +9,15 @@ const sites = new Sites(client); const result = await sites.create({ siteId: '', name: '', - framework: .Analog, - buildRuntime: .Node145, + framework: Framework.Analog, + buildRuntime: BuildRuntime.Node145, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: '', // optional buildCommand: '', // optional outputDirectory: '', // optional - adapter: .Static, // optional + adapter: Adapter.Static, // optional installationId: '', // optional fallbackFile: '', // optional providerRepositoryId: '', // optional diff --git a/docs/examples/1.8.x/console-web/examples/sites/update.md b/docs/examples/1.8.x/console-web/examples/sites/update.md index 68bd073c50..c68fe2924b 100644 --- a/docs/examples/1.8.x/console-web/examples/sites/update.md +++ b/docs/examples/1.8.x/console-web/examples/sites/update.md @@ -1,4 +1,4 @@ -import { Client, Sites, , , } from "@appwrite.io/console"; +import { Client, Sites, Framework, BuildRuntime, Adapter } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,15 +9,15 @@ const sites = new Sites(client); const result = await sites.update({ siteId: '', name: '', - framework: .Analog, + framework: Framework.Analog, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: '', // optional buildCommand: '', // optional outputDirectory: '', // optional - buildRuntime: .Node145, // optional - adapter: .Static, // optional + buildRuntime: BuildRuntime.Node145, // optional + adapter: Adapter.Static, // optional fallbackFile: '', // optional installationId: '', // optional providerRepositoryId: '', // optional diff --git a/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md b/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md index 343568a408..9a067abbdb 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/console-web/examples/storage/create-bucket.md @@ -1,4 +1,4 @@ -import { Client, Storage, , Permission, Role } from "@appwrite.io/console"; +import { Client, Storage, Compression, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,9 +14,10 @@ const result = await storage.createBucket({ enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: [], // optional - compression: .None, // optional + compression: Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional }); console.log(result); diff --git a/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md b/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md index b2c2eaa885..2fffcaf085 100644 --- a/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/console-web/examples/storage/update-bucket.md @@ -1,4 +1,4 @@ -import { Client, Storage, , Permission, Role } from "@appwrite.io/console"; +import { Client, Storage, Compression, Permission, Role } from "@appwrite.io/console"; const client = new Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,9 +14,10 @@ const result = await storage.updateBucket({ enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: [], // optional - compression: .None, // optional + compression: Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional }); console.log(result); diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-browser.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-browser.md index 8d5287511d..1f326e8066 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-browser.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-browser.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getBrowser( +Uint8List result = await avatars.getBrowser( code: Browser.avantBrowser, width: 0, // (optional) height: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-credit-card.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-credit-card.md index 88fe35ebd9..8232d7b2b9 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-credit-card.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-credit-card.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getCreditCard( +Uint8List result = await avatars.getCreditCard( code: CreditCard.americanExpress, width: 0, // (optional) height: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-favicon.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-favicon.md index d4cd8eae83..e2df21f6fd 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-favicon.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-favicon.md @@ -7,6 +7,6 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getFavicon( +Uint8List result = await avatars.getFavicon( url: 'https://example.com', ); diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-flag.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-flag.md index 56046681bc..0aea028e5b 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-flag.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-flag.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getFlag( +Uint8List result = await avatars.getFlag( code: Flag.afghanistan, width: 0, // (optional) height: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-image.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-image.md index b6db1858c5..fc727f481e 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-image.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-image.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getImage( +Uint8List result = await avatars.getImage( url: 'https://example.com', width: 0, // (optional) height: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-initials.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-initials.md index 7dc0989b4d..be77c67147 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-initials.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-initials.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getInitials( +Uint8List result = await avatars.getInitials( name: '', // (optional) width: 0, // (optional) height: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-qr.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-qr.md index f64fe8a4ff..f44ce59076 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-qr.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-qr.md @@ -7,7 +7,7 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getQR( +Uint8List result = await avatars.getQR( text: '', size: 1, // (optional) margin: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/server-dart/examples/avatars/get-screenshot.md index 7630648f98..c787a82298 100644 --- a/docs/examples/1.8.x/server-dart/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-dart/examples/avatars/get-screenshot.md @@ -7,17 +7,17 @@ Client client = Client() Avatars avatars = Avatars(client); -UInt8List result = await avatars.getScreenshot( +Uint8List result = await avatars.getScreenshot( url: 'https://example.com', headers: {}, // (optional) viewportWidth: 1, // (optional) viewportHeight: 1, // (optional) scale: 0.1, // (optional) - theme: .light, // (optional) + theme: Theme.light, // (optional) userAgent: '', // (optional) fullpage: false, // (optional) locale: '', // (optional) - timezone: .africaAbidjan, // (optional) + timezone: Timezone.africaAbidjan, // (optional) latitude: -90, // (optional) longitude: -180, // (optional) accuracy: 0, // (optional) @@ -27,5 +27,5 @@ UInt8List result = await avatars.getScreenshot( width: 0, // (optional) height: 0, // (optional) quality: -1, // (optional) - output: .jpg, // (optional) + output: Output.jpg, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-dart/examples/functions/create-template-deployment.md index cc293b0c3b..bfd94b1963 100644 --- a/docs/examples/1.8.x/server-dart/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-dart/examples/functions/create-template-deployment.md @@ -12,6 +12,7 @@ Deployment result = await functions.createTemplateDeployment( repository: '', owner: '', rootDirectory: '', - version: '', + type: .commit, + reference: '', activate: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/functions/create.md b/docs/examples/1.8.x/server-dart/examples/functions/create.md index f3f2683000..2276872e91 100644 --- a/docs/examples/1.8.x/server-dart/examples/functions/create.md +++ b/docs/examples/1.8.x/server-dart/examples/functions/create.md @@ -10,7 +10,7 @@ Functions functions = Functions(client); Func result = await functions.create( functionId: '', name: '', - runtime: .node145, + runtime: Runtime.node145, execute: ["any"], // (optional) events: [], // (optional) schedule: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/functions/get-deployment-download.md b/docs/examples/1.8.x/server-dart/examples/functions/get-deployment-download.md index e7bbacf344..1b93e3bad9 100644 --- a/docs/examples/1.8.x/server-dart/examples/functions/get-deployment-download.md +++ b/docs/examples/1.8.x/server-dart/examples/functions/get-deployment-download.md @@ -7,7 +7,7 @@ Client client = Client() Functions functions = Functions(client); -UInt8List result = await functions.getDeploymentDownload( +Uint8List result = await functions.getDeploymentDownload( functionId: '', deploymentId: '', type: DeploymentDownloadType.source, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/functions/update.md b/docs/examples/1.8.x/server-dart/examples/functions/update.md index ebe3be8cc6..bf3e39cc56 100644 --- a/docs/examples/1.8.x/server-dart/examples/functions/update.md +++ b/docs/examples/1.8.x/server-dart/examples/functions/update.md @@ -10,7 +10,7 @@ Functions functions = Functions(client); Func result = await functions.update( functionId: '', name: '', - runtime: .node145, // (optional) + runtime: Runtime.node145, // (optional) execute: ["any"], // (optional) events: [], // (optional) schedule: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/server-dart/examples/health/get-failed-jobs.md index 6f80718f6b..b375c5793c 100644 --- a/docs/examples/1.8.x/server-dart/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-dart/examples/health/get-failed-jobs.md @@ -8,6 +8,6 @@ Client client = Client() Health health = Health(client); HealthQueue result = await health.getFailedJobs( - name: .v1Database, + name: Name.v1Database, threshold: 0, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-dart/examples/sites/create-template-deployment.md index 348b4652b6..93c9b1d283 100644 --- a/docs/examples/1.8.x/server-dart/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-dart/examples/sites/create-template-deployment.md @@ -12,6 +12,7 @@ Deployment result = await sites.createTemplateDeployment( repository: '', owner: '', rootDirectory: '', - version: '', + type: .branch, + reference: '', activate: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/sites/create.md b/docs/examples/1.8.x/server-dart/examples/sites/create.md index 448abab1df..e6ec4a6da8 100644 --- a/docs/examples/1.8.x/server-dart/examples/sites/create.md +++ b/docs/examples/1.8.x/server-dart/examples/sites/create.md @@ -10,15 +10,15 @@ Sites sites = Sites(client); Site result = await sites.create( siteId: '', name: '', - framework: .analog, - buildRuntime: .node145, + framework: Framework.analog, + buildRuntime: BuildRuntime.node145, enabled: false, // (optional) logging: false, // (optional) timeout: 1, // (optional) installCommand: '', // (optional) buildCommand: '', // (optional) outputDirectory: '', // (optional) - adapter: .static, // (optional) + adapter: Adapter.static, // (optional) installationId: '', // (optional) fallbackFile: '', // (optional) providerRepositoryId: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/sites/get-deployment-download.md b/docs/examples/1.8.x/server-dart/examples/sites/get-deployment-download.md index ad21070b8a..f6bbb3c35d 100644 --- a/docs/examples/1.8.x/server-dart/examples/sites/get-deployment-download.md +++ b/docs/examples/1.8.x/server-dart/examples/sites/get-deployment-download.md @@ -7,7 +7,7 @@ Client client = Client() Sites sites = Sites(client); -UInt8List result = await sites.getDeploymentDownload( +Uint8List result = await sites.getDeploymentDownload( siteId: '', deploymentId: '', type: DeploymentDownloadType.source, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/sites/update.md b/docs/examples/1.8.x/server-dart/examples/sites/update.md index c13acfb25b..2cfd68633b 100644 --- a/docs/examples/1.8.x/server-dart/examples/sites/update.md +++ b/docs/examples/1.8.x/server-dart/examples/sites/update.md @@ -10,15 +10,15 @@ Sites sites = Sites(client); Site result = await sites.update( siteId: '', name: '', - framework: .analog, + framework: Framework.analog, enabled: false, // (optional) logging: false, // (optional) timeout: 1, // (optional) installCommand: '', // (optional) buildCommand: '', // (optional) outputDirectory: '', // (optional) - buildRuntime: .node145, // (optional) - adapter: .static, // (optional) + buildRuntime: BuildRuntime.node145, // (optional) + adapter: Adapter.static, // (optional) fallbackFile: '', // (optional) installationId: '', // (optional) providerRepositoryId: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md index 79357d0e4a..3d306bd403 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/create-bucket.md @@ -17,7 +17,8 @@ Bucket result = await storage.createBucket( enabled: false, // (optional) maximumFileSize: 1, // (optional) allowedFileExtensions: [], // (optional) - compression: .none, // (optional) + compression: Compression.none, // (optional) encryption: false, // (optional) antivirus: false, // (optional) + transformations: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dart/examples/storage/get-file-download.md b/docs/examples/1.8.x/server-dart/examples/storage/get-file-download.md index 8c119c386c..34f40685fe 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/get-file-download.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/get-file-download.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); -UInt8List result = await storage.getFileDownload( +Uint8List result = await storage.getFileDownload( bucketId: '', fileId: '', token: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/get-file-preview.md b/docs/examples/1.8.x/server-dart/examples/storage/get-file-preview.md index a1f3c09b33..a14e12c630 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/get-file-preview.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/get-file-preview.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); -UInt8List result = await storage.getFilePreview( +Uint8List result = await storage.getFilePreview( bucketId: '', fileId: '', width: 0, // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/get-file-view.md b/docs/examples/1.8.x/server-dart/examples/storage/get-file-view.md index d48b51c19c..a1d9271f13 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/get-file-view.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/get-file-view.md @@ -7,7 +7,7 @@ Client client = Client() Storage storage = Storage(client); -UInt8List result = await storage.getFileView( +Uint8List result = await storage.getFileView( bucketId: '', fileId: '', token: '', // (optional) diff --git a/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md index f3eea941a3..e81b458600 100644 --- a/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-dart/examples/storage/update-bucket.md @@ -17,7 +17,8 @@ Bucket result = await storage.updateBucket( enabled: false, // (optional) maximumFileSize: 1, // (optional) allowedFileExtensions: [], // (optional) - compression: .none, // (optional) + compression: Compression.none, // (optional) encryption: false, // (optional) antivirus: false, // (optional) + transformations: false, // (optional) ); diff --git a/docs/examples/1.8.x/server-dotnet/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/server-dotnet/examples/avatars/get-screenshot.md index f5c3542a97..e2e5462484 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-dotnet/examples/avatars/get-screenshot.md @@ -16,11 +16,11 @@ byte[] result = await avatars.GetScreenshot( viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: .Light, // optional + theme: Theme.Light, // optional userAgent: "", // optional fullpage: false, // optional locale: "", // optional - timezone: .AfricaAbidjan, // optional + timezone: Timezone.AfricaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -30,5 +30,5 @@ byte[] result = await avatars.GetScreenshot( width: 0, // optional height: 0, // optional quality: -1, // optional - output: .Jpg // optional + output: Output.Jpg // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-dotnet/examples/functions/create-template-deployment.md index 019a9bf256..125eeda5cc 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-dotnet/examples/functions/create-template-deployment.md @@ -1,4 +1,5 @@ using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -14,6 +15,7 @@ Deployment result = await functions.CreateTemplateDeployment( repository: "", owner: "", rootDirectory: "", - version: "", + type: .Commit, + reference: "", activate: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/functions/create.md b/docs/examples/1.8.x/server-dotnet/examples/functions/create.md index 6e705228f1..7d26480d68 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/functions/create.md +++ b/docs/examples/1.8.x/server-dotnet/examples/functions/create.md @@ -13,7 +13,7 @@ Functions functions = new Functions(client); Function result = await functions.Create( functionId: "", name: "", - runtime: .Node145, + runtime: Runtime.Node145, execute: ["any"], // optional events: new List(), // optional schedule: "", // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/functions/update.md b/docs/examples/1.8.x/server-dotnet/examples/functions/update.md index 7160795f77..a41a0fd331 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/functions/update.md +++ b/docs/examples/1.8.x/server-dotnet/examples/functions/update.md @@ -13,7 +13,7 @@ Functions functions = new Functions(client); Function result = await functions.Update( functionId: "", name: "", - runtime: .Node145, // optional + runtime: Runtime.Node145, // optional execute: ["any"], // optional events: new List(), // optional schedule: "", // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/server-dotnet/examples/health/get-failed-jobs.md index 4d43479831..ee0aceaace 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-dotnet/examples/health/get-failed-jobs.md @@ -11,6 +11,6 @@ Client client = new Client() Health health = new Health(client); HealthQueue result = await health.GetFailedJobs( - name: .V1Database, + name: Name.V1Database, threshold: 0 // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-dotnet/examples/sites/create-template-deployment.md index 57f9a83d9c..9775cb659f 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-dotnet/examples/sites/create-template-deployment.md @@ -1,4 +1,5 @@ using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -14,6 +15,7 @@ Deployment result = await sites.CreateTemplateDeployment( repository: "", owner: "", rootDirectory: "", - version: "", + type: .Branch, + reference: "", activate: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/sites/create.md b/docs/examples/1.8.x/server-dotnet/examples/sites/create.md index 025adca41d..ed7360d5f2 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/sites/create.md +++ b/docs/examples/1.8.x/server-dotnet/examples/sites/create.md @@ -13,15 +13,15 @@ Sites sites = new Sites(client); Site result = await sites.Create( siteId: "", name: "", - framework: .Analog, - buildRuntime: .Node145, + framework: Framework.Analog, + buildRuntime: BuildRuntime.Node145, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: "", // optional buildCommand: "", // optional outputDirectory: "", // optional - adapter: .Static, // optional + adapter: Adapter.Static, // optional installationId: "", // optional fallbackFile: "", // optional providerRepositoryId: "", // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/sites/update.md b/docs/examples/1.8.x/server-dotnet/examples/sites/update.md index c25e3f6df9..32da483318 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/sites/update.md +++ b/docs/examples/1.8.x/server-dotnet/examples/sites/update.md @@ -13,15 +13,15 @@ Sites sites = new Sites(client); Site result = await sites.Update( siteId: "", name: "", - framework: .Analog, + framework: Framework.Analog, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: "", // optional buildCommand: "", // optional outputDirectory: "", // optional - buildRuntime: .Node145, // optional - adapter: .Static, // optional + buildRuntime: BuildRuntime.Node145, // optional + adapter: Adapter.Static, // optional fallbackFile: "", // optional installationId: "", // optional providerRepositoryId: "", // optional diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md index f009f694ad..758883e5ec 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/create-bucket.md @@ -18,7 +18,8 @@ Bucket result = await storage.CreateBucket( enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: new List(), // optional - compression: .None, // optional + compression: Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md index d41a45961c..7dfed901e7 100644 --- a/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-dotnet/examples/storage/update-bucket.md @@ -18,7 +18,8 @@ Bucket result = await storage.UpdateBucket( enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: new List(), // optional - compression: .None, // optional + compression: Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-go/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-go/examples/functions/create-template-deployment.md index 14f694ba4a..df9591f461 100644 --- a/docs/examples/1.8.x/server-go/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-go/examples/functions/create-template-deployment.md @@ -19,6 +19,7 @@ response, error := service.CreateTemplateDeployment( "", "", "", - "", + "commit", + "", functions.WithCreateTemplateDeploymentActivate(false), ) diff --git a/docs/examples/1.8.x/server-go/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-go/examples/sites/create-template-deployment.md index 483d3e79ff..85bf2a3cf6 100644 --- a/docs/examples/1.8.x/server-go/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-go/examples/sites/create-template-deployment.md @@ -19,6 +19,7 @@ response, error := service.CreateTemplateDeployment( "", "", "", - "", + "branch", + "", sites.WithCreateTemplateDeploymentActivate(false), ) diff --git a/docs/examples/1.8.x/server-go/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-go/examples/storage/create-bucket.md index 64e3c40191..7bec2acb68 100644 --- a/docs/examples/1.8.x/server-go/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-go/examples/storage/create-bucket.md @@ -25,4 +25,5 @@ response, error := service.CreateBucket( storage.WithCreateBucketCompression("none"), storage.WithCreateBucketEncryption(false), storage.WithCreateBucketAntivirus(false), + storage.WithCreateBucketTransformations(false), ) diff --git a/docs/examples/1.8.x/server-go/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-go/examples/storage/update-bucket.md index bb5f7aa76d..7092c688b1 100644 --- a/docs/examples/1.8.x/server-go/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-go/examples/storage/update-bucket.md @@ -25,4 +25,5 @@ response, error := service.UpdateBucket( storage.WithUpdateBucketCompression("none"), storage.WithUpdateBucketEncryption(false), storage.WithUpdateBucketAntivirus(false), + storage.WithUpdateBucketTransformations(false), ) diff --git a/docs/examples/1.8.x/server-graphql/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-graphql/examples/functions/create-template-deployment.md index 0ce968e5f4..9b0da7ec47 100644 --- a/docs/examples/1.8.x/server-graphql/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-graphql/examples/functions/create-template-deployment.md @@ -4,7 +4,8 @@ mutation { repository: "", owner: "", rootDirectory: "", - version: "", + type: "commit", + reference: "", activate: false ) { _id diff --git a/docs/examples/1.8.x/server-graphql/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-graphql/examples/sites/create-template-deployment.md index f63d8c5e5a..f528811cc3 100644 --- a/docs/examples/1.8.x/server-graphql/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-graphql/examples/sites/create-template-deployment.md @@ -4,7 +4,8 @@ mutation { repository: "", owner: "", rootDirectory: "", - version: "", + type: "branch", + reference: "", activate: false ) { _id diff --git a/docs/examples/1.8.x/server-graphql/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-graphql/examples/storage/create-bucket.md index 45d03802d2..fe54321f90 100644 --- a/docs/examples/1.8.x/server-graphql/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-graphql/examples/storage/create-bucket.md @@ -9,7 +9,8 @@ mutation { allowedFileExtensions: [], compression: "none", encryption: false, - antivirus: false + antivirus: false, + transformations: false ) { _id _createdAt @@ -23,5 +24,6 @@ mutation { compression encryption antivirus + transformations } } diff --git a/docs/examples/1.8.x/server-graphql/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-graphql/examples/storage/update-bucket.md index 8265a15a58..ab4dc776fa 100644 --- a/docs/examples/1.8.x/server-graphql/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-graphql/examples/storage/update-bucket.md @@ -9,7 +9,8 @@ mutation { allowedFileExtensions: [], compression: "none", encryption: false, - antivirus: false + antivirus: false, + transformations: false ) { _id _createdAt @@ -23,5 +24,6 @@ mutation { compression encryption antivirus + transformations } } diff --git a/docs/examples/1.8.x/server-kotlin/java/avatars/get-screenshot.md b/docs/examples/1.8.x/server-kotlin/java/avatars/get-screenshot.md index cf734af3b2..0f1cb9c2f0 100644 --- a/docs/examples/1.8.x/server-kotlin/java/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-kotlin/java/avatars/get-screenshot.md @@ -1,6 +1,9 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Avatars; +import io.appwrite.enums.Theme; +import io.appwrite.enums.Timezone; +import io.appwrite.enums.Output; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -15,11 +18,11 @@ avatars.getScreenshot( 1, // viewportWidth (optional) 1, // viewportHeight (optional) 0.1, // scale (optional) - .LIGHT, // theme (optional) + Theme.LIGHT, // theme (optional) "", // userAgent (optional) false, // fullpage (optional) "", // locale (optional) - .AFRICA_ABIDJAN, // timezone (optional) + Timezone.AFRICA_ABIDJAN, // timezone (optional) -90, // latitude (optional) -180, // longitude (optional) 0, // accuracy (optional) @@ -29,7 +32,7 @@ avatars.getScreenshot( 0, // width (optional) 0, // height (optional) -1, // quality (optional) - .JPG, // output (optional) + Output.JPG, // output (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/create-relationship-attribute.md b/docs/examples/1.8.x/server-kotlin/java/databases/create-relationship-attribute.md index a67f452647..580be890ba 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/create-relationship-attribute.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/create-relationship-attribute.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; import io.appwrite.enums.RelationshipType; +import io.appwrite.enums.RelationMutate; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/databases/update-relationship-attribute.md b/docs/examples/1.8.x/server-kotlin/java/databases/update-relationship-attribute.md index 8af20e91a9..998f0beb16 100644 --- a/docs/examples/1.8.x/server-kotlin/java/databases/update-relationship-attribute.md +++ b/docs/examples/1.8.x/server-kotlin/java/databases/update-relationship-attribute.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Databases; +import io.appwrite.enums.RelationMutate; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/functions/create-execution.md b/docs/examples/1.8.x/server-kotlin/java/functions/create-execution.md index 93efa0adf8..4abfe236b3 100644 --- a/docs/examples/1.8.x/server-kotlin/java/functions/create-execution.md +++ b/docs/examples/1.8.x/server-kotlin/java/functions/create-execution.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Functions; +import io.appwrite.enums.ExecutionMethod; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/functions/create-template-deployment.md b/docs/examples/1.8.x/server-kotlin/java/functions/create-template-deployment.md index 53b5a9ae6a..9a0642b04e 100644 --- a/docs/examples/1.8.x/server-kotlin/java/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-kotlin/java/functions/create-template-deployment.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Functions; +import io.appwrite.enums.Type; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +15,8 @@ functions.createTemplateDeployment( "", // repository "", // owner "", // rootDirectory - "", // version + .COMMIT, // type + "", // reference false, // activate (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/functions/create.md b/docs/examples/1.8.x/server-kotlin/java/functions/create.md index 71871287bb..587fd54b9b 100644 --- a/docs/examples/1.8.x/server-kotlin/java/functions/create.md +++ b/docs/examples/1.8.x/server-kotlin/java/functions/create.md @@ -13,7 +13,7 @@ Functions functions = new Functions(client); functions.create( "", // functionId "", // name - .NODE_14_5, // runtime + Runtime.NODE_14_5, // runtime listOf("any"), // execute (optional) listOf(), // events (optional) "", // schedule (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/functions/get-deployment-download.md b/docs/examples/1.8.x/server-kotlin/java/functions/get-deployment-download.md index d522b12caf..2b6d38a787 100644 --- a/docs/examples/1.8.x/server-kotlin/java/functions/get-deployment-download.md +++ b/docs/examples/1.8.x/server-kotlin/java/functions/get-deployment-download.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Functions; +import io.appwrite.enums.DeploymentDownloadType; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/functions/update.md b/docs/examples/1.8.x/server-kotlin/java/functions/update.md index 5956c57b73..5cb560e200 100644 --- a/docs/examples/1.8.x/server-kotlin/java/functions/update.md +++ b/docs/examples/1.8.x/server-kotlin/java/functions/update.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Functions; +import io.appwrite.enums.Runtime; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +13,7 @@ Functions functions = new Functions(client); functions.update( "", // functionId "", // name - .NODE_14_5, // runtime (optional) + Runtime.NODE_14_5, // runtime (optional) listOf("any"), // execute (optional) listOf(), // events (optional) "", // schedule (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/health/get-failed-jobs.md b/docs/examples/1.8.x/server-kotlin/java/health/get-failed-jobs.md index d2b81bd0bf..0495e265e6 100644 --- a/docs/examples/1.8.x/server-kotlin/java/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-kotlin/java/health/get-failed-jobs.md @@ -11,7 +11,7 @@ Client client = new Client() Health health = new Health(client); health.getFailedJobs( - .V1_DATABASE, // name + Name.V1_DATABASE, // name 0, // threshold (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/create-push.md b/docs/examples/1.8.x/server-kotlin/java/messaging/create-push.md index 14e8ca2679..94119e6a93 100644 --- a/docs/examples/1.8.x/server-kotlin/java/messaging/create-push.md +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/create-push.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Messaging; +import io.appwrite.enums.MessagePriority; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/create-smtp-provider.md b/docs/examples/1.8.x/server-kotlin/java/messaging/create-smtp-provider.md index 1f1a0f998f..966436e3c1 100644 --- a/docs/examples/1.8.x/server-kotlin/java/messaging/create-smtp-provider.md +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/create-smtp-provider.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Messaging; +import io.appwrite.enums.SmtpEncryption; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/update-push.md b/docs/examples/1.8.x/server-kotlin/java/messaging/update-push.md index ce56683674..80ad6fcd30 100644 --- a/docs/examples/1.8.x/server-kotlin/java/messaging/update-push.md +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/update-push.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Messaging; +import io.appwrite.enums.MessagePriority; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/messaging/update-smtp-provider.md b/docs/examples/1.8.x/server-kotlin/java/messaging/update-smtp-provider.md index 36f120033a..c8ab7571ce 100644 --- a/docs/examples/1.8.x/server-kotlin/java/messaging/update-smtp-provider.md +++ b/docs/examples/1.8.x/server-kotlin/java/messaging/update-smtp-provider.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Messaging; +import io.appwrite.enums.SmtpEncryption; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/sites/create-template-deployment.md b/docs/examples/1.8.x/server-kotlin/java/sites/create-template-deployment.md index 63aba4a067..a501461a2c 100644 --- a/docs/examples/1.8.x/server-kotlin/java/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-kotlin/java/sites/create-template-deployment.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Sites; +import io.appwrite.enums.Type; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,7 +15,8 @@ sites.createTemplateDeployment( "", // repository "", // owner "", // rootDirectory - "", // version + .BRANCH, // type + "", // reference false, // activate (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/docs/examples/1.8.x/server-kotlin/java/sites/create.md b/docs/examples/1.8.x/server-kotlin/java/sites/create.md index 19664ec57b..11e0dbba6f 100644 --- a/docs/examples/1.8.x/server-kotlin/java/sites/create.md +++ b/docs/examples/1.8.x/server-kotlin/java/sites/create.md @@ -3,6 +3,7 @@ import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Sites; import io.appwrite.enums.Framework; import io.appwrite.enums.BuildRuntime; +import io.appwrite.enums.Adapter; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,15 +15,15 @@ Sites sites = new Sites(client); sites.create( "", // siteId "", // name - .ANALOG, // framework - .NODE_14_5, // buildRuntime + Framework.ANALOG, // framework + BuildRuntime.NODE_14_5, // buildRuntime false, // enabled (optional) false, // logging (optional) 1, // timeout (optional) "", // installCommand (optional) "", // buildCommand (optional) "", // outputDirectory (optional) - .STATIC, // adapter (optional) + Adapter.STATIC, // adapter (optional) "", // installationId (optional) "", // fallbackFile (optional) "", // providerRepositoryId (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/sites/get-deployment-download.md b/docs/examples/1.8.x/server-kotlin/java/sites/get-deployment-download.md index 5875c7262f..ce26ba8cca 100644 --- a/docs/examples/1.8.x/server-kotlin/java/sites/get-deployment-download.md +++ b/docs/examples/1.8.x/server-kotlin/java/sites/get-deployment-download.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Sites; +import io.appwrite.enums.DeploymentDownloadType; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/sites/update.md b/docs/examples/1.8.x/server-kotlin/java/sites/update.md index 9a8b577ce0..0c4024b841 100644 --- a/docs/examples/1.8.x/server-kotlin/java/sites/update.md +++ b/docs/examples/1.8.x/server-kotlin/java/sites/update.md @@ -2,6 +2,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Sites; import io.appwrite.enums.Framework; +import io.appwrite.enums.BuildRuntime; +import io.appwrite.enums.Adapter; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,15 +15,15 @@ Sites sites = new Sites(client); sites.update( "", // siteId "", // name - .ANALOG, // framework + Framework.ANALOG, // framework false, // enabled (optional) false, // logging (optional) 1, // timeout (optional) "", // installCommand (optional) "", // buildCommand (optional) "", // outputDirectory (optional) - .NODE_14_5, // buildRuntime (optional) - .STATIC, // adapter (optional) + BuildRuntime.NODE_14_5, // buildRuntime (optional) + Adapter.STATIC, // adapter (optional) "", // fallbackFile (optional) "", // installationId (optional) "", // providerRepositoryId (optional) diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md b/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md index d48db24094..b228408933 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/create-bucket.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.enums.Compression; import io.appwrite.Permission; import io.appwrite.Role; @@ -19,9 +20,10 @@ storage.createBucket( false, // enabled (optional) 1, // maximumFileSize (optional) listOf(), // allowedFileExtensions (optional) - .NONE, // compression (optional) + Compression.NONE, // compression (optional) false, // encryption (optional) false, // antivirus (optional) + false, // transformations (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/get-file-preview.md b/docs/examples/1.8.x/server-kotlin/java/storage/get-file-preview.md index 1a0ab596bc..61f7637256 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/get-file-preview.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/get-file-preview.md @@ -1,6 +1,8 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.enums.ImageGravity; +import io.appwrite.enums.ImageFormat; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md b/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md index 586b113578..26758cf19a 100644 --- a/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/java/storage/update-bucket.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Storage; +import io.appwrite.enums.Compression; import io.appwrite.Permission; import io.appwrite.Role; @@ -19,9 +20,10 @@ storage.updateBucket( false, // enabled (optional) 1, // maximumFileSize (optional) listOf(), // allowedFileExtensions (optional) - .NONE, // compression (optional) + Compression.NONE, // compression (optional) false, // encryption (optional) false, // antivirus (optional) + false, // transformations (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-relationship-column.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-relationship-column.md index 956c1fa516..c7a3a5f288 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-relationship-column.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/create-relationship-column.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; import io.appwrite.enums.RelationshipType; +import io.appwrite.enums.RelationMutate; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-relationship-column.md b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-relationship-column.md index 45aea8ae41..eaf6b1ba52 100644 --- a/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-relationship-column.md +++ b/docs/examples/1.8.x/server-kotlin/java/tablesdb/update-relationship-column.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.TablesDB; +import io.appwrite.enums.RelationMutate; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/java/users/create-sha-user.md b/docs/examples/1.8.x/server-kotlin/java/users/create-sha-user.md index ad729071c2..3a37ddce95 100644 --- a/docs/examples/1.8.x/server-kotlin/java/users/create-sha-user.md +++ b/docs/examples/1.8.x/server-kotlin/java/users/create-sha-user.md @@ -1,6 +1,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Users; +import io.appwrite.enums.PasswordHash; Client client = new Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/avatars/get-screenshot.md b/docs/examples/1.8.x/server-kotlin/kotlin/avatars/get-screenshot.md index 96032bb8a4..eca5493c57 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/avatars/get-screenshot.md @@ -1,6 +1,9 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Avatars +import io.appwrite.enums.Theme +import io.appwrite.enums.Timezone +import io.appwrite.enums.Output val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-relationship-attribute.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-relationship-attribute.md index 1bf610321a..48389f529d 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-relationship-attribute.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/create-relationship-attribute.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases import io.appwrite.enums.RelationshipType +import io.appwrite.enums.RelationMutate val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-relationship-attribute.md b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-relationship-attribute.md index 001dd1a391..baf69e3602 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-relationship-attribute.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/databases/update-relationship-attribute.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Databases +import io.appwrite.enums.RelationMutate val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-execution.md b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-execution.md index 2734412232..9458be08e0 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-execution.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-execution.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Functions +import io.appwrite.enums.ExecutionMethod val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-template-deployment.md b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-template-deployment.md index 90c311ec7a..b8eb44b4fa 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create-template-deployment.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Functions +import io.appwrite.enums.Type val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ val response = functions.createTemplateDeployment( repository = "", owner = "", rootDirectory = "", - version = "", + type = .COMMIT, + reference = "", activate = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create.md b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create.md index c0ea4de201..de5b191b3f 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/functions/create.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/functions/create.md @@ -13,7 +13,7 @@ val functions = Functions(client) val response = functions.create( functionId = "", name = "", - runtime = .NODE_14_5, + runtime = Runtime.NODE_14_5, execute = listOf("any"), // optional events = listOf(), // optional schedule = "", // optional diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/functions/get-deployment-download.md b/docs/examples/1.8.x/server-kotlin/kotlin/functions/get-deployment-download.md index 634cfae3b4..8a16397dc9 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/functions/get-deployment-download.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/functions/get-deployment-download.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Functions +import io.appwrite.enums.DeploymentDownloadType val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/functions/update.md b/docs/examples/1.8.x/server-kotlin/kotlin/functions/update.md index 7f0b33ebd7..1b7db783c1 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/functions/update.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/functions/update.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Functions +import io.appwrite.enums.Runtime val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/health/get-failed-jobs.md b/docs/examples/1.8.x/server-kotlin/kotlin/health/get-failed-jobs.md index 027df127cc..646d9b368d 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/health/get-failed-jobs.md @@ -11,6 +11,6 @@ val client = Client() val health = Health(client) val response = health.getFailedJobs( - name = .V1_DATABASE, + name = Name.V1_DATABASE, threshold = 0 // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-push.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-push.md index d0d765a32a..e17406915c 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-push.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-push.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Messaging +import io.appwrite.enums.MessagePriority val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-smtp-provider.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-smtp-provider.md index ce50130e80..c7dca02027 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-smtp-provider.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/create-smtp-provider.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Messaging +import io.appwrite.enums.SmtpEncryption val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-push.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-push.md index 0b9c4c6535..5e2c77d569 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-push.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-push.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Messaging +import io.appwrite.enums.MessagePriority val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-smtp-provider.md b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-smtp-provider.md index 7652e53166..66900e747d 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-smtp-provider.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/messaging/update-smtp-provider.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Messaging +import io.appwrite.enums.SmtpEncryption val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/sites/create-template-deployment.md b/docs/examples/1.8.x/server-kotlin/kotlin/sites/create-template-deployment.md index bf246be089..1f3d7d386a 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/sites/create-template-deployment.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Sites +import io.appwrite.enums.Type val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ val response = sites.createTemplateDeployment( repository = "", owner = "", rootDirectory = "", - version = "", + type = .BRANCH, + reference = "", activate = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/sites/create.md b/docs/examples/1.8.x/server-kotlin/kotlin/sites/create.md index a5e9719faf..8df2d0709f 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/sites/create.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/sites/create.md @@ -3,6 +3,7 @@ import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Sites import io.appwrite.enums.Framework import io.appwrite.enums.BuildRuntime +import io.appwrite.enums.Adapter val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,8 +15,8 @@ val sites = Sites(client) val response = sites.create( siteId = "", name = "", - framework = .ANALOG, - buildRuntime = .NODE_14_5, + framework = Framework.ANALOG, + buildRuntime = BuildRuntime.NODE_14_5, enabled = false, // optional logging = false, // optional timeout = 1, // optional diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/sites/get-deployment-download.md b/docs/examples/1.8.x/server-kotlin/kotlin/sites/get-deployment-download.md index 84324762cc..a313a5de7e 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/sites/get-deployment-download.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/sites/get-deployment-download.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Sites +import io.appwrite.enums.DeploymentDownloadType val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/sites/update.md b/docs/examples/1.8.x/server-kotlin/kotlin/sites/update.md index 4b4a938d95..ee6f7db73f 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/sites/update.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/sites/update.md @@ -2,6 +2,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Sites import io.appwrite.enums.Framework +import io.appwrite.enums.BuildRuntime +import io.appwrite.enums.Adapter val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,7 +15,7 @@ val sites = Sites(client) val response = sites.update( siteId = "", name = "", - framework = .ANALOG, + framework = Framework.ANALOG, enabled = false, // optional logging = false, // optional timeout = 1, // optional diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md index 872932eeff..9fb0913865 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/create-bucket.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.enums.Compression import io.appwrite.Permission import io.appwrite.Role @@ -21,5 +22,6 @@ val response = storage.createBucket( allowedFileExtensions = listOf(), // optional compression = "none", // optional encryption = false, // optional - antivirus = false // optional + antivirus = false, // optional + transformations = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/get-file-preview.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/get-file-preview.md index 45122de2f8..7b39d85cfa 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/get-file-preview.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/get-file-preview.md @@ -1,6 +1,8 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.enums.ImageGravity +import io.appwrite.enums.ImageFormat val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md index cb8187343e..74de079df6 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/storage/update-bucket.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Storage +import io.appwrite.enums.Compression import io.appwrite.Permission import io.appwrite.Role @@ -21,5 +22,6 @@ val response = storage.updateBucket( allowedFileExtensions = listOf(), // optional compression = "none", // optional encryption = false, // optional - antivirus = false // optional + antivirus = false, // optional + transformations = false // optional ) diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-relationship-column.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-relationship-column.md index fbdf36532f..3ece593a96 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-relationship-column.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/create-relationship-column.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB import io.appwrite.enums.RelationshipType +import io.appwrite.enums.RelationMutate val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-relationship-column.md b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-relationship-column.md index f69defd8ec..357a57cd11 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-relationship-column.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/tablesdb/update-relationship-column.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.TablesDB +import io.appwrite.enums.RelationMutate val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-kotlin/kotlin/users/create-sha-user.md b/docs/examples/1.8.x/server-kotlin/kotlin/users/create-sha-user.md index 17a157b2cd..b286f8a554 100644 --- a/docs/examples/1.8.x/server-kotlin/kotlin/users/create-sha-user.md +++ b/docs/examples/1.8.x/server-kotlin/kotlin/users/create-sha-user.md @@ -1,6 +1,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Users +import io.appwrite.enums.PasswordHash val client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint diff --git a/docs/examples/1.8.x/server-nodejs/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/server-nodejs/examples/avatars/get-screenshot.md index 5f7b40cece..60a38988cb 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-nodejs/examples/avatars/get-screenshot.md @@ -13,11 +13,11 @@ const result = await avatars.getScreenshot({ viewportWidth: 1, // optional viewportHeight: 1, // optional scale: 0.1, // optional - theme: sdk..Light, // optional + theme: sdk.Theme.Light, // optional userAgent: '', // optional fullpage: false, // optional locale: '', // optional - timezone: sdk..AfricaAbidjan, // optional + timezone: sdk.Timezone.AfricaAbidjan, // optional latitude: -90, // optional longitude: -180, // optional accuracy: 0, // optional @@ -27,5 +27,5 @@ const result = await avatars.getScreenshot({ width: 0, // optional height: 0, // optional quality: -1, // optional - output: sdk..Jpg // optional + output: sdk.Output.Jpg // optional }); diff --git a/docs/examples/1.8.x/server-nodejs/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-nodejs/examples/functions/create-template-deployment.md index 8f6395f8fb..999c029f8f 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-nodejs/examples/functions/create-template-deployment.md @@ -12,6 +12,7 @@ const result = await functions.createTemplateDeployment({ repository: '', owner: '', rootDirectory: '', - version: '', + type: sdk..Commit, + reference: '', activate: false // optional }); diff --git a/docs/examples/1.8.x/server-nodejs/examples/functions/create.md b/docs/examples/1.8.x/server-nodejs/examples/functions/create.md index d9f21ff796..37ac89dc5a 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/functions/create.md +++ b/docs/examples/1.8.x/server-nodejs/examples/functions/create.md @@ -10,7 +10,7 @@ const functions = new sdk.Functions(client); const result = await functions.create({ functionId: '', name: '', - runtime: sdk..Node145, + runtime: sdk.Runtime.Node145, execute: ["any"], // optional events: [], // optional schedule: '', // optional diff --git a/docs/examples/1.8.x/server-nodejs/examples/functions/update.md b/docs/examples/1.8.x/server-nodejs/examples/functions/update.md index 8ed2828f56..60653b5b77 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/functions/update.md +++ b/docs/examples/1.8.x/server-nodejs/examples/functions/update.md @@ -10,7 +10,7 @@ const functions = new sdk.Functions(client); const result = await functions.update({ functionId: '', name: '', - runtime: sdk..Node145, // optional + runtime: sdk.Runtime.Node145, // optional execute: ["any"], // optional events: [], // optional schedule: '', // optional diff --git a/docs/examples/1.8.x/server-nodejs/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/server-nodejs/examples/health/get-failed-jobs.md index bf77aa26d8..32c03426b8 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-nodejs/examples/health/get-failed-jobs.md @@ -8,6 +8,6 @@ const client = new sdk.Client() const health = new sdk.Health(client); const result = await health.getFailedJobs({ - name: sdk..V1Database, + name: sdk.Name.V1Database, threshold: null // optional }); diff --git a/docs/examples/1.8.x/server-nodejs/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-nodejs/examples/sites/create-template-deployment.md index 7dfb4370e6..dc9736fa80 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-nodejs/examples/sites/create-template-deployment.md @@ -12,6 +12,7 @@ const result = await sites.createTemplateDeployment({ repository: '', owner: '', rootDirectory: '', - version: '', + type: sdk..Branch, + reference: '', activate: false // optional }); diff --git a/docs/examples/1.8.x/server-nodejs/examples/sites/create.md b/docs/examples/1.8.x/server-nodejs/examples/sites/create.md index 25c6715748..397d2d3934 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/sites/create.md +++ b/docs/examples/1.8.x/server-nodejs/examples/sites/create.md @@ -10,15 +10,15 @@ const sites = new sdk.Sites(client); const result = await sites.create({ siteId: '', name: '', - framework: sdk..Analog, - buildRuntime: sdk..Node145, + framework: sdk.Framework.Analog, + buildRuntime: sdk.BuildRuntime.Node145, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: '', // optional buildCommand: '', // optional outputDirectory: '', // optional - adapter: sdk..Static, // optional + adapter: sdk.Adapter.Static, // optional installationId: '', // optional fallbackFile: '', // optional providerRepositoryId: '', // optional diff --git a/docs/examples/1.8.x/server-nodejs/examples/sites/update.md b/docs/examples/1.8.x/server-nodejs/examples/sites/update.md index 5cb52f7a3c..1a919f5d38 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/sites/update.md +++ b/docs/examples/1.8.x/server-nodejs/examples/sites/update.md @@ -10,15 +10,15 @@ const sites = new sdk.Sites(client); const result = await sites.update({ siteId: '', name: '', - framework: sdk..Analog, + framework: sdk.Framework.Analog, enabled: false, // optional logging: false, // optional timeout: 1, // optional installCommand: '', // optional buildCommand: '', // optional outputDirectory: '', // optional - buildRuntime: sdk..Node145, // optional - adapter: sdk..Static, // optional + buildRuntime: sdk.BuildRuntime.Node145, // optional + adapter: sdk.Adapter.Static, // optional fallbackFile: '', // optional installationId: '', // optional providerRepositoryId: '', // optional diff --git a/docs/examples/1.8.x/server-nodejs/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-nodejs/examples/storage/create-bucket.md index b47d2c8353..7ef4befcc0 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-nodejs/examples/storage/create-bucket.md @@ -15,7 +15,8 @@ const result = await storage.createBucket({ enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: [], // optional - compression: sdk..None, // optional + compression: sdk.Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional }); diff --git a/docs/examples/1.8.x/server-nodejs/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-nodejs/examples/storage/update-bucket.md index 9535914eeb..d528a77979 100644 --- a/docs/examples/1.8.x/server-nodejs/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-nodejs/examples/storage/update-bucket.md @@ -15,7 +15,8 @@ const result = await storage.updateBucket({ enabled: false, // optional maximumFileSize: 1, // optional allowedFileExtensions: [], // optional - compression: sdk..None, // optional + compression: sdk.Compression.None, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional }); diff --git a/docs/examples/1.8.x/server-php/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-php/examples/functions/create-template-deployment.md index 9d22bdc1b4..5888396312 100644 --- a/docs/examples/1.8.x/server-php/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-php/examples/functions/create-template-deployment.md @@ -2,6 +2,7 @@ use Appwrite\Client; use Appwrite\Services\Functions; +use Appwrite\Enums\Type; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +16,7 @@ $result = $functions->createTemplateDeployment( repository: '', owner: '', rootDirectory: '', - version: '', + type: Type::COMMIT(), + reference: '', activate: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-php/examples/sites/create-template-deployment.md index f2d1f3cd8b..314ffdd1b9 100644 --- a/docs/examples/1.8.x/server-php/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-php/examples/sites/create-template-deployment.md @@ -2,6 +2,7 @@ use Appwrite\Client; use Appwrite\Services\Sites; +use Appwrite\Enums\Type; $client = (new Client()) ->setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +16,7 @@ $result = $sites->createTemplateDeployment( repository: '', owner: '', rootDirectory: '', - version: '', + type: Type::BRANCH(), + reference: '', activate: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md index 3d4f717e4d..31840957a2 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-php/examples/storage/create-bucket.md @@ -23,5 +23,6 @@ $result = $storage->createBucket( allowedFileExtensions: [], // optional compression: Compression::NONE(), // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md index 77f4262c2d..1556257849 100644 --- a/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-php/examples/storage/update-bucket.md @@ -23,5 +23,6 @@ $result = $storage->updateBucket( allowedFileExtensions: [], // optional compression: Compression::NONE(), // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ); \ No newline at end of file diff --git a/docs/examples/1.8.x/server-python/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/server-python/examples/avatars/get-screenshot.md index 34bdf8ac7a..fe7073eceb 100644 --- a/docs/examples/1.8.x/server-python/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-python/examples/avatars/get-screenshot.md @@ -1,5 +1,8 @@ from appwrite.client import Client from appwrite.services.avatars import Avatars +from appwrite.enums import Theme +from appwrite.enums import Timezone +from appwrite.enums import Output client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,11 +17,11 @@ result = avatars.get_screenshot( viewport_width = 1, # optional viewport_height = 1, # optional scale = 0.1, # optional - theme = .LIGHT, # optional + theme = Theme.LIGHT, # optional user_agent = '', # optional fullpage = False, # optional locale = '', # optional - timezone = .AFRICA_ABIDJAN, # optional + timezone = Timezone.AFRICA_ABIDJAN, # optional latitude = -90, # optional longitude = -180, # optional accuracy = 0, # optional @@ -28,5 +31,5 @@ result = avatars.get_screenshot( width = 0, # optional height = 0, # optional quality = -1, # optional - output = .JPG # optional + output = Output.JPG # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/databases/create-relationship-attribute.md b/docs/examples/1.8.x/server-python/examples/databases/create-relationship-attribute.md index 6c8f4dc5bb..ea859fcc33 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/create-relationship-attribute.md +++ b/docs/examples/1.8.x/server-python/examples/databases/create-relationship-attribute.md @@ -1,6 +1,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases from appwrite.enums import RelationshipType +from appwrite.enums import RelationMutate client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/databases/update-relationship-attribute.md b/docs/examples/1.8.x/server-python/examples/databases/update-relationship-attribute.md index 3b6c8e93e9..8f5b0d8e69 100644 --- a/docs/examples/1.8.x/server-python/examples/databases/update-relationship-attribute.md +++ b/docs/examples/1.8.x/server-python/examples/databases/update-relationship-attribute.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.databases import Databases +from appwrite.enums import RelationMutate client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/functions/create-execution.md b/docs/examples/1.8.x/server-python/examples/functions/create-execution.md index f80b8646c2..8361351b35 100644 --- a/docs/examples/1.8.x/server-python/examples/functions/create-execution.md +++ b/docs/examples/1.8.x/server-python/examples/functions/create-execution.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.functions import Functions +from appwrite.enums import ExecutionMethod client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-python/examples/functions/create-template-deployment.md index 6083cc1cb3..d9f8f70a82 100644 --- a/docs/examples/1.8.x/server-python/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-python/examples/functions/create-template-deployment.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.functions import Functions +from appwrite.enums import client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ result = functions.create_template_deployment( repository = '', owner = '', root_directory = '', - version = '', + type = .COMMIT, + reference = '', activate = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/functions/create.md b/docs/examples/1.8.x/server-python/examples/functions/create.md index 8758e27e50..98e16ebebe 100644 --- a/docs/examples/1.8.x/server-python/examples/functions/create.md +++ b/docs/examples/1.8.x/server-python/examples/functions/create.md @@ -1,6 +1,6 @@ from appwrite.client import Client from appwrite.services.functions import Functions -from appwrite.enums import +from appwrite.enums import Runtime client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +12,7 @@ functions = Functions(client) result = functions.create( function_id = '', name = '', - runtime = .NODE_14_5, + runtime = Runtime.NODE_14_5, execute = ["any"], # optional events = [], # optional schedule = '', # optional diff --git a/docs/examples/1.8.x/server-python/examples/functions/get-deployment-download.md b/docs/examples/1.8.x/server-python/examples/functions/get-deployment-download.md index 1b0673c468..c633a893c6 100644 --- a/docs/examples/1.8.x/server-python/examples/functions/get-deployment-download.md +++ b/docs/examples/1.8.x/server-python/examples/functions/get-deployment-download.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.functions import Functions +from appwrite.enums import DeploymentDownloadType client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/functions/update.md b/docs/examples/1.8.x/server-python/examples/functions/update.md index 64ee39b29d..841c1eb839 100644 --- a/docs/examples/1.8.x/server-python/examples/functions/update.md +++ b/docs/examples/1.8.x/server-python/examples/functions/update.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.functions import Functions +from appwrite.enums import Runtime client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -11,7 +12,7 @@ functions = Functions(client) result = functions.update( function_id = '', name = '', - runtime = .NODE_14_5, # optional + runtime = Runtime.NODE_14_5, # optional execute = ["any"], # optional events = [], # optional schedule = '', # optional diff --git a/docs/examples/1.8.x/server-python/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/server-python/examples/health/get-failed-jobs.md index 5362a2d02a..6db282447e 100644 --- a/docs/examples/1.8.x/server-python/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-python/examples/health/get-failed-jobs.md @@ -1,6 +1,6 @@ from appwrite.client import Client from appwrite.services.health import Health -from appwrite.enums import +from appwrite.enums import Name client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -10,6 +10,6 @@ client.set_key('') # Your secret API key health = Health(client) result = health.get_failed_jobs( - name = .V1_DATABASE, + name = Name.V1_DATABASE, threshold = None # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/messaging/create-push.md b/docs/examples/1.8.x/server-python/examples/messaging/create-push.md index b706234227..817c157ee7 100644 --- a/docs/examples/1.8.x/server-python/examples/messaging/create-push.md +++ b/docs/examples/1.8.x/server-python/examples/messaging/create-push.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.messaging import Messaging +from appwrite.enums import MessagePriority client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/messaging/create-smtp-provider.md b/docs/examples/1.8.x/server-python/examples/messaging/create-smtp-provider.md index 99914f0779..6b9c345e6c 100644 --- a/docs/examples/1.8.x/server-python/examples/messaging/create-smtp-provider.md +++ b/docs/examples/1.8.x/server-python/examples/messaging/create-smtp-provider.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.messaging import Messaging +from appwrite.enums import SmtpEncryption client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/messaging/update-push.md b/docs/examples/1.8.x/server-python/examples/messaging/update-push.md index ce5d39466f..f9901329bb 100644 --- a/docs/examples/1.8.x/server-python/examples/messaging/update-push.md +++ b/docs/examples/1.8.x/server-python/examples/messaging/update-push.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.messaging import Messaging +from appwrite.enums import MessagePriority client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/messaging/update-smtp-provider.md b/docs/examples/1.8.x/server-python/examples/messaging/update-smtp-provider.md index 80019aad40..51f54a3df8 100644 --- a/docs/examples/1.8.x/server-python/examples/messaging/update-smtp-provider.md +++ b/docs/examples/1.8.x/server-python/examples/messaging/update-smtp-provider.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.messaging import Messaging +from appwrite.enums import SmtpEncryption client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-python/examples/sites/create-template-deployment.md index ac05f9e663..fb47cb1453 100644 --- a/docs/examples/1.8.x/server-python/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-python/examples/sites/create-template-deployment.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.sites import Sites +from appwrite.enums import client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ result = sites.create_template_deployment( repository = '', owner = '', root_directory = '', - version = '', + type = .BRANCH, + reference = '', activate = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/sites/create.md b/docs/examples/1.8.x/server-python/examples/sites/create.md index 4950cd2116..436e56ab86 100644 --- a/docs/examples/1.8.x/server-python/examples/sites/create.md +++ b/docs/examples/1.8.x/server-python/examples/sites/create.md @@ -1,7 +1,8 @@ from appwrite.client import Client from appwrite.services.sites import Sites -from appwrite.enums import -from appwrite.enums import +from appwrite.enums import Framework +from appwrite.enums import BuildRuntime +from appwrite.enums import Adapter client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,15 +14,15 @@ sites = Sites(client) result = sites.create( site_id = '', name = '', - framework = .ANALOG, - build_runtime = .NODE_14_5, + framework = Framework.ANALOG, + build_runtime = BuildRuntime.NODE_14_5, enabled = False, # optional logging = False, # optional timeout = 1, # optional install_command = '', # optional build_command = '', # optional output_directory = '', # optional - adapter = .STATIC, # optional + adapter = Adapter.STATIC, # optional installation_id = '', # optional fallback_file = '', # optional provider_repository_id = '', # optional diff --git a/docs/examples/1.8.x/server-python/examples/sites/get-deployment-download.md b/docs/examples/1.8.x/server-python/examples/sites/get-deployment-download.md index d6af564217..7eaa105ad3 100644 --- a/docs/examples/1.8.x/server-python/examples/sites/get-deployment-download.md +++ b/docs/examples/1.8.x/server-python/examples/sites/get-deployment-download.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.sites import Sites +from appwrite.enums import DeploymentDownloadType client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/sites/update.md b/docs/examples/1.8.x/server-python/examples/sites/update.md index 7d2d2865a4..56b796c276 100644 --- a/docs/examples/1.8.x/server-python/examples/sites/update.md +++ b/docs/examples/1.8.x/server-python/examples/sites/update.md @@ -1,6 +1,8 @@ from appwrite.client import Client from appwrite.services.sites import Sites -from appwrite.enums import +from appwrite.enums import Framework +from appwrite.enums import BuildRuntime +from appwrite.enums import Adapter client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,15 +14,15 @@ sites = Sites(client) result = sites.update( site_id = '', name = '', - framework = .ANALOG, + framework = Framework.ANALOG, enabled = False, # optional logging = False, # optional timeout = 1, # optional install_command = '', # optional build_command = '', # optional output_directory = '', # optional - build_runtime = .NODE_14_5, # optional - adapter = .STATIC, # optional + build_runtime = BuildRuntime.NODE_14_5, # optional + adapter = Adapter.STATIC, # optional fallback_file = '', # optional installation_id = '', # optional provider_repository_id = '', # optional diff --git a/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md index e08b2d0d6b..10310aeaed 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-python/examples/storage/create-bucket.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.enums import Compression from appwrite.permission import Permission from appwrite.role import Role @@ -18,7 +19,8 @@ result = storage.create_bucket( enabled = False, # optional maximum_file_size = 1, # optional allowed_file_extensions = [], # optional - compression = .NONE, # optional + compression = Compression.NONE, # optional encryption = False, # optional - antivirus = False # optional + antivirus = False, # optional + transformations = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/storage/get-file-preview.md b/docs/examples/1.8.x/server-python/examples/storage/get-file-preview.md index 47e3f23b55..f962edc0b6 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/get-file-preview.md +++ b/docs/examples/1.8.x/server-python/examples/storage/get-file-preview.md @@ -1,5 +1,7 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.enums import ImageGravity +from appwrite.enums import ImageFormat client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md index bfa7cc3fdb..b0726386a4 100644 --- a/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-python/examples/storage/update-bucket.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.storage import Storage +from appwrite.enums import Compression from appwrite.permission import Permission from appwrite.role import Role @@ -18,7 +19,8 @@ result = storage.update_bucket( enabled = False, # optional maximum_file_size = 1, # optional allowed_file_extensions = [], # optional - compression = .NONE, # optional + compression = Compression.NONE, # optional encryption = False, # optional - antivirus = False # optional + antivirus = False, # optional + transformations = False # optional ) diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/create-relationship-column.md b/docs/examples/1.8.x/server-python/examples/tablesdb/create-relationship-column.md index 16acbf8fb8..d72fbfda11 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/create-relationship-column.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/create-relationship-column.md @@ -1,6 +1,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB from appwrite.enums import RelationshipType +from appwrite.enums import RelationMutate client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/tablesdb/update-relationship-column.md b/docs/examples/1.8.x/server-python/examples/tablesdb/update-relationship-column.md index 1cb93dbdf2..560590ec8c 100644 --- a/docs/examples/1.8.x/server-python/examples/tablesdb/update-relationship-column.md +++ b/docs/examples/1.8.x/server-python/examples/tablesdb/update-relationship-column.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB +from appwrite.enums import RelationMutate client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-python/examples/users/create-sha-user.md b/docs/examples/1.8.x/server-python/examples/users/create-sha-user.md index 5b4c8f831a..7722c62f0c 100644 --- a/docs/examples/1.8.x/server-python/examples/users/create-sha-user.md +++ b/docs/examples/1.8.x/server-python/examples/users/create-sha-user.md @@ -1,5 +1,6 @@ from appwrite.client import Client from appwrite.services.users import Users +from appwrite.enums import PasswordHash client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-rest/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-rest/examples/functions/create-template-deployment.md index 18ebf65efe..474763831f 100644 --- a/docs/examples/1.8.x/server-rest/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-rest/examples/functions/create-template-deployment.md @@ -9,6 +9,7 @@ X-Appwrite-Key: "repository": "", "owner": "", "rootDirectory": "", - "version": "", + "type": "commit", + "reference": "", "activate": false } diff --git a/docs/examples/1.8.x/server-rest/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-rest/examples/sites/create-template-deployment.md index 3b21f4f754..9f58d3e97e 100644 --- a/docs/examples/1.8.x/server-rest/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-rest/examples/sites/create-template-deployment.md @@ -9,6 +9,7 @@ X-Appwrite-Key: "repository": "", "owner": "", "rootDirectory": "", - "version": "", + "type": "branch", + "reference": "", "activate": false } diff --git a/docs/examples/1.8.x/server-rest/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-rest/examples/storage/create-bucket.md index 59f1c4f403..81104d36f5 100644 --- a/docs/examples/1.8.x/server-rest/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-rest/examples/storage/create-bucket.md @@ -15,5 +15,6 @@ X-Appwrite-Key: "allowedFileExtensions": [], "compression": "none", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } diff --git a/docs/examples/1.8.x/server-rest/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-rest/examples/storage/update-bucket.md index 0f966da0b5..d46ce52a58 100644 --- a/docs/examples/1.8.x/server-rest/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-rest/examples/storage/update-bucket.md @@ -14,5 +14,6 @@ X-Appwrite-Key: "allowedFileExtensions": [], "compression": "none", "encryption": false, - "antivirus": false + "antivirus": false, + "transformations": false } diff --git a/docs/examples/1.8.x/server-ruby/examples/avatars/get-screenshot.md b/docs/examples/1.8.x/server-ruby/examples/avatars/get-screenshot.md index f2af537fe8..f66fae3e02 100644 --- a/docs/examples/1.8.x/server-ruby/examples/avatars/get-screenshot.md +++ b/docs/examples/1.8.x/server-ruby/examples/avatars/get-screenshot.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -15,11 +16,11 @@ result = avatars.get_screenshot( viewport_width: 1, # optional viewport_height: 1, # optional scale: 0.1, # optional - theme: ::LIGHT, # optional + theme: Theme::LIGHT, # optional user_agent: '', # optional fullpage: false, # optional locale: '', # optional - timezone: ::AFRICA_ABIDJAN, # optional + timezone: Timezone::AFRICA_ABIDJAN, # optional latitude: -90, # optional longitude: -180, # optional accuracy: 0, # optional @@ -29,5 +30,5 @@ result = avatars.get_screenshot( width: 0, # optional height: 0, # optional quality: -1, # optional - output: ::JPG # optional + output: Output::JPG # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/databases/update-relationship-attribute.md b/docs/examples/1.8.x/server-ruby/examples/databases/update-relationship-attribute.md index 679edb823e..6fddac2d58 100644 --- a/docs/examples/1.8.x/server-ruby/examples/databases/update-relationship-attribute.md +++ b/docs/examples/1.8.x/server-ruby/examples/databases/update-relationship-attribute.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/functions/create-execution.md b/docs/examples/1.8.x/server-ruby/examples/functions/create-execution.md index 666b995d77..521ee7cde0 100644 --- a/docs/examples/1.8.x/server-ruby/examples/functions/create-execution.md +++ b/docs/examples/1.8.x/server-ruby/examples/functions/create-execution.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-ruby/examples/functions/create-template-deployment.md index a447b6e9aa..cfe0adc263 100644 --- a/docs/examples/1.8.x/server-ruby/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-ruby/examples/functions/create-template-deployment.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result = functions.create_template_deployment( repository: '', owner: '', root_directory: '', - version: '', + type: ::COMMIT, + reference: '', activate: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/functions/create.md b/docs/examples/1.8.x/server-ruby/examples/functions/create.md index cad021b5f8..ce16a2b998 100644 --- a/docs/examples/1.8.x/server-ruby/examples/functions/create.md +++ b/docs/examples/1.8.x/server-ruby/examples/functions/create.md @@ -13,7 +13,7 @@ functions = Functions.new(client) result = functions.create( function_id: '', name: '', - runtime: ::NODE_14_5, + runtime: Runtime::NODE_14_5, execute: ["any"], # optional events: [], # optional schedule: '', # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/functions/get-deployment-download.md b/docs/examples/1.8.x/server-ruby/examples/functions/get-deployment-download.md index a1a50a5f94..06faa7e03c 100644 --- a/docs/examples/1.8.x/server-ruby/examples/functions/get-deployment-download.md +++ b/docs/examples/1.8.x/server-ruby/examples/functions/get-deployment-download.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/functions/update.md b/docs/examples/1.8.x/server-ruby/examples/functions/update.md index 45b6e32ab3..91d8436463 100644 --- a/docs/examples/1.8.x/server-ruby/examples/functions/update.md +++ b/docs/examples/1.8.x/server-ruby/examples/functions/update.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,7 +13,7 @@ functions = Functions.new(client) result = functions.update( function_id: '', name: '', - runtime: ::NODE_14_5, # optional + runtime: Runtime::NODE_14_5, # optional execute: ["any"], # optional events: [], # optional schedule: '', # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/health/get-failed-jobs.md b/docs/examples/1.8.x/server-ruby/examples/health/get-failed-jobs.md index 73e1983e3a..b15f6cc41e 100644 --- a/docs/examples/1.8.x/server-ruby/examples/health/get-failed-jobs.md +++ b/docs/examples/1.8.x/server-ruby/examples/health/get-failed-jobs.md @@ -11,6 +11,6 @@ client = Client.new health = Health.new(client) result = health.get_failed_jobs( - name: ::V1_DATABASE, + name: Name::V1_DATABASE, threshold: null # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/create-push.md b/docs/examples/1.8.x/server-ruby/examples/messaging/create-push.md index f4555aa967..547c179d68 100644 --- a/docs/examples/1.8.x/server-ruby/examples/messaging/create-push.md +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/create-push.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/create-smtp-provider.md b/docs/examples/1.8.x/server-ruby/examples/messaging/create-smtp-provider.md index b062e574b4..c33f772a7d 100644 --- a/docs/examples/1.8.x/server-ruby/examples/messaging/create-smtp-provider.md +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/create-smtp-provider.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/update-push.md b/docs/examples/1.8.x/server-ruby/examples/messaging/update-push.md index 19b273bb24..b365069ad0 100644 --- a/docs/examples/1.8.x/server-ruby/examples/messaging/update-push.md +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/update-push.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/messaging/update-smtp-provider.md b/docs/examples/1.8.x/server-ruby/examples/messaging/update-smtp-provider.md index bbaebf3c32..ab0e1b45cf 100644 --- a/docs/examples/1.8.x/server-ruby/examples/messaging/update-smtp-provider.md +++ b/docs/examples/1.8.x/server-ruby/examples/messaging/update-smtp-provider.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-ruby/examples/sites/create-template-deployment.md index 7df9665590..9e1cc93986 100644 --- a/docs/examples/1.8.x/server-ruby/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-ruby/examples/sites/create-template-deployment.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result = sites.create_template_deployment( repository: '', owner: '', root_directory: '', - version: '', + type: ::BRANCH, + reference: '', activate: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/sites/create.md b/docs/examples/1.8.x/server-ruby/examples/sites/create.md index 2243185485..7dc004cd71 100644 --- a/docs/examples/1.8.x/server-ruby/examples/sites/create.md +++ b/docs/examples/1.8.x/server-ruby/examples/sites/create.md @@ -13,15 +13,15 @@ sites = Sites.new(client) result = sites.create( site_id: '', name: '', - framework: ::ANALOG, - build_runtime: ::NODE_14_5, + framework: Framework::ANALOG, + build_runtime: BuildRuntime::NODE_14_5, enabled: false, # optional logging: false, # optional timeout: 1, # optional install_command: '', # optional build_command: '', # optional output_directory: '', # optional - adapter: ::STATIC, # optional + adapter: Adapter::STATIC, # optional installation_id: '', # optional fallback_file: '', # optional provider_repository_id: '', # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/sites/get-deployment-download.md b/docs/examples/1.8.x/server-ruby/examples/sites/get-deployment-download.md index 85162626ba..c82ab98879 100644 --- a/docs/examples/1.8.x/server-ruby/examples/sites/get-deployment-download.md +++ b/docs/examples/1.8.x/server-ruby/examples/sites/get-deployment-download.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/sites/update.md b/docs/examples/1.8.x/server-ruby/examples/sites/update.md index 922255ab65..0d73293124 100644 --- a/docs/examples/1.8.x/server-ruby/examples/sites/update.md +++ b/docs/examples/1.8.x/server-ruby/examples/sites/update.md @@ -13,15 +13,15 @@ sites = Sites.new(client) result = sites.update( site_id: '', name: '', - framework: ::ANALOG, + framework: Framework::ANALOG, enabled: false, # optional logging: false, # optional timeout: 1, # optional install_command: '', # optional build_command: '', # optional output_directory: '', # optional - build_runtime: ::NODE_14_5, # optional - adapter: ::STATIC, # optional + build_runtime: BuildRuntime::NODE_14_5, # optional + adapter: Adapter::STATIC, # optional fallback_file: '', # optional installation_id: '', # optional provider_repository_id: '', # optional diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md index 4a12518fb7..f6899ef3a3 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/create-bucket.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums include Appwrite::Permission include Appwrite::Role @@ -19,7 +20,8 @@ result = storage.create_bucket( enabled: false, # optional maximum_file_size: 1, # optional allowed_file_extensions: [], # optional - compression: ::NONE, # optional + compression: Compression::NONE, # optional encryption: false, # optional - antivirus: false # optional + antivirus: false, # optional + transformations: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/get-file-preview.md b/docs/examples/1.8.x/server-ruby/examples/storage/get-file-preview.md index 23254615d3..4b154c772d 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/get-file-preview.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/get-file-preview.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md index 2e44aad536..84c50ef814 100644 --- a/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-ruby/examples/storage/update-bucket.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums include Appwrite::Permission include Appwrite::Role @@ -19,7 +20,8 @@ result = storage.update_bucket( enabled: false, # optional maximum_file_size: 1, # optional allowed_file_extensions: [], # optional - compression: ::NONE, # optional + compression: Compression::NONE, # optional encryption: false, # optional - antivirus: false # optional + antivirus: false, # optional + transformations: false # optional ) diff --git a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-relationship-column.md b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-relationship-column.md index 3951cbc047..81de2d7897 100644 --- a/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-relationship-column.md +++ b/docs/examples/1.8.x/server-ruby/examples/tablesdb/update-relationship-column.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-ruby/examples/users/create-sha-user.md b/docs/examples/1.8.x/server-ruby/examples/users/create-sha-user.md index f3951d9c80..d19db05324 100644 --- a/docs/examples/1.8.x/server-ruby/examples/users/create-sha-user.md +++ b/docs/examples/1.8.x/server-ruby/examples/users/create-sha-user.md @@ -1,6 +1,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint diff --git a/docs/examples/1.8.x/server-swift/examples/functions/create-template-deployment.md b/docs/examples/1.8.x/server-swift/examples/functions/create-template-deployment.md index 27c5311c7a..6a9045637c 100644 --- a/docs/examples/1.8.x/server-swift/examples/functions/create-template-deployment.md +++ b/docs/examples/1.8.x/server-swift/examples/functions/create-template-deployment.md @@ -1,4 +1,5 @@ import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +13,8 @@ let deployment = try await functions.createTemplateDeployment( repository: "", owner: "", rootDirectory: "", - version: "", + type: .commit, + reference: "", activate: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/sites/create-template-deployment.md b/docs/examples/1.8.x/server-swift/examples/sites/create-template-deployment.md index 1cb3e42030..250eb124a5 100644 --- a/docs/examples/1.8.x/server-swift/examples/sites/create-template-deployment.md +++ b/docs/examples/1.8.x/server-swift/examples/sites/create-template-deployment.md @@ -1,4 +1,5 @@ import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,7 +13,8 @@ let deployment = try await sites.createTemplateDeployment( repository: "", owner: "", rootDirectory: "", - version: "", + type: .branch, + reference: "", activate: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md index a97f450bfe..9931b81943 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/create-bucket.md @@ -18,6 +18,7 @@ let bucket = try await storage.createBucket( allowedFileExtensions: [], // optional compression: .none, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ) diff --git a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md index 2d89d7c464..be283b7d6a 100644 --- a/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md +++ b/docs/examples/1.8.x/server-swift/examples/storage/update-bucket.md @@ -18,6 +18,7 @@ let bucket = try await storage.updateBucket( allowedFileExtensions: [], // optional compression: .none, // optional encryption: false, // optional - antivirus: false // optional + antivirus: false, // optional + transformations: false // optional ) diff --git a/docs/sdks/flutter/CHANGELOG.md b/docs/sdks/flutter/CHANGELOG.md index 2f26f34edd..40f703903f 100644 --- a/docs/sdks/flutter/CHANGELOG.md +++ b/docs/sdks/flutter/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 20.3.2 + +* Fix OAuth2 browser infinite redirect issue + ## 20.3.1 * Fix passing of `null` values and stripping only non-nullable optional parameters from the request body diff --git a/src/Appwrite/Extend/Exception.php b/src/Appwrite/Extend/Exception.php index 6f8744568a..5ecc54b86a 100644 --- a/src/Appwrite/Extend/Exception.php +++ b/src/Appwrite/Extend/Exception.php @@ -150,6 +150,7 @@ class Exception extends \Exception public const string STORAGE_INVALID_RANGE = 'storage_invalid_range'; public const string STORAGE_INVALID_APPWRITE_ID = 'storage_invalid_appwrite_id'; public const string STORAGE_FILE_NOT_PUBLIC = 'storage_file_not_public'; + public const string STORAGE_BUCKET_TRANSFORMATIONS_DISABLED = 'storage_bucket_transformations_disabled'; /** VCS */ public const string INSTALLATION_NOT_FOUND = 'installation_not_found'; diff --git a/src/Appwrite/Migration/Version/V23.php b/src/Appwrite/Migration/Version/V23.php index a4027b506e..c7be832626 100644 --- a/src/Appwrite/Migration/Version/V23.php +++ b/src/Appwrite/Migration/Version/V23.php @@ -140,6 +140,14 @@ class V23 extends Migration Console::warning("Failed to migration error attribute size in collection {$id}: {$th->getMessage()}"); } + case 'buckets': + try { + $this->createAttributeFromCollection($this->dbForProject, $id, 'transformations'); + } catch (Throwable $th) { + Console::warning("'transformations' from {$id}: {$th->getMessage()}"); + } + $this->dbForProject->purgeCachedCollection($id); + break; default: break; } diff --git a/src/Appwrite/Platform/Tasks/Specs.php b/src/Appwrite/Platform/Tasks/Specs.php index 53cbced174..edb1fc56ed 100644 --- a/src/Appwrite/Platform/Tasks/Specs.php +++ b/src/Appwrite/Platform/Tasks/Specs.php @@ -43,6 +43,15 @@ class Specs extends Action return new AppwriteResponse(new SwooleResponse()); } + protected function getFormatInstance(string $format, array $arguments) + { + return match ($format) { + 'swagger2' => new Swagger2(...$arguments), + 'open-api3' => new OpenAPI3(...$arguments), + default => throw new Exception('Format not found: ' . $format) + }; + } + public function __construct() { $this @@ -288,12 +297,7 @@ class Specs extends Action ]; foreach (['swagger2', 'open-api3'] as $format) { - $formatInstance = match ($format) { - 'swagger2' => new Swagger2(...$arguments), - 'open-api3' => new OpenAPI3(...$arguments), - default => throw new Exception('Format not found: ' . $format) - }; - + $formatInstance = $this->getFormatInstance($format, $arguments); $specs = new Specification($formatInstance); $endpoint = System::getEnv('_APP_HOME', '[HOSTNAME]'); $email = System::getEnv('_APP_SYSTEM_TEAM_EMAIL', APP_EMAIL_TEAM); diff --git a/src/Appwrite/Utopia/Database/Validator/Queries/Buckets.php b/src/Appwrite/Utopia/Database/Validator/Queries/Buckets.php index c4d187520f..ee320a969f 100644 --- a/src/Appwrite/Utopia/Database/Validator/Queries/Buckets.php +++ b/src/Appwrite/Utopia/Database/Validator/Queries/Buckets.php @@ -10,7 +10,8 @@ class Buckets extends Base 'fileSecurity', 'maximumFileSize', 'encryption', - 'antivirus' + 'antivirus', + 'transformations', ]; /** diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index 6f78c70c0f..1b04e7ca76 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -61,6 +61,7 @@ use Appwrite\Utopia\Response\Model\Database; use Appwrite\Utopia\Response\Model\Deployment; use Appwrite\Utopia\Response\Model\DetectionFramework; use Appwrite\Utopia\Response\Model\DetectionRuntime; +use Appwrite\Utopia\Response\Model\DetectionVariable; use Appwrite\Utopia\Response\Model\DevKey; use Appwrite\Utopia\Response\Model\Document as ModelDocument; use Appwrite\Utopia\Response\Model\Embedding; @@ -326,6 +327,7 @@ class Response extends SwooleResponse public const MODEL_BRANCH = 'branch'; public const MODEL_BRANCH_LIST = 'branchList'; public const MODEL_DETECTION_FRAMEWORK = 'detectionFramework'; + public const MODEL_DETECTION_VARIABLE = 'detectionVariable'; public const MODEL_DETECTION_RUNTIME = 'detectionRuntime'; public const MODEL_VCS_CONTENT = 'vcsContent'; public const MODEL_VCS_CONTENT_LIST = 'vcsContentList'; @@ -579,6 +581,7 @@ class Response extends SwooleResponse ->setModel(new ProviderRepositoryRuntime()) ->setModel(new DetectionFramework()) ->setModel(new DetectionRuntime()) + ->setModel(new DetectionVariable()) ->setModel(new VcsContent()) ->setModel(new Branch()) ->setModel(new Runtime()) diff --git a/src/Appwrite/Utopia/Response/Model/Bucket.php b/src/Appwrite/Utopia/Response/Model/Bucket.php index f5261c026e..f51c8b6527 100644 --- a/src/Appwrite/Utopia/Response/Model/Bucket.php +++ b/src/Appwrite/Utopia/Response/Model/Bucket.php @@ -86,6 +86,12 @@ class Bucket extends Model 'default' => true, 'example' => false, ]) + ->addRule('transformations', [ + 'type' => self::TYPE_BOOLEAN, + 'description' => 'Image transformations are enabled.', + 'default' => true, + 'example' => false, + ]) ; } diff --git a/src/Appwrite/Utopia/Response/Model/Detection.php b/src/Appwrite/Utopia/Response/Model/Detection.php new file mode 100644 index 0000000000..007182d1e9 --- /dev/null +++ b/src/Appwrite/Utopia/Response/Model/Detection.php @@ -0,0 +1,22 @@ +addRule('variables', [ + 'type' => Response::MODEL_DETECTION_VARIABLE, + 'description' => 'Environment variables found in .env files', + 'required' => false, + 'default' => [], + 'example' => new \stdClass(), + 'array' => true, + ]); + } +} diff --git a/src/Appwrite/Utopia/Response/Model/DetectionFramework.php b/src/Appwrite/Utopia/Response/Model/DetectionFramework.php index 9aeb885f76..4cdf37bbcf 100644 --- a/src/Appwrite/Utopia/Response/Model/DetectionFramework.php +++ b/src/Appwrite/Utopia/Response/Model/DetectionFramework.php @@ -3,12 +3,13 @@ namespace Appwrite\Utopia\Response\Model; use Appwrite\Utopia\Response; -use Appwrite\Utopia\Response\Model; -class DetectionFramework extends Model +class DetectionFramework extends Detection { public function __construct() { + parent::__construct(); + $this ->addRule('framework', [ 'type' => self::TYPE_STRING, diff --git a/src/Appwrite/Utopia/Response/Model/DetectionRuntime.php b/src/Appwrite/Utopia/Response/Model/DetectionRuntime.php index 1c7c0be16b..1e63929092 100644 --- a/src/Appwrite/Utopia/Response/Model/DetectionRuntime.php +++ b/src/Appwrite/Utopia/Response/Model/DetectionRuntime.php @@ -3,12 +3,13 @@ namespace Appwrite\Utopia\Response\Model; use Appwrite\Utopia\Response; -use Appwrite\Utopia\Response\Model; -class DetectionRuntime extends Model +class DetectionRuntime extends Detection { public function __construct() { + parent::__construct(); + $this ->addRule('runtime', [ 'type' => self::TYPE_STRING, diff --git a/src/Appwrite/Utopia/Response/Model/DetectionVariable.php b/src/Appwrite/Utopia/Response/Model/DetectionVariable.php new file mode 100644 index 0000000000..a5a2d2acc0 --- /dev/null +++ b/src/Appwrite/Utopia/Response/Model/DetectionVariable.php @@ -0,0 +1,46 @@ +addRule('name', [ + 'type' => self::TYPE_STRING, + 'description' => 'Name of environment variable', + 'default' => '', + 'example' => 'NODE_ENV', + ]) + ->addRule('value', [ + 'type' => self::TYPE_STRING, + 'description' => 'Value of environment variable', + 'default' => '', + 'example' => 'production', + ]); + } + + /** + * Get Name + * + * @return string + */ + public function getName(): string + { + return 'DetectionVariable'; + } + + /** + * Get Type + * + * @return string + */ + public function getType(): string + { + return Response::MODEL_DETECTION_VARIABLE; + } +} diff --git a/src/Appwrite/Utopia/Response/Model/ProviderRepository.php b/src/Appwrite/Utopia/Response/Model/ProviderRepository.php index eee058a05b..ddad0b059c 100644 --- a/src/Appwrite/Utopia/Response/Model/ProviderRepository.php +++ b/src/Appwrite/Utopia/Response/Model/ProviderRepository.php @@ -53,6 +53,13 @@ class ProviderRepository extends Model 'default' => APP_DATABASE_ATTRIBUTE_DATETIME, 'example' => APP_DATABASE_ATTRIBUTE_DATETIME, 'array' => false, + ]) + ->addRule('variables', [ + 'type' => self::TYPE_STRING, + 'description' => 'Environment variables found in .env files', + 'default' => [], + 'array' => true, + 'example' => ['PORT', 'NODE_ENV'], ]); } diff --git a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php index 8f449af2dc..e7ad75d03b 100644 --- a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php @@ -3160,6 +3160,9 @@ trait DatabasesBase public function testOperators(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/databases', [ 'content-type' => 'application/json', @@ -3408,6 +3411,9 @@ trait DatabasesBase public function testBulkOperators(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/databases', [ 'content-type' => 'application/json', diff --git a/tests/e2e/Services/Databases/TablesDB/DatabasesBase.php b/tests/e2e/Services/Databases/TablesDB/DatabasesBase.php index 1b3bfb0a05..9757b525df 100644 --- a/tests/e2e/Services/Databases/TablesDB/DatabasesBase.php +++ b/tests/e2e/Services/Databases/TablesDB/DatabasesBase.php @@ -3049,6 +3049,9 @@ trait DatabasesBase public function testOperators(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/tablesdb', [ 'content-type' => 'application/json', @@ -3297,6 +3300,9 @@ trait DatabasesBase public function testBulkOperators(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/tablesdb', [ 'content-type' => 'application/json', diff --git a/tests/e2e/Services/Databases/TablesDB/Transactions/TransactionsBase.php b/tests/e2e/Services/Databases/TablesDB/Transactions/TransactionsBase.php index 488dc60239..7f5b4bcf68 100644 --- a/tests/e2e/Services/Databases/TablesDB/Transactions/TransactionsBase.php +++ b/tests/e2e/Services/Databases/TablesDB/Transactions/TransactionsBase.php @@ -5569,6 +5569,9 @@ trait TransactionsBase */ public function testArrayOperatorsWithUpdateRow(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/tablesdb', array_merge([ 'content-type' => 'application/json', @@ -5693,6 +5696,9 @@ trait TransactionsBase */ public function testArrayOperatorsWithCreateOperations(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/tablesdb', array_merge([ 'content-type' => 'application/json', @@ -5820,6 +5826,9 @@ trait TransactionsBase */ public function testMultipleArrayOperators(): void { + if ($this->isMongoDB()) { + $this->markTestSkipped('MongoDB is not supported for this test'); + } // Create database $database = $this->client->call(Client::METHOD_POST, '/tablesdb', array_merge([ 'content-type' => 'application/json', diff --git a/tests/e2e/Services/Storage/StorageConsoleClientTest.php b/tests/e2e/Services/Storage/StorageConsoleClientTest.php index bbb14fb136..5c618d6357 100644 --- a/tests/e2e/Services/Storage/StorageConsoleClientTest.php +++ b/tests/e2e/Services/Storage/StorageConsoleClientTest.php @@ -2,6 +2,7 @@ namespace Tests\E2E\Services\Storage; +use CURLFile; use Tests\E2E\Client; use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\Scope; @@ -107,4 +108,56 @@ class StorageConsoleClientTest extends Scope $this->assertIsArray($response['body']['imageTransformations']); $this->assertIsNumeric($response['body']['imageTransformationsTotal']); } + public function testCreateBucketTransformationsDisabledConsole(): void + { + // Create a bucket with default settings + $bucket = $this->client->call(Client::METHOD_POST, '/storage/buckets', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'bucketId' => ID::unique(), + 'name' => 'Test Console Bucket Transformations Disabled', + ]); + $this->assertEquals(201, $bucket['headers']['status-code']); + + // Create a file in the bucket + $file = $this->client->call(Client::METHOD_POST, '/storage/buckets/' . $bucket['body']['$id'] . '/files', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'fileId' => ID::unique(), + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'transformations.png'), + ]); + $this->assertEquals(201, $file['headers']['status-code']); + + // Try to get the file preview + $preview = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucket['body']['$id'] . '/files/' . $file['body']['$id'] . '/preview', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + $this->assertEquals(200, $preview['headers']['status-code']); + + // Update the bucket to disable transformations + $bucket = $this->client->call(Client::METHOD_PUT, '/storage/buckets/' . $bucket['body']['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'name' => 'Test Bucket Transformations Disabled', + 'transformations' => false, + ]); + + // Try to get the file preview again + $preview = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucket['body']['$id'] . '/files/' . $file['body']['$id'] . '/preview', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + $this->assertEquals(200, $preview['headers']['status-code']); // Returns 200 since image transformations are not counted for console requests + + // Delete the bucket + $response = $this->client->call(Client::METHOD_DELETE, '/storage/buckets/' . $bucket['body']['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + $this->assertEquals(204, $response['headers']['status-code']); + } } diff --git a/tests/e2e/Services/Storage/StorageCustomClientTest.php b/tests/e2e/Services/Storage/StorageCustomClientTest.php index c723fba50a..ec9f0d0cc7 100644 --- a/tests/e2e/Services/Storage/StorageCustomClientTest.php +++ b/tests/e2e/Services/Storage/StorageCustomClientTest.php @@ -1386,4 +1386,65 @@ class StorageCustomClientTest extends Scope $this->assertStringContainsString('users', $file['body']['message']); $this->assertStringContainsString('user:' . $this->getUser()['$id'], $file['body']['message']); } + + public function testCreateBucketTransformationsDisabled(): void + { + // Create a bucket with default settings + $bucket = $this->client->call(Client::METHOD_POST, '/storage/buckets', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ], [ + 'bucketId' => ID::unique(), + 'name' => 'Test Bucket Transformations Disabled', + 'permissions' => [ + Permission::read(Role::any()) + ], + ]); + $this->assertEquals(201, $bucket['headers']['status-code']); + + // Create a file in the bucket + $file = $this->client->call(Client::METHOD_POST, '/storage/buckets/' . $bucket['body']['$id'] . '/files', [ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ], [ + 'fileId' => ID::unique(), + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'transformations.png'), + ]); + $this->assertEquals(201, $file['headers']['status-code']); + + // Try to get the file preview + $preview = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucket['body']['$id'] . '/files/' . $file['body']['$id'] . '/preview', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ]); + $this->assertEquals(200, $preview['headers']['status-code']); + + // Update the bucket to disable transformations + $bucket = $this->client->call(Client::METHOD_PUT, '/storage/buckets/' . $bucket['body']['$id'], [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ], [ + 'name' => 'Test Bucket Transformations Disabled', + 'transformations' => false, + ]); + + // Try to get the file preview again + $preview = $this->client->call(Client::METHOD_GET, '/storage/buckets/' . $bucket['body']['$id'] . '/files/' . $file['body']['$id'] . '/preview', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ]); + $this->assertEquals(403, $preview['headers']['status-code']); + $this->assertStringContainsString('Image transformations are disabled for the requested bucket.', $preview['body']['message']); + + // Delete the bucket + $response = $this->client->call(Client::METHOD_DELETE, '/storage/buckets/' . $bucket['body']['$id'], [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'], + ]); + $this->assertEquals(204, $response['headers']['status-code']); + } } diff --git a/tests/unit/Network/Validators/DNSTest.php b/tests/unit/Network/Validators/DNSTest.php index 9f8928b87f..4611e00f4d 100644 --- a/tests/unit/Network/Validators/DNSTest.php +++ b/tests/unit/Network/Validators/DNSTest.php @@ -51,8 +51,10 @@ class DNSTest extends TestCase #[Retry(count: 5)] public function testCAA(): void { - $certainly = new DNS('certainly.com', Record::TYPE_CAA, 'ns1.digitalocean.com'); - $letsencrypt = new DNS('letsencrypt.org', Record::TYPE_CAA, 'ns1.digitalocean.com'); + $digitalOceanIp = '172.64.52.210'; // ping ns1.digitalocean.com + + $certainly = new DNS('certainly.com', Record::TYPE_CAA, $digitalOceanIp); + $letsencrypt = new DNS('letsencrypt.org', Record::TYPE_CAA, $digitalOceanIp); // No CAA record succeeds on main domain & subdomains for any issuer $this->assertEquals($certainly->isValid('caa.appwrite.org'), true);