specs and sdk

This commit is contained in:
Atharva Deosthale
2025-09-14 15:22:51 +05:30
parent 2b1e3bd947
commit cb03bfe74c
6 changed files with 186 additions and 745 deletions
+50 -129
View File
@@ -4888,7 +4888,7 @@
"x-appwrite": {
"method": "getResource",
"group": null,
"weight": 497,
"weight": 496,
"cookies": false,
"type": "",
"demo": "console\/get-resource.md",
@@ -12932,6 +12932,16 @@
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -12941,8 +12951,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -28209,7 +28218,7 @@
"x-appwrite": {
"method": "listRules",
"group": null,
"weight": 503,
"weight": 502,
"cookies": false,
"type": "",
"demo": "proxy\/list-rules.md",
@@ -28283,7 +28292,7 @@
"x-appwrite": {
"method": "createAPIRule",
"group": null,
"weight": 498,
"weight": 497,
"cookies": false,
"type": "",
"demo": "proxy\/create-api-rule.md",
@@ -28350,7 +28359,7 @@
"x-appwrite": {
"method": "createFunctionRule",
"group": null,
"weight": 500,
"weight": 499,
"cookies": false,
"type": "",
"demo": "proxy\/create-function-rule.md",
@@ -28428,7 +28437,7 @@
"x-appwrite": {
"method": "createRedirectRule",
"group": null,
"weight": 501,
"weight": 500,
"cookies": false,
"type": "",
"demo": "proxy\/create-redirect-rule.md",
@@ -28541,7 +28550,7 @@
"x-appwrite": {
"method": "createSiteRule",
"group": null,
"weight": 499,
"weight": 498,
"cookies": false,
"type": "",
"demo": "proxy\/create-site-rule.md",
@@ -28619,7 +28628,7 @@
"x-appwrite": {
"method": "getRule",
"group": null,
"weight": 502,
"weight": 501,
"cookies": false,
"type": "",
"demo": "proxy\/get-rule.md",
@@ -28670,7 +28679,7 @@
"x-appwrite": {
"method": "deleteRule",
"group": null,
"weight": 504,
"weight": 503,
"cookies": false,
"type": "",
"demo": "proxy\/delete-rule.md",
@@ -28730,7 +28739,7 @@
"x-appwrite": {
"method": "updateRuleVerification",
"group": null,
"weight": 505,
"weight": 504,
"cookies": false,
"type": "",
"demo": "proxy\/update-rule-verification.md",
@@ -29085,103 +29094,6 @@
}
}
},
"\/sites\/direct": {
"post": {
"summary": "Create direct deployment",
"operationId": "sitesCreateDirectDeployment",
"tags": [
"sites"
],
"description": "Create a deployment directly from a repository branch.",
"responses": {
"202": {
"description": "Deployment",
"content": {
"application\/json": {
"schema": {
"$ref": "#\/components\/schemas\/deployment"
}
}
}
}
},
"deprecated": false,
"x-appwrite": {
"method": "createDirectDeployment",
"group": "deployments",
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/create-direct-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a deployment directly from a repository branch.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "sites.write",
"platforms": [
"server"
],
"packaging": false,
"auth": {
"Project": []
}
},
"security": [
{
"Project": [],
"Key": []
}
],
"requestBody": {
"content": {
"application\/json": {
"schema": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "Site ID.",
"x-example": "<SITE_ID>"
},
"repository": {
"type": "string",
"description": "Repository name of the template.",
"x-example": "<REPOSITORY>"
},
"owner": {
"type": "string",
"description": "The name of the owner of the template.",
"x-example": "<OWNER>"
},
"rootDirectory": {
"type": "string",
"description": "Path to site code in the template repo.",
"x-example": "<ROOT_DIRECTORY>"
},
"branch": {
"type": "string",
"description": "Branch to create deployment from.",
"x-example": "<BRANCH>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
"x-example": false
}
},
"required": [
"siteId",
"repository",
"owner",
"rootDirectory",
"branch"
]
}
}
}
}
}
},
"\/sites\/frameworks": {
"get": {
"summary": "List frameworks",
@@ -29255,7 +29167,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
"weight": 496,
"weight": 495,
"cookies": false,
"type": "",
"demo": "sites\/list-specifications.md",
@@ -29305,7 +29217,7 @@
"x-appwrite": {
"method": "listTemplates",
"group": "templates",
"weight": 492,
"weight": 491,
"cookies": false,
"type": "",
"demo": "sites\/list-templates.md",
@@ -29405,7 +29317,7 @@
"x-appwrite": {
"method": "getTemplate",
"group": "templates",
"weight": 493,
"weight": 492,
"cookies": false,
"type": "",
"demo": "sites\/get-template.md",
@@ -29465,7 +29377,7 @@
"x-appwrite": {
"method": "listUsage",
"group": null,
"weight": 494,
"weight": 493,
"cookies": false,
"type": "",
"demo": "sites\/list-usage.md",
@@ -30304,9 +30216,19 @@
},
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -30316,8 +30238,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -30734,7 +30655,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
"weight": 485,
"weight": 484,
"cookies": false,
"type": "",
"demo": "sites\/list-logs.md",
@@ -30805,7 +30726,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
"weight": 484,
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/get-log.md",
@@ -30867,7 +30788,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
"weight": 486,
"weight": 485,
"cookies": false,
"type": "",
"demo": "sites\/delete-log.md",
@@ -30938,7 +30859,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
"weight": 495,
"weight": 494,
"cookies": false,
"type": "",
"demo": "sites\/get-usage.md",
@@ -31020,7 +30941,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
"weight": 489,
"weight": 488,
"cookies": false,
"type": "",
"demo": "sites\/list-variables.md",
@@ -31079,7 +31000,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
"weight": 487,
"weight": 486,
"cookies": false,
"type": "",
"demo": "sites\/create-variable.md",
@@ -31170,7 +31091,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
"weight": 488,
"weight": 487,
"cookies": false,
"type": "",
"demo": "sites\/get-variable.md",
@@ -31239,7 +31160,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
"weight": 490,
"weight": 489,
"cookies": false,
"type": "",
"demo": "sites\/update-variable.md",
@@ -31330,7 +31251,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
"weight": 491,
"weight": 490,
"cookies": false,
"type": "",
"demo": "sites\/delete-variable.md",
@@ -40081,7 +40002,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
"weight": 508,
"weight": 507,
"cookies": false,
"type": "",
"demo": "tokens\/list.md",
@@ -40161,7 +40082,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
"weight": 506,
"weight": 505,
"cookies": false,
"type": "",
"demo": "tokens\/create-file-token.md",
@@ -40250,7 +40171,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
"weight": 507,
"weight": 506,
"cookies": false,
"type": "",
"demo": "tokens\/get.md",
@@ -40310,7 +40231,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
"weight": 509,
"weight": 508,
"cookies": false,
"type": "",
"demo": "tokens\/update.md",
@@ -40380,7 +40301,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
"weight": 510,
"weight": 509,
"cookies": false,
"type": "",
"demo": "tokens\/delete.md",
+37 -117
View File
@@ -11714,6 +11714,16 @@
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -11723,8 +11733,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -20014,104 +20023,6 @@
}
}
},
"\/sites\/direct": {
"post": {
"summary": "Create direct deployment",
"operationId": "sitesCreateDirectDeployment",
"tags": [
"sites"
],
"description": "Create a deployment directly from a repository branch.",
"responses": {
"202": {
"description": "Deployment",
"content": {
"application\/json": {
"schema": {
"$ref": "#\/components\/schemas\/deployment"
}
}
}
}
},
"deprecated": false,
"x-appwrite": {
"method": "createDirectDeployment",
"group": "deployments",
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/create-direct-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a deployment directly from a repository branch.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "sites.write",
"platforms": [
"server"
],
"packaging": false,
"auth": {
"Project": [],
"Key": []
}
},
"security": [
{
"Project": [],
"Key": []
}
],
"requestBody": {
"content": {
"application\/json": {
"schema": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "Site ID.",
"x-example": "<SITE_ID>"
},
"repository": {
"type": "string",
"description": "Repository name of the template.",
"x-example": "<REPOSITORY>"
},
"owner": {
"type": "string",
"description": "The name of the owner of the template.",
"x-example": "<OWNER>"
},
"rootDirectory": {
"type": "string",
"description": "Path to site code in the template repo.",
"x-example": "<ROOT_DIRECTORY>"
},
"branch": {
"type": "string",
"description": "Branch to create deployment from.",
"x-example": "<BRANCH>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
"x-example": false
}
},
"required": [
"siteId",
"repository",
"owner",
"rootDirectory",
"branch"
]
}
}
}
}
}
},
"\/sites\/frameworks": {
"get": {
"summary": "List frameworks",
@@ -20186,7 +20097,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
"weight": 496,
"weight": 495,
"cookies": false,
"type": "",
"demo": "sites\/list-specifications.md",
@@ -21012,9 +20923,19 @@
},
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"description": "Version (tag) for the repo linked to the function template.",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -21024,8 +20945,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -21447,7 +21367,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
"weight": 485,
"weight": 484,
"cookies": false,
"type": "",
"demo": "sites\/list-logs.md",
@@ -21519,7 +21439,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
"weight": 484,
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/get-log.md",
@@ -21582,7 +21502,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
"weight": 486,
"weight": 485,
"cookies": false,
"type": "",
"demo": "sites\/delete-log.md",
@@ -21654,7 +21574,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
"weight": 489,
"weight": 488,
"cookies": false,
"type": "",
"demo": "sites\/list-variables.md",
@@ -21714,7 +21634,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
"weight": 487,
"weight": 486,
"cookies": false,
"type": "",
"demo": "sites\/create-variable.md",
@@ -21806,7 +21726,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
"weight": 488,
"weight": 487,
"cookies": false,
"type": "",
"demo": "sites\/get-variable.md",
@@ -21876,7 +21796,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
"weight": 490,
"weight": 489,
"cookies": false,
"type": "",
"demo": "sites\/update-variable.md",
@@ -21968,7 +21888,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
"weight": 491,
"weight": 490,
"cookies": false,
"type": "",
"demo": "sites\/delete-variable.md",
@@ -30122,7 +30042,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
"weight": 508,
"weight": 507,
"cookies": false,
"type": "",
"demo": "tokens\/list.md",
@@ -30203,7 +30123,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
"weight": 506,
"weight": 505,
"cookies": false,
"type": "",
"demo": "tokens\/create-file-token.md",
@@ -30293,7 +30213,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
"weight": 507,
"weight": 506,
"cookies": false,
"type": "",
"demo": "tokens\/get.md",
@@ -30354,7 +30274,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
"weight": 509,
"weight": 508,
"cookies": false,
"type": "",
"demo": "tokens\/update.md",
@@ -30425,7 +30345,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
"weight": 510,
"weight": 509,
"cookies": false,
"type": "",
"demo": "tokens\/delete.md",
+56 -139
View File
@@ -5052,7 +5052,7 @@
"x-appwrite": {
"method": "getResource",
"group": null,
"weight": 497,
"weight": 496,
"cookies": false,
"type": "",
"demo": "console\/get-resource.md",
@@ -12928,9 +12928,21 @@
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the function template.",
"default": null,
"default": "",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"default": "",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"default": "",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -12941,8 +12953,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -28351,7 +28362,7 @@
"x-appwrite": {
"method": "listRules",
"group": null,
"weight": 503,
"weight": 502,
"cookies": false,
"type": "",
"demo": "proxy\/list-rules.md",
@@ -28424,7 +28435,7 @@
"x-appwrite": {
"method": "createAPIRule",
"group": null,
"weight": 498,
"weight": 497,
"cookies": false,
"type": "",
"demo": "proxy\/create-api-rule.md",
@@ -28494,7 +28505,7 @@
"x-appwrite": {
"method": "createFunctionRule",
"group": null,
"weight": 500,
"weight": 499,
"cookies": false,
"type": "",
"demo": "proxy\/create-function-rule.md",
@@ -28577,7 +28588,7 @@
"x-appwrite": {
"method": "createRedirectRule",
"group": null,
"weight": 501,
"weight": 500,
"cookies": false,
"type": "",
"demo": "proxy\/create-redirect-rule.md",
@@ -28697,7 +28708,7 @@
"x-appwrite": {
"method": "createSiteRule",
"group": null,
"weight": 499,
"weight": 498,
"cookies": false,
"type": "",
"demo": "proxy\/create-site-rule.md",
@@ -28778,7 +28789,7 @@
"x-appwrite": {
"method": "getRule",
"group": null,
"weight": 502,
"weight": 501,
"cookies": false,
"type": "",
"demo": "proxy\/get-rule.md",
@@ -28831,7 +28842,7 @@
"x-appwrite": {
"method": "deleteRule",
"group": null,
"weight": 504,
"weight": 503,
"cookies": false,
"type": "",
"demo": "proxy\/delete-rule.md",
@@ -28891,7 +28902,7 @@
"x-appwrite": {
"method": "updateRuleVerification",
"group": null,
"weight": 505,
"weight": 504,
"cookies": false,
"type": "",
"demo": "proxy\/update-rule-verification.md",
@@ -29264,111 +29275,6 @@
]
}
},
"\/sites\/direct": {
"post": {
"summary": "Create direct deployment",
"operationId": "sitesCreateDirectDeployment",
"consumes": [
"application\/json"
],
"produces": [
"application\/json"
],
"tags": [
"sites"
],
"description": "Create a deployment directly from a repository branch.",
"responses": {
"202": {
"description": "Deployment",
"schema": {
"$ref": "#\/definitions\/deployment"
}
}
},
"deprecated": false,
"x-appwrite": {
"method": "createDirectDeployment",
"group": "deployments",
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/create-direct-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a deployment directly from a repository branch.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "sites.write",
"platforms": [
"server"
],
"packaging": false,
"auth": {
"Project": []
}
},
"security": [
{
"Project": [],
"Key": []
}
],
"parameters": [
{
"name": "payload",
"in": "body",
"schema": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "Site ID.",
"default": null,
"x-example": "<SITE_ID>"
},
"repository": {
"type": "string",
"description": "Repository name of the template.",
"default": null,
"x-example": "<REPOSITORY>"
},
"owner": {
"type": "string",
"description": "The name of the owner of the template.",
"default": null,
"x-example": "<OWNER>"
},
"rootDirectory": {
"type": "string",
"description": "Path to site code in the template repo.",
"default": null,
"x-example": "<ROOT_DIRECTORY>"
},
"branch": {
"type": "string",
"description": "Branch to create deployment from.",
"default": null,
"x-example": "<BRANCH>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
"default": true,
"x-example": false
}
},
"required": [
"siteId",
"repository",
"owner",
"rootDirectory",
"branch"
]
}
}
]
}
},
"\/sites\/frameworks": {
"get": {
"summary": "List frameworks",
@@ -29442,7 +29348,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
"weight": 496,
"weight": 495,
"cookies": false,
"type": "",
"demo": "sites\/list-specifications.md",
@@ -29492,7 +29398,7 @@
"x-appwrite": {
"method": "listTemplates",
"group": "templates",
"weight": 492,
"weight": 491,
"cookies": false,
"type": "",
"demo": "sites\/list-templates.md",
@@ -29586,7 +29492,7 @@
"x-appwrite": {
"method": "getTemplate",
"group": "templates",
"weight": 493,
"weight": 492,
"cookies": false,
"type": "",
"demo": "sites\/get-template.md",
@@ -29644,7 +29550,7 @@
"x-appwrite": {
"method": "listUsage",
"group": null,
"weight": 494,
"weight": 493,
"cookies": false,
"type": "",
"demo": "sites\/list-usage.md",
@@ -30490,10 +30396,22 @@
},
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"default": null,
"description": "Version (tag) for the repo linked to the function template.",
"default": "",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"default": "",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"default": "",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -30504,8 +30422,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -30916,7 +30833,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
"weight": 485,
"weight": 484,
"cookies": false,
"type": "",
"demo": "sites\/list-logs.md",
@@ -30987,7 +30904,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
"weight": 484,
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/get-log.md",
@@ -31051,7 +30968,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
"weight": 486,
"weight": 485,
"cookies": false,
"type": "",
"demo": "sites\/delete-log.md",
@@ -31118,7 +31035,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
"weight": 495,
"weight": 494,
"cookies": false,
"type": "",
"demo": "sites\/get-usage.md",
@@ -31196,7 +31113,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
"weight": 489,
"weight": 488,
"cookies": false,
"type": "",
"demo": "sites\/list-variables.md",
@@ -31255,7 +31172,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
"weight": 487,
"weight": 486,
"cookies": false,
"type": "",
"demo": "sites\/create-variable.md",
@@ -31345,7 +31262,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
"weight": 488,
"weight": 487,
"cookies": false,
"type": "",
"demo": "sites\/get-variable.md",
@@ -31412,7 +31329,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
"weight": 490,
"weight": 489,
"cookies": false,
"type": "",
"demo": "sites\/update-variable.md",
@@ -31504,7 +31421,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
"weight": 491,
"weight": 490,
"cookies": false,
"type": "",
"demo": "sites\/delete-variable.md",
@@ -40021,7 +39938,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
"weight": 508,
"weight": 507,
"cookies": false,
"type": "",
"demo": "tokens\/list.md",
@@ -40101,7 +40018,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
"weight": 506,
"weight": 505,
"cookies": false,
"type": "",
"demo": "tokens\/create-file-token.md",
@@ -40185,7 +40102,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
"weight": 507,
"weight": 506,
"cookies": false,
"type": "",
"demo": "tokens\/get.md",
@@ -40245,7 +40162,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
"weight": 509,
"weight": 508,
"cookies": false,
"type": "",
"demo": "tokens\/update.md",
@@ -40316,7 +40233,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
"weight": 510,
"weight": 509,
"cookies": false,
"type": "",
"demo": "tokens\/delete.md",
+43 -127
View File
@@ -11735,9 +11735,21 @@
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the function template.",
"default": null,
"default": "",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"default": "",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"default": "",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -11748,8 +11760,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -20226,112 +20237,6 @@
]
}
},
"\/sites\/direct": {
"post": {
"summary": "Create direct deployment",
"operationId": "sitesCreateDirectDeployment",
"consumes": [
"application\/json"
],
"produces": [
"application\/json"
],
"tags": [
"sites"
],
"description": "Create a deployment directly from a repository branch.",
"responses": {
"202": {
"description": "Deployment",
"schema": {
"$ref": "#\/definitions\/deployment"
}
}
},
"deprecated": false,
"x-appwrite": {
"method": "createDirectDeployment",
"group": "deployments",
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/create-direct-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a deployment directly from a repository branch.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "sites.write",
"platforms": [
"server"
],
"packaging": false,
"auth": {
"Project": [],
"Key": []
}
},
"security": [
{
"Project": [],
"Key": []
}
],
"parameters": [
{
"name": "payload",
"in": "body",
"schema": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "Site ID.",
"default": null,
"x-example": "<SITE_ID>"
},
"repository": {
"type": "string",
"description": "Repository name of the template.",
"default": null,
"x-example": "<REPOSITORY>"
},
"owner": {
"type": "string",
"description": "The name of the owner of the template.",
"default": null,
"x-example": "<OWNER>"
},
"rootDirectory": {
"type": "string",
"description": "Path to site code in the template repo.",
"default": null,
"x-example": "<ROOT_DIRECTORY>"
},
"branch": {
"type": "string",
"description": "Branch to create deployment from.",
"default": null,
"x-example": "<BRANCH>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
"default": true,
"x-example": false
}
},
"required": [
"siteId",
"repository",
"owner",
"rootDirectory",
"branch"
]
}
}
]
}
},
"\/sites\/frameworks": {
"get": {
"summary": "List frameworks",
@@ -20406,7 +20311,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
"weight": 496,
"weight": 495,
"cookies": false,
"type": "",
"demo": "sites\/list-specifications.md",
@@ -21241,10 +21146,22 @@
},
"version": {
"type": "string",
"description": "Version (tag) for the repo linked to the site template.",
"default": null,
"description": "Version (tag) for the repo linked to the function template.",
"default": "",
"x-example": "<VERSION>"
},
"type": {
"type": "string",
"description": "Type for the reference provided. Can be commit, branch, or version",
"default": "",
"x-example": "<TYPE>"
},
"reference": {
"type": "string",
"description": "Reference value, can be a commit hash, branch name, or release tag",
"default": "",
"x-example": "<REFERENCE>"
},
"activate": {
"type": "boolean",
"description": "Automatically activate the deployment when it is finished building.",
@@ -21255,8 +21172,7 @@
"required": [
"repository",
"owner",
"rootDirectory",
"version"
"rootDirectory"
]
}
}
@@ -21672,7 +21588,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
"weight": 485,
"weight": 484,
"cookies": false,
"type": "",
"demo": "sites\/list-logs.md",
@@ -21744,7 +21660,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
"weight": 484,
"weight": 483,
"cookies": false,
"type": "",
"demo": "sites\/get-log.md",
@@ -21809,7 +21725,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
"weight": 486,
"weight": 485,
"cookies": false,
"type": "",
"demo": "sites\/delete-log.md",
@@ -21877,7 +21793,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
"weight": 489,
"weight": 488,
"cookies": false,
"type": "",
"demo": "sites\/list-variables.md",
@@ -21937,7 +21853,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
"weight": 487,
"weight": 486,
"cookies": false,
"type": "",
"demo": "sites\/create-variable.md",
@@ -22028,7 +21944,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
"weight": 488,
"weight": 487,
"cookies": false,
"type": "",
"demo": "sites\/get-variable.md",
@@ -22096,7 +22012,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
"weight": 490,
"weight": 489,
"cookies": false,
"type": "",
"demo": "sites\/update-variable.md",
@@ -22189,7 +22105,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
"weight": 491,
"weight": 490,
"cookies": false,
"type": "",
"demo": "sites\/delete-variable.md",
@@ -30142,7 +30058,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
"weight": 508,
"weight": 507,
"cookies": false,
"type": "",
"demo": "tokens\/list.md",
@@ -30223,7 +30139,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
"weight": 506,
"weight": 505,
"cookies": false,
"type": "",
"demo": "tokens\/create-file-token.md",
@@ -30308,7 +30224,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
"weight": 507,
"weight": 506,
"cookies": false,
"type": "",
"demo": "tokens\/get.md",
@@ -30369,7 +30285,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
"weight": 509,
"weight": 508,
"cookies": false,
"type": "",
"demo": "tokens\/update.md",
@@ -30441,7 +30357,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
"weight": 510,
"weight": 509,
"cookies": false,
"type": "",
"demo": "tokens\/delete.md",
@@ -1,231 +0,0 @@
<?php
namespace Appwrite\Platform\Modules\Sites\Http\Deployments\Direct;
use Appwrite\Event\Build;
use Appwrite\Event\Event;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Modules\Compute\Base;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\Method;
use Appwrite\SDK\Response as SDKResponse;
use Appwrite\Utopia\Response;
use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Helpers\ID;
use Utopia\Database\Helpers\Permission;
use Utopia\Database\Helpers\Role;
use Utopia\Database\Validator\Authorization;
use Utopia\Database\Validator\UID;
use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP;
use Utopia\Swoole\Request;
use Utopia\System\System;
use Utopia\Validator\Boolean;
use Utopia\Validator\Text;
use Utopia\VCS\Adapter\Git\GitHub;
class Create extends Base
{
use HTTP;
public static function getName()
{
return 'createDirectDeployment';
}
public function __construct()
{
$this
->setHttpMethod(Action::HTTP_REQUEST_METHOD_POST)
->setHttpPath('/v1/sites/direct')
->desc('Create direct deployment')
->groups(['api', 'sites'])
->label('scope', 'sites.write')
->label('resourceType', RESOURCE_TYPE_SITES)
->label('event', 'sites.[siteId].deployments.[deploymentId].create')
->label('audits.event', 'deployment.create')
->label('audits.resource', 'site/{request.siteId}')
->label('sdk', new Method(
namespace: 'sites',
group: 'deployments',
name: 'createDirectDeployment',
description: <<<EOT
Create a deployment directly from a repository branch.
EOT,
auth: [AuthType::KEY],
responses: [
new SDKResponse(
code: Response::STATUS_CODE_ACCEPTED,
model: Response::MODEL_DEPLOYMENT,
)
],
))
->param('siteId', '', new UID(), 'Site ID.')
->param('repository', '', new Text(128, 0), 'Repository name of the template.')
->param('owner', '', new Text(128, 0), 'The name of the owner of the template.')
->param('rootDirectory', '', new Text(128, 0), 'Path to site code in the template repo.')
->param('branch', '', new Text(128, 0), 'Branch to create deployment from.')
->param('activate', true, new Boolean(), 'Automatically activate the deployment when it is finished building.', true)
->inject('request')
->inject('response')
->inject('dbForProject')
->inject('dbForPlatform')
->inject('project')
->inject('queueForEvents')
->inject('queueForBuilds')
->inject('gitHub')
->callback($this->action(...));
}
public function action(
string $siteId,
string $repository,
string $owner,
string $rootDirectory,
string $branch,
bool $activate,
Request $request,
Response $response,
Database $dbForProject,
Database $dbForPlatform,
Document $project,
Event $queueForEvents,
Build $queueForBuilds,
GitHub $github
) {
$site = $dbForProject->getDocument('sites', $siteId);
if ($site->isEmpty()) {
throw new Exception(Exception::SITE_NOT_FOUND);
}
$template = new Document([
'repositoryName' => $repository,
'ownerName' => $owner,
'rootDirectory' => $rootDirectory,
'branch' => $branch
]);
if (!empty($site->getAttribute('providerRepositoryId'))) {
$installation = $dbForPlatform->getDocument('installations', $site->getAttribute('installationId'));
$deployment = $this->redeployVcsSite(
request: $request,
site: $site,
project: $project,
installation: $installation,
dbForProject: $dbForProject,
dbForPlatform: $dbForPlatform,
queueForBuilds: $queueForBuilds,
template: $template,
github: $github,
activate: $activate,
);
$queueForEvents
->setParam('siteId', $site->getId())
->setParam('deploymentId', $deployment->getId());
$response
->setStatusCode(Response::STATUS_CODE_ACCEPTED)
->dynamic($deployment, Response::MODEL_DEPLOYMENT);
return;
}
$branchUrl = "https://github.com/$owner/$repository/tree/$branch";
$repositoryUrl = "https://github.com/$owner/$repository";
try {
$commitDetails = $github->getLatestCommit($owner, $repository, $branch);
} catch (\Throwable $error) {
// Ignore; deployment can continue
}
$commands = [];
if (!empty($site->getAttribute('installCommand', ''))) {
$commands[] = $site->getAttribute('installCommand', '');
}
if (!empty($site->getAttribute('buildCommand', ''))) {
$commands[] = $site->getAttribute('buildCommand', '');
}
$deploymentId = ID::unique();
$deployment = $dbForProject->createDocument('deployments', new Document([
'$id' => $deploymentId,
'$permissions' => [
Permission::read(Role::any()),
Permission::update(Role::any()),
Permission::delete(Role::any()),
],
'resourceId' => $site->getId(),
'resourceInternalId' => $site->getSequence(),
'resourceType' => 'sites',
'buildCommands' => \implode(' && ', $commands),
'buildOutput' => $site->getAttribute('outputDirectory', ''),
'adapter' => $site->getAttribute('adapter', ''),
'fallbackFile' => $site->getAttribute('fallbackFile', ''),
'providerRepositoryName' => $repository,
'providerRepositoryOwner' => $owner,
'providerRepositoryUrl' => $repositoryUrl,
'providerBranchUrl' => $branchUrl,
'providerBranch' => $branch,
'providerCommitHash' => $commitDetails['commitHash'] ?? '',
'providerCommitAuthorUrl' => $commitDetails['commitAuthorUrl'] ?? '',
'providerCommitAuthor' => $commitDetails['commitAuthor'] ?? '',
'providerCommitMessage' => mb_strimwidth($commitDetails['commitMessage'] ?? '', 0, 255, '...'),
'providerCommitUrl' => $commitDetails['commitUrl'] ?? '',
'type' => 'vcs',
'activate' => $activate,
]));
$site = $site
->setAttribute('latestDeploymentId', $deployment->getId())
->setAttribute('latestDeploymentInternalId', $deployment->getSequence())
->setAttribute('latestDeploymentCreatedAt', $deployment->getCreatedAt())
->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', ''));
$dbForProject->updateDocument('sites', $site->getId(), $site);
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$domain = ID::unique() . "." . $sitesDomain;
// TODO: @christyjacob remove once we migrate the rules in 1.7.x
$ruleId = System::getEnv('_APP_RULES_FORMAT') === 'md5' ? md5($domain) : ID::unique();
Authorization::skip(
fn () => $dbForPlatform->createDocument('rules', new Document([
'$id' => $ruleId,
'projectId' => $project->getId(),
'projectInternalId' => $project->getSequence(),
'domain' => $domain,
'type' => 'deployment',
'trigger' => 'deployment',
'deploymentId' => $deployment->isEmpty() ? '' : $deployment->getId(),
'deploymentInternalId' => $deployment->isEmpty() ? '' : $deployment->getSequence(),
'deploymentResourceType' => 'site',
'deploymentResourceId' => $site->getId(),
'deploymentResourceInternalId' => $site->getSequence(),
'status' => 'verified',
'certificateId' => '',
'owner' => 'Appwrite',
'region' => $project->getAttribute('region')
]))
);
$queueForBuilds
->setType(BUILD_TYPE_DEPLOYMENT)
->setResource($site)
->setDeployment($deployment)
->setTemplate($template);
$queueForEvents
->setParam('siteId', $site->getId())
->setParam('deploymentId', $deployment->getId());
$response
->setStatusCode(Response::STATUS_CODE_ACCEPTED)
->dynamic($deployment, Response::MODEL_DEPLOYMENT);
}
}
@@ -4,7 +4,6 @@ namespace Appwrite\Platform\Modules\Sites\Services;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Create as CreateDeployment;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Delete as DeleteDeployment;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Direct\Create as CreateDirectDeployment;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Download\Get as DownloadDeployment;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Duplicate\Create as CreateDuplicateDeployment;
use Appwrite\Platform\Modules\Sites\Http\Deployments\Get as GetDeployment;
@@ -61,7 +60,6 @@ class Http extends Service
$this->addAction(DownloadDeployment::getName(), new DownloadDeployment());
$this->addAction(CreateDuplicateDeployment::getName(), new CreateDuplicateDeployment());
$this->addAction(UpdateDeploymentStatus::getName(), new UpdateDeploymentStatus());
$this->addAction(CreateDirectDeployment::getName(), new CreateDirectDeployment());
// Logs
$this->addAction(GetLog::getName(), new GetLog());