Merge remote-tracking branch 'upstream/documents-db-api' into vector-db-api

This commit is contained in:
ArnabChatterjee20k committed 2025-11-20 15:51:01 +05:30
commit cc759868b8
224 files changed
+1590 -407

No files matched your search

+11
View File
@@ -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,
+5
View File
@@ -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 => [
+1 -1
View File
@@ -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,
+153 -16
View File
@@ -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": "<ROOT_DIRECTORY>"
},
"version": {
"type": {
"type": "string",
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
"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": "<REFERENCE>"
},
"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": "<ROOT_DIRECTORY>"
},
"version": {
"type": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"x-example": "<VERSION>"
"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": "<REFERENCE>"
},
"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",
+59 -14
View File
@@ -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": "<ROOT_DIRECTORY>"
},
"version": {
"type": {
"type": "string",
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
"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": "<REFERENCE>"
},
"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": "<ROOT_DIRECTORY>"
},
"version": {
"type": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"x-example": "<VERSION>"
"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": "<REFERENCE>"
},
"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": {
+119 -8
View File
@@ -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",
+25 -6
View File
@@ -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": {
+159 -16
View File
@@ -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": "<ROOT_DIRECTORY>"
},
"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": "<VERSION>"
"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": "<REFERENCE>"
},
"activate": {
"type": "boolean",
@@ -14372,7 +14386,8 @@
"repository",
"owner",
"rootDirectory",
"version"
"type",
"reference"
]
}
}
@@ -32416,11 +32431,24 @@
"default": null,
"x-example": "<ROOT_DIRECTORY>"
},
"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": "<VERSION>"
"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": "<REFERENCE>"
},
"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",
+63 -14
View File
@@ -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": "<ROOT_DIRECTORY>"
},
"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": "<VERSION>"
"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": "<REFERENCE>"
},
"activate": {
"type": "boolean",
@@ -13188,7 +13202,8 @@
"repository",
"owner",
"rootDirectory",
"version"
"type",
"reference"
]
}
}
@@ -22989,11 +23004,24 @@
"default": null,
"x-example": "<ROOT_DIRECTORY>"
},
"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": "<VERSION>"
"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": "<REFERENCE>"
},
"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": {
+123 -8
View File
@@ -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",
+27 -6
View File
@@ -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": {
+28 -2
View File
@@ -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' => '{}',
+12 -3
View File
@@ -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);
+81
View File
@@ -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));
+4
View File
@@ -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());
+39 -36
View File
@@ -1,42 +1,45 @@
<?php
use Utopia\Config\Adapters\PHP;
use Utopia\Config\Config;
require_once __DIR__ . '/../config/storage/resource_limits.php';
Config::load('template-runtimes', __DIR__ . '/../config/template-runtimes.php');
Config::load('events', __DIR__ . '/../config/events.php');
Config::load('auth', __DIR__ . '/../config/auth.php');
Config::load('apis', __DIR__ . '/../config/apis.php'); // List of APIs
Config::load('errors', __DIR__ . '/../config/errors.php');
Config::load('oAuthProviders', __DIR__ . '/../config/oAuthProviders.php');
Config::load('platforms', __DIR__ . '/../config/platforms.php');
Config::load('console', __DIR__ . '/../config/console.php');
Config::load('collections', __DIR__ . '/../config/collections.php');
Config::load('frameworks', __DIR__ . '/../config/frameworks.php');
Config::load('runtimes', __DIR__ . '/../config/runtimes.php');
Config::load('runtimes-v2', __DIR__ . '/../config/runtimes-v2.php');
Config::load('usage', __DIR__ . '/../config/usage.php');
Config::load('roles', __DIR__ . '/../config/roles.php'); // User roles and scopes
Config::load('scopes', __DIR__ . '/../config/scopes.php'); // User roles and scopes
Config::load('services', __DIR__ . '/../config/services.php'); // List of services
Config::load('variables', __DIR__ . '/../config/variables.php'); // List of env variables
Config::load('regions', __DIR__ . '/../config/regions.php'); // List of available regions
Config::load('avatar-browsers', __DIR__ . '/../config/avatars/browsers.php');
Config::load('avatar-credit-cards', __DIR__ . '/../config/avatars/credit-cards.php');
Config::load('avatar-flags', __DIR__ . '/../config/avatars/flags.php');
Config::load('locale-codes', __DIR__ . '/../config/locale/codes.php');
Config::load('locale-currencies', __DIR__ . '/../config/locale/currencies.php');
Config::load('locale-eu', __DIR__ . '/../config/locale/eu.php');
Config::load('locale-languages', __DIR__ . '/../config/locale/languages.php');
Config::load('locale-phones', __DIR__ . '/../config/locale/phones.php');
Config::load('locale-countries', __DIR__ . '/../config/locale/countries.php');
Config::load('locale-continents', __DIR__ . '/../config/locale/continents.php');
Config::load('locale-templates', __DIR__ . '/../config/locale/templates.php');
Config::load('storage-logos', __DIR__ . '/../config/storage/logos.php');
Config::load('storage-mimes', __DIR__ . '/../config/storage/mimes.php');
Config::load('storage-inputs', __DIR__ . '/../config/storage/inputs.php');
Config::load('storage-outputs', __DIR__ . '/../config/storage/outputs.php');
Config::load('specifications', __DIR__ . '/../config/specifications.php');
Config::load('templates-function', __DIR__ . '/../config/templates/function.php');
Config::load('templates-site', __DIR__ . '/../config/templates/site.php');
$configAdapter = new PHP();
Config::load('template-runtimes', __DIR__ . '/../config/template-runtimes.php', $configAdapter);
Config::load('events', __DIR__ . '/../config/events.php', $configAdapter);
Config::load('auth', __DIR__ . '/../config/auth.php', $configAdapter);
Config::load('apis', __DIR__ . '/../config/apis.php', $configAdapter); // List of APIs
Config::load('errors', __DIR__ . '/../config/errors.php', $configAdapter);
Config::load('oAuthProviders', __DIR__ . '/../config/oAuthProviders.php', $configAdapter);
Config::load('platforms', __DIR__ . '/../config/platforms.php', $configAdapter);
Config::load('console', __DIR__ . '/../config/console.php', $configAdapter);
Config::load('collections', __DIR__ . '/../config/collections.php', $configAdapter);
Config::load('frameworks', __DIR__ . '/../config/frameworks.php', $configAdapter);
Config::load('runtimes', __DIR__ . '/../config/runtimes.php', $configAdapter);
Config::load('runtimes-v2', __DIR__ . '/../config/runtimes-v2.php', $configAdapter);
Config::load('usage', __DIR__ . '/../config/usage.php', $configAdapter);
Config::load('roles', __DIR__ . '/../config/roles.php', $configAdapter); // User roles and scopes
Config::load('scopes', __DIR__ . '/../config/scopes.php', $configAdapter); // User roles and scopes
Config::load('services', __DIR__ . '/../config/services.php', $configAdapter); // List of services
Config::load('variables', __DIR__ . '/../config/variables.php', $configAdapter); // List of env variables
Config::load('regions', __DIR__ . '/../config/regions.php', $configAdapter); // List of available regions
Config::load('avatar-browsers', __DIR__ . '/../config/avatars/browsers.php', $configAdapter);
Config::load('avatar-credit-cards', __DIR__ . '/../config/avatars/credit-cards.php', $configAdapter);
Config::load('avatar-flags', __DIR__ . '/../config/avatars/flags.php', $configAdapter);
Config::load('locale-codes', __DIR__ . '/../config/locale/codes.php', $configAdapter);
Config::load('locale-currencies', __DIR__ . '/../config/locale/currencies.php', $configAdapter);
Config::load('locale-eu', __DIR__ . '/../config/locale/eu.php', $configAdapter);
Config::load('locale-languages', __DIR__ . '/../config/locale/languages.php', $configAdapter);
Config::load('locale-phones', __DIR__ . '/../config/locale/phones.php', $configAdapter);
Config::load('locale-countries', __DIR__ . '/../config/locale/countries.php', $configAdapter);
Config::load('locale-continents', __DIR__ . '/../config/locale/continents.php', $configAdapter);
Config::load('locale-templates', __DIR__ . '/../config/locale/templates.php', $configAdapter);
Config::load('storage-logos', __DIR__ . '/../config/storage/logos.php', $configAdapter);
Config::load('storage-mimes', __DIR__ . '/../config/storage/mimes.php', $configAdapter);
Config::load('storage-inputs', __DIR__ . '/../config/storage/inputs.php', $configAdapter);
Config::load('storage-outputs', __DIR__ . '/../config/storage/outputs.php', $configAdapter);
Config::load('specifications', __DIR__ . '/../config/specifications.php', $configAdapter);
Config::load('templates-function', __DIR__ . '/../config/templates/function.php', $configAdapter);
Config::load('templates-site', __DIR__ . '/../config/templates/site.php', $configAdapter);
+8
View File
@@ -297,3 +297,11 @@ const TOKENS_RESOURCE_TYPE_DATABASES = 'databases';
const SCHEDULE_RESOURCE_TYPE_EXECUTION = 'execution';
const SCHEDULE_RESOURCE_TYPE_FUNCTION = 'function';
const SCHEDULE_RESOURCE_TYPE_MESSAGE = 'message';
// Database types
const DATABASE_LEGACY_TYPE = 'legacy';
const DATABASE_TABLESDB_TYPE = 'tablesdb';
const DATABASE_DOCUMENTSDB_TYPE = 'documentsdb';
// CSV import/export allowed database types
const CSV_ALLOWED_DATABASE_TYPES = [DATABASE_LEGACY_TYPE, DATABASE_LEGACY_TYPE];
+1 -1
View File
@@ -52,7 +52,7 @@
"utopia-php/audit": "1.0.*",
"utopia-php/cache": "0.13.*",
"utopia-php/cli": "0.15.*",
"utopia-php/config": "0.2.*",
"utopia-php/config": "1.*.*",
"utopia-php/database": "3.*",
"utopia-php/agents": "0.*",
"utopia-php/detector": "0.2.*",
Generated
+39 -43
View File
@@ -3794,24 +3794,26 @@
},
{
"name": "utopia-php/config",
"version": "0.2.2",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/config.git",
"reference": "a3d7bc0312d7150d5e04b1362dc34b2b136908cc"
"reference": "6672bf6c1b54ba608593570cbef31bef75f17dd8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/config/zipball/a3d7bc0312d7150d5e04b1362dc34b2b136908cc",
"reference": "a3d7bc0312d7150d5e04b1362dc34b2b136908cc",
"url": "https://api.github.com/repos/utopia-php/config/zipball/6672bf6c1b54ba608593570cbef31bef75f17dd8",
"reference": "6672bf6c1b54ba608593570cbef31bef75f17dd8",
"shasum": ""
},
"require": {
"php": ">=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",
-7
View File
@@ -1,7 +0,0 @@
services:
appwrite:
# volumes:
# - ~/.ssh:/root/.ssh
environment:
- GH_TOKEN=
- GIT_EMAIL=
@@ -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://<REGION>.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)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // 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();
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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
@@ -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
@@ -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',
)
@@ -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
@@ -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
@@ -7,7 +7,7 @@ Client client = Client()
Avatars avatars = Avatars(client);
// Downloading file
UInt8List bytes = await avatars.getInitials(
Uint8List bytes = await avatars.getInitials(
name: '<NAME>', // optional
width: 0, // optional
height: 0, // optional
@@ -7,7 +7,7 @@ Client client = Client()
Avatars avatars = Avatars(client);
// Downloading file
UInt8List bytes = await avatars.getQR(
Uint8List bytes = await avatars.getQR(
text: '<TEXT>',
size: 1, // optional
margin: 0, // optional
@@ -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: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<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:'<USER_AGENT>' , // optional
fullpage:false , // optional
locale:'<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
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
// Downloading file
UInt8List bytes = await storage.getFileDownload(
Uint8List bytes = await storage.getFileDownload(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
token: '<TOKEN>', // optional
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
// Downloading file
UInt8List bytes = await storage.getFilePreview(
Uint8List bytes = await storage.getFilePreview(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
width: 0, // optional
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
// Downloading file
UInt8List bytes = await storage.getFileView(
Uint8List bytes = await storage.getFileView(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
token: '<TOKEN>', // optional
@@ -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://<REGION>.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: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<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);
@@ -1,4 +1,4 @@
import { Client, Avatars, , , } from "appwrite";
import { Client, Avatars, Theme, Timezone, Output } from "appwrite";
const client = new Client()
.setEndpoint('https://<REGION>.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: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<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);
@@ -3,4 +3,5 @@ appwrite functions create-template-deployment \
--repository <REPOSITORY> \
--owner <OWNER> \
--root-directory <ROOT_DIRECTORY> \
--version <VERSION>
--type commit \
--reference <REFERENCE>
@@ -3,4 +3,5 @@ appwrite sites create-template-deployment \
--repository <REPOSITORY> \
--owner <OWNER> \
--root-directory <ROOT_DIRECTORY> \
--version <VERSION>
--type branch \
--reference <REFERENCE>
@@ -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://<REGION>.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: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<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);
@@ -1,4 +1,4 @@
import { Client, Functions } from "@appwrite.io/console";
import { Client, Functions, } from "@appwrite.io/console";
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -11,7 +11,8 @@ const result = await functions.createTemplateDeployment({
repository: '<REPOSITORY>',
owner: '<OWNER>',
rootDirectory: '<ROOT_DIRECTORY>',
version: '<VERSION>',
type: .Commit,
reference: '<REFERENCE>',
activate: false // optional
});
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -9,7 +9,7 @@ const functions = new Functions(client);
const result = await functions.create({
functionId: '<FUNCTION_ID>',
name: '<NAME>',
runtime: .Node145,
runtime: Runtime.Node145,
execute: ["any"], // optional
events: [], // optional
schedule: '', // optional
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -9,7 +9,7 @@ const functions = new Functions(client);
const result = await functions.update({
functionId: '<FUNCTION_ID>',
name: '<NAME>',
runtime: .Node145, // optional
runtime: Runtime.Node145, // optional
execute: ["any"], // optional
events: [], // optional
schedule: '', // optional
@@ -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://<REGION>.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
});
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -10,7 +10,7 @@ const result = await projects.create({
projectId: '',
name: '<NAME>',
teamId: '<TEAM_ID>',
region: .Default, // optional
region: Region.Default, // optional
description: '<DESCRIPTION>', // optional
logo: '<LOGO>', // optional
url: 'https://example.com', // optional
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -8,7 +8,7 @@ const projects = new Projects(client);
const result = await projects.updateAPIStatus({
projectId: '<PROJECT_ID>',
api: .Rest,
api: Api.Rest,
status: false
});
@@ -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://<REGION>.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: '<RESOURCE_ID>',
resourceType: ProxyResourceType.Site
});
@@ -1,4 +1,4 @@
import { Client, Sites } from "@appwrite.io/console";
import { Client, Sites, } from "@appwrite.io/console";
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -11,7 +11,8 @@ const result = await sites.createTemplateDeployment({
repository: '<REPOSITORY>',
owner: '<OWNER>',
rootDirectory: '<ROOT_DIRECTORY>',
version: '<VERSION>',
type: .Branch,
reference: '<REFERENCE>',
activate: false // optional
});
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -9,15 +9,15 @@ const sites = new Sites(client);
const result = await sites.create({
siteId: '<SITE_ID>',
name: '<NAME>',
framework: .Analog,
buildRuntime: .Node145,
framework: Framework.Analog,
buildRuntime: BuildRuntime.Node145,
enabled: false, // optional
logging: false, // optional
timeout: 1, // optional
installCommand: '<INSTALL_COMMAND>', // optional
buildCommand: '<BUILD_COMMAND>', // optional
outputDirectory: '<OUTPUT_DIRECTORY>', // optional
adapter: .Static, // optional
adapter: Adapter.Static, // optional
installationId: '<INSTALLATION_ID>', // optional
fallbackFile: '<FALLBACK_FILE>', // optional
providerRepositoryId: '<PROVIDER_REPOSITORY_ID>', // optional
@@ -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://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
@@ -9,15 +9,15 @@ const sites = new Sites(client);
const result = await sites.update({
siteId: '<SITE_ID>',
name: '<NAME>',
framework: .Analog,
framework: Framework.Analog,
enabled: false, // optional
logging: false, // optional
timeout: 1, // optional
installCommand: '<INSTALL_COMMAND>', // optional
buildCommand: '<BUILD_COMMAND>', // optional
outputDirectory: '<OUTPUT_DIRECTORY>', // optional
buildRuntime: .Node145, // optional
adapter: .Static, // optional
buildRuntime: BuildRuntime.Node145, // optional
adapter: Adapter.Static, // optional
fallbackFile: '<FALLBACK_FILE>', // optional
installationId: '<INSTALLATION_ID>', // optional
providerRepositoryId: '<PROVIDER_REPOSITORY_ID>', // optional
@@ -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://<REGION>.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);
@@ -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://<REGION>.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);
@@ -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)
@@ -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)
@@ -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',
);
@@ -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)
@@ -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)
@@ -7,7 +7,7 @@ Client client = Client()
Avatars avatars = Avatars(client);
UInt8List result = await avatars.getInitials(
Uint8List result = await avatars.getInitials(
name: '<NAME>', // (optional)
width: 0, // (optional)
height: 0, // (optional)
@@ -7,7 +7,7 @@ Client client = Client()
Avatars avatars = Avatars(client);
UInt8List result = await avatars.getQR(
Uint8List result = await avatars.getQR(
text: '<TEXT>',
size: 1, // (optional)
margin: 0, // (optional)
@@ -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: '<USER_AGENT>', // (optional)
fullpage: false, // (optional)
locale: '<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)
);
@@ -12,6 +12,7 @@ Deployment result = await functions.createTemplateDeployment(
repository: '<REPOSITORY>',
owner: '<OWNER>',
rootDirectory: '<ROOT_DIRECTORY>',
version: '<VERSION>',
type: .commit,
reference: '<REFERENCE>',
activate: false, // (optional)
);
@@ -10,7 +10,7 @@ Functions functions = Functions(client);
Func result = await functions.create(
functionId: '<FUNCTION_ID>',
name: '<NAME>',
runtime: .node145,
runtime: Runtime.node145,
execute: ["any"], // (optional)
events: [], // (optional)
schedule: '', // (optional)
@@ -7,7 +7,7 @@ Client client = Client()
Functions functions = Functions(client);
UInt8List result = await functions.getDeploymentDownload(
Uint8List result = await functions.getDeploymentDownload(
functionId: '<FUNCTION_ID>',
deploymentId: '<DEPLOYMENT_ID>',
type: DeploymentDownloadType.source, // (optional)
@@ -10,7 +10,7 @@ Functions functions = Functions(client);
Func result = await functions.update(
functionId: '<FUNCTION_ID>',
name: '<NAME>',
runtime: .node145, // (optional)
runtime: Runtime.node145, // (optional)
execute: ["any"], // (optional)
events: [], // (optional)
schedule: '', // (optional)
@@ -8,6 +8,6 @@ Client client = Client()
Health health = Health(client);
HealthQueue result = await health.getFailedJobs(
name: .v1Database,
name: Name.v1Database,
threshold: 0, // (optional)
);
@@ -12,6 +12,7 @@ Deployment result = await sites.createTemplateDeployment(
repository: '<REPOSITORY>',
owner: '<OWNER>',
rootDirectory: '<ROOT_DIRECTORY>',
version: '<VERSION>',
type: .branch,
reference: '<REFERENCE>',
activate: false, // (optional)
);
@@ -10,15 +10,15 @@ Sites sites = Sites(client);
Site result = await sites.create(
siteId: '<SITE_ID>',
name: '<NAME>',
framework: .analog,
buildRuntime: .node145,
framework: Framework.analog,
buildRuntime: BuildRuntime.node145,
enabled: false, // (optional)
logging: false, // (optional)
timeout: 1, // (optional)
installCommand: '<INSTALL_COMMAND>', // (optional)
buildCommand: '<BUILD_COMMAND>', // (optional)
outputDirectory: '<OUTPUT_DIRECTORY>', // (optional)
adapter: .static, // (optional)
adapter: Adapter.static, // (optional)
installationId: '<INSTALLATION_ID>', // (optional)
fallbackFile: '<FALLBACK_FILE>', // (optional)
providerRepositoryId: '<PROVIDER_REPOSITORY_ID>', // (optional)
@@ -7,7 +7,7 @@ Client client = Client()
Sites sites = Sites(client);
UInt8List result = await sites.getDeploymentDownload(
Uint8List result = await sites.getDeploymentDownload(
siteId: '<SITE_ID>',
deploymentId: '<DEPLOYMENT_ID>',
type: DeploymentDownloadType.source, // (optional)
@@ -10,15 +10,15 @@ Sites sites = Sites(client);
Site result = await sites.update(
siteId: '<SITE_ID>',
name: '<NAME>',
framework: .analog,
framework: Framework.analog,
enabled: false, // (optional)
logging: false, // (optional)
timeout: 1, // (optional)
installCommand: '<INSTALL_COMMAND>', // (optional)
buildCommand: '<BUILD_COMMAND>', // (optional)
outputDirectory: '<OUTPUT_DIRECTORY>', // (optional)
buildRuntime: .node145, // (optional)
adapter: .static, // (optional)
buildRuntime: BuildRuntime.node145, // (optional)
adapter: Adapter.static, // (optional)
fallbackFile: '<FALLBACK_FILE>', // (optional)
installationId: '<INSTALLATION_ID>', // (optional)
providerRepositoryId: '<PROVIDER_REPOSITORY_ID>', // (optional)
@@ -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)
);
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
UInt8List result = await storage.getFileDownload(
Uint8List result = await storage.getFileDownload(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
token: '<TOKEN>', // (optional)
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
UInt8List result = await storage.getFilePreview(
Uint8List result = await storage.getFilePreview(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
width: 0, // (optional)
@@ -7,7 +7,7 @@ Client client = Client()
Storage storage = Storage(client);
UInt8List result = await storage.getFileView(
Uint8List result = await storage.getFileView(
bucketId: '<BUCKET_ID>',
fileId: '<FILE_ID>',
token: '<TOKEN>', // (optional)
@@ -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)
);
@@ -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: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<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
);
@@ -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: "<REPOSITORY>",
owner: "<OWNER>",
rootDirectory: "<ROOT_DIRECTORY>",
version: "<VERSION>",
type: .Commit,
reference: "<REFERENCE>",
activate: false // optional
);
@@ -13,7 +13,7 @@ Functions functions = new Functions(client);
Function result = await functions.Create(
functionId: "<FUNCTION_ID>",
name: "<NAME>",
runtime: .Node145,
runtime: Runtime.Node145,
execute: ["any"], // optional
events: new List<string>(), // optional
schedule: "", // optional
@@ -13,7 +13,7 @@ Functions functions = new Functions(client);
Function result = await functions.Update(
functionId: "<FUNCTION_ID>",
name: "<NAME>",
runtime: .Node145, // optional
runtime: Runtime.Node145, // optional
execute: ["any"], // optional
events: new List<string>(), // optional
schedule: "", // optional
@@ -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
);
@@ -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: "<REPOSITORY>",
owner: "<OWNER>",
rootDirectory: "<ROOT_DIRECTORY>",
version: "<VERSION>",
type: .Branch,
reference: "<REFERENCE>",
activate: false // optional
);
@@ -13,15 +13,15 @@ Sites sites = new Sites(client);
Site result = await sites.Create(
siteId: "<SITE_ID>",
name: "<NAME>",
framework: .Analog,
buildRuntime: .Node145,
framework: Framework.Analog,
buildRuntime: BuildRuntime.Node145,
enabled: false, // optional
logging: false, // optional
timeout: 1, // optional
installCommand: "<INSTALL_COMMAND>", // optional
buildCommand: "<BUILD_COMMAND>", // optional
outputDirectory: "<OUTPUT_DIRECTORY>", // optional
adapter: .Static, // optional
adapter: Adapter.Static, // optional
installationId: "<INSTALLATION_ID>", // optional
fallbackFile: "<FALLBACK_FILE>", // optional
providerRepositoryId: "<PROVIDER_REPOSITORY_ID>", // optional
@@ -13,15 +13,15 @@ Sites sites = new Sites(client);
Site result = await sites.Update(
siteId: "<SITE_ID>",
name: "<NAME>",
framework: .Analog,
framework: Framework.Analog,
enabled: false, // optional
logging: false, // optional
timeout: 1, // optional
installCommand: "<INSTALL_COMMAND>", // optional
buildCommand: "<BUILD_COMMAND>", // optional
outputDirectory: "<OUTPUT_DIRECTORY>", // optional
buildRuntime: .Node145, // optional
adapter: .Static, // optional
buildRuntime: BuildRuntime.Node145, // optional
adapter: Adapter.Static, // optional
fallbackFile: "<FALLBACK_FILE>", // optional
installationId: "<INSTALLATION_ID>", // optional
providerRepositoryId: "<PROVIDER_REPOSITORY_ID>", // optional
@@ -18,7 +18,8 @@ Bucket result = await storage.CreateBucket(
enabled: false, // optional
maximumFileSize: 1, // optional
allowedFileExtensions: new List<string>(), // optional
compression: .None, // optional
compression: Compression.None, // optional
encryption: false, // optional
antivirus: false // optional
antivirus: false, // optional
transformations: false // optional
);
@@ -18,7 +18,8 @@ Bucket result = await storage.UpdateBucket(
enabled: false, // optional
maximumFileSize: 1, // optional
allowedFileExtensions: new List<string>(), // optional
compression: .None, // optional
compression: Compression.None, // optional
encryption: false, // optional
antivirus: false // optional
antivirus: false, // optional
transformations: false // optional
);
@@ -19,6 +19,7 @@ response, error := service.CreateTemplateDeployment(
"<REPOSITORY>",
"<OWNER>",
"<ROOT_DIRECTORY>",
"<VERSION>",
"commit",
"<REFERENCE>",
functions.WithCreateTemplateDeploymentActivate(false),
)
@@ -19,6 +19,7 @@ response, error := service.CreateTemplateDeployment(
"<REPOSITORY>",
"<OWNER>",
"<ROOT_DIRECTORY>",
"<VERSION>",
"branch",
"<REFERENCE>",
sites.WithCreateTemplateDeploymentActivate(false),
)
@@ -25,4 +25,5 @@ response, error := service.CreateBucket(
storage.WithCreateBucketCompression("none"),
storage.WithCreateBucketEncryption(false),
storage.WithCreateBucketAntivirus(false),
storage.WithCreateBucketTransformations(false),
)
@@ -25,4 +25,5 @@ response, error := service.UpdateBucket(
storage.WithUpdateBucketCompression("none"),
storage.WithUpdateBucketEncryption(false),
storage.WithUpdateBucketAntivirus(false),
storage.WithUpdateBucketTransformations(false),
)
@@ -4,7 +4,8 @@ mutation {
repository: "<REPOSITORY>",
owner: "<OWNER>",
rootDirectory: "<ROOT_DIRECTORY>",
version: "<VERSION>",
type: "commit",
reference: "<REFERENCE>",
activate: false
) {
_id
@@ -4,7 +4,8 @@ mutation {
repository: "<REPOSITORY>",
owner: "<OWNER>",
rootDirectory: "<ROOT_DIRECTORY>",
version: "<VERSION>",
type: "branch",
reference: "<REFERENCE>",
activate: false
) {
_id
@@ -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
}
}
@@ -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
}
}
@@ -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://<REGION>.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)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // 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();
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -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://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
@@ -14,7 +15,8 @@ functions.createTemplateDeployment(
"<REPOSITORY>", // repository
"<OWNER>", // owner
"<ROOT_DIRECTORY>", // rootDirectory
"<VERSION>", // version
.COMMIT, // type
"<REFERENCE>", // reference
false, // activate (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
@@ -13,7 +13,7 @@ Functions functions = new Functions(client);
functions.create(
"<FUNCTION_ID>", // functionId
"<NAME>", // name
.NODE_14_5, // runtime
Runtime.NODE_14_5, // runtime
listOf("any"), // execute (optional)
listOf(), // events (optional)
"", // schedule (optional)
Loaded 100 of 224 files, more files were not shown because too many files have changed in this diff. Show more