mirror of
https://github.com/coollabsio/coolify.git
synced 2026-08-24 10:05:47 -05:00
Merge remote-tracking branch 'origin/next' into feat/hetzner-firewalls-and-internal-networks
This commit is contained in:
+581
-186
@@ -79,8 +79,7 @@
|
||||
"environment_uuid",
|
||||
"git_repository",
|
||||
"git_branch",
|
||||
"build_pack",
|
||||
"ports_exposes"
|
||||
"build_pack"
|
||||
],
|
||||
"properties": {
|
||||
"project_uuid": {
|
||||
@@ -111,6 +110,7 @@
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"railpack",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
@@ -165,6 +165,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"static_image": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@@ -525,8 +529,7 @@
|
||||
"github_app_uuid",
|
||||
"git_repository",
|
||||
"git_branch",
|
||||
"build_pack",
|
||||
"ports_exposes"
|
||||
"build_pack"
|
||||
],
|
||||
"properties": {
|
||||
"project_uuid": {
|
||||
@@ -569,6 +572,7 @@
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"railpack",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
@@ -615,6 +619,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"static_image": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@@ -975,8 +983,7 @@
|
||||
"private_key_uuid",
|
||||
"git_repository",
|
||||
"git_branch",
|
||||
"build_pack",
|
||||
"ports_exposes"
|
||||
"build_pack"
|
||||
],
|
||||
"properties": {
|
||||
"project_uuid": {
|
||||
@@ -1019,6 +1026,7 @@
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"railpack",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
@@ -1065,6 +1073,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"static_image": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@@ -1448,10 +1460,7 @@
|
||||
"build_pack": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
"dockerfile"
|
||||
],
|
||||
"description": "The build pack type."
|
||||
},
|
||||
@@ -1629,6 +1638,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"use_build_server": {
|
||||
"type": "boolean",
|
||||
"nullable": true,
|
||||
@@ -1775,8 +1788,7 @@
|
||||
"server_uuid",
|
||||
"environment_name",
|
||||
"environment_uuid",
|
||||
"docker_registry_image_name",
|
||||
"ports_exposes"
|
||||
"docker_registry_image_name"
|
||||
],
|
||||
"properties": {
|
||||
"project_uuid": {
|
||||
@@ -1965,6 +1977,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"use_build_server": {
|
||||
"type": "boolean",
|
||||
"nullable": true,
|
||||
@@ -2092,173 +2108,6 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/applications\/dockercompose": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Applications"
|
||||
],
|
||||
"summary": "Create (Docker Compose)",
|
||||
"description": "Deprecated: Use POST \/api\/v1\/services instead.",
|
||||
"operationId": "create-dockercompose-application",
|
||||
"requestBody": {
|
||||
"description": "Application object that needs to be created.",
|
||||
"required": true,
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"required": [
|
||||
"project_uuid",
|
||||
"server_uuid",
|
||||
"environment_name",
|
||||
"environment_uuid",
|
||||
"docker_compose_raw"
|
||||
],
|
||||
"properties": {
|
||||
"project_uuid": {
|
||||
"type": "string",
|
||||
"description": "The project UUID."
|
||||
},
|
||||
"server_uuid": {
|
||||
"type": "string",
|
||||
"description": "The server UUID."
|
||||
},
|
||||
"environment_name": {
|
||||
"type": "string",
|
||||
"description": "The environment name. You need to provide at least one of environment_name or environment_uuid."
|
||||
},
|
||||
"environment_uuid": {
|
||||
"type": "string",
|
||||
"description": "The environment UUID. You need to provide at least one of environment_name or environment_uuid."
|
||||
},
|
||||
"docker_compose_raw": {
|
||||
"type": "string",
|
||||
"description": "The Docker Compose raw content."
|
||||
},
|
||||
"destination_uuid": {
|
||||
"type": "string",
|
||||
"description": "The destination UUID if the server has more than one destinations."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The application name."
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "The application description."
|
||||
},
|
||||
"instant_deploy": {
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if the application should be deployed instantly."
|
||||
},
|
||||
"use_build_server": {
|
||||
"type": "boolean",
|
||||
"nullable": true,
|
||||
"description": "Use build server."
|
||||
},
|
||||
"connect_to_docker_network": {
|
||||
"type": "boolean",
|
||||
"description": "The flag to connect the service to the predefined Docker network."
|
||||
},
|
||||
"force_domain_override": {
|
||||
"type": "boolean",
|
||||
"description": "Force domain usage even if conflicts are detected. Default is false."
|
||||
},
|
||||
"is_container_label_escape_enabled": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Application created successfully.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
},
|
||||
"409": {
|
||||
"description": "Domain conflicts detected.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "Domain conflicts detected. Use force_domain_override=true to proceed."
|
||||
},
|
||||
"warning": {
|
||||
"type": "string",
|
||||
"example": "Using the same domain for multiple resources can cause routing conflicts and unpredictable behavior."
|
||||
},
|
||||
"conflicts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"example": "example.com"
|
||||
},
|
||||
"resource_name": {
|
||||
"type": "string",
|
||||
"example": "My Application"
|
||||
},
|
||||
"resource_uuid": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"example": "abc123-def456"
|
||||
},
|
||||
"resource_type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"application",
|
||||
"service",
|
||||
"instance"
|
||||
],
|
||||
"example": "application"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "Domain example.com is already in use by application 'My Application'"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"deprecated": true,
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/applications\/{uuid}": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@@ -2457,6 +2306,7 @@
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"railpack",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
@@ -2503,6 +2353,10 @@
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if HTTPS is forced. Defaults to true."
|
||||
},
|
||||
"is_preview_deployments_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable preview deployments for pull requests."
|
||||
},
|
||||
"install_command": {
|
||||
"type": "string",
|
||||
"description": "The install command."
|
||||
@@ -2723,6 +2577,10 @@
|
||||
"is_preserve_repository_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Preserve git repository during application update. If false, the existing repository will be removed and replaced with the new one. If true, the existing repository will be kept and the new one will be ignored. Default is false."
|
||||
},
|
||||
"include_source_commit_in_build": {
|
||||
"type": "boolean",
|
||||
"description": "Include source commit information in the build. Default is false."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -2845,6 +2703,16 @@
|
||||
"format": "int32",
|
||||
"default": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "show_timestamps",
|
||||
"in": "query",
|
||||
"description": "Show timestamps in the logs.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@@ -3788,6 +3656,70 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/applications\/{uuid}\/previews\/{pull_request_id}": {
|
||||
"delete": {
|
||||
"tags": [
|
||||
"Applications"
|
||||
],
|
||||
"summary": "Delete Preview Deployment",
|
||||
"description": "Delete a preview deployment for a pull request. Cancels active deployments, stops containers, removes volumes\/networks, and deletes the preview record.",
|
||||
"operationId": "delete-preview-deployment-by-pull-request-id",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"in": "path",
|
||||
"description": "UUID of the application.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull_request_id",
|
||||
"in": "path",
|
||||
"description": "Pull request ID of the preview to delete.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Preview deletion queued.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#\/components\/responses\/404"
|
||||
},
|
||||
"422": {
|
||||
"$ref": "#\/components\/responses\/422"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/cloud-tokens": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@@ -4317,8 +4249,8 @@
|
||||
"description": "Number of days to retain backups locally"
|
||||
},
|
||||
"database_backup_retention_max_storage_locally": {
|
||||
"type": "integer",
|
||||
"description": "Max storage (MB) for local backups"
|
||||
"type": "number",
|
||||
"description": "Max storage (GB) for local backups"
|
||||
},
|
||||
"database_backup_retention_amount_s3": {
|
||||
"type": "integer",
|
||||
@@ -4329,8 +4261,8 @@
|
||||
"description": "Number of days to retain backups in S3"
|
||||
},
|
||||
"database_backup_retention_max_storage_s3": {
|
||||
"type": "integer",
|
||||
"description": "Max storage (MB) for S3 backups"
|
||||
"type": "number",
|
||||
"description": "Max storage (GB) for S3 backups"
|
||||
},
|
||||
"timeout": {
|
||||
"type": "integer",
|
||||
@@ -4707,6 +4639,35 @@
|
||||
"mysql_conf": {
|
||||
"type": "string",
|
||||
"description": "MySQL conf"
|
||||
},
|
||||
"health_check_enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Enable the database healthcheck probe.",
|
||||
"default": true
|
||||
},
|
||||
"health_check_interval": {
|
||||
"type": "integer",
|
||||
"description": "Healthcheck interval in seconds.",
|
||||
"minimum": 1,
|
||||
"default": 15
|
||||
},
|
||||
"health_check_timeout": {
|
||||
"type": "integer",
|
||||
"description": "Healthcheck timeout in seconds.",
|
||||
"minimum": 1,
|
||||
"default": 5
|
||||
},
|
||||
"health_check_retries": {
|
||||
"type": "integer",
|
||||
"description": "Healthcheck retries count.",
|
||||
"minimum": 1,
|
||||
"default": 5
|
||||
},
|
||||
"health_check_start_period": {
|
||||
"type": "integer",
|
||||
"description": "Healthcheck start period in seconds.",
|
||||
"minimum": 0,
|
||||
"default": 5
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -4887,7 +4848,7 @@
|
||||
"description": "Retention days of the backup locally"
|
||||
},
|
||||
"database_backup_retention_max_storage_locally": {
|
||||
"type": "integer",
|
||||
"type": "number",
|
||||
"description": "Max storage of the backup locally"
|
||||
},
|
||||
"database_backup_retention_amount_s3": {
|
||||
@@ -4899,7 +4860,7 @@
|
||||
"description": "Retention days of the backup in s3"
|
||||
},
|
||||
"database_backup_retention_max_storage_s3": {
|
||||
"type": "integer",
|
||||
"type": "number",
|
||||
"description": "Max storage of the backup in S3"
|
||||
},
|
||||
"timeout": {
|
||||
@@ -6029,6 +5990,80 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/databases\/{uuid}\/logs": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Databases"
|
||||
],
|
||||
"summary": "Get database logs.",
|
||||
"description": "Get database logs by UUID.",
|
||||
"operationId": "get-database-logs-by-uuid",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"in": "path",
|
||||
"description": "UUID of the database.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "lines",
|
||||
"in": "query",
|
||||
"description": "Number of lines to show from the end of the logs.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"default": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "show_timestamps",
|
||||
"in": "query",
|
||||
"description": "Show timestamps in the logs.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Get database logs by UUID.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"logs": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#\/components\/responses\/404"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/databases\/{uuid}\/backups\/{scheduled_backup_uuid}\/executions\/{execution_uuid}": {
|
||||
"delete": {
|
||||
"tags": [
|
||||
@@ -7516,7 +7551,6 @@
|
||||
"schema": {
|
||||
"required": [
|
||||
"name",
|
||||
"api_url",
|
||||
"html_url",
|
||||
"app_id",
|
||||
"installation_id",
|
||||
@@ -8313,6 +8347,139 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/hetzner\/firewalls": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Hetzner"
|
||||
],
|
||||
"summary": "Get Hetzner Firewalls",
|
||||
"description": "Get all existing Hetzner firewalls for the current project.",
|
||||
"operationId": "get-hetzner-firewalls",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "cloud_provider_token_uuid",
|
||||
"in": "query",
|
||||
"description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cloud_provider_token_id",
|
||||
"in": "query",
|
||||
"description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
|
||||
"required": false,
|
||||
"deprecated": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "List of Hetzner firewalls.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#\/components\/responses\/404"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/hetzner\/networks": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Hetzner"
|
||||
],
|
||||
"summary": "Get Hetzner Networks",
|
||||
"description": "Get all existing Hetzner private networks for the current project.",
|
||||
"operationId": "get-hetzner-networks",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "cloud_provider_token_uuid",
|
||||
"in": "query",
|
||||
"description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cloud_provider_token_id",
|
||||
"in": "query",
|
||||
"description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
|
||||
"required": false,
|
||||
"deprecated": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "List of Hetzner networks.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"ip_range": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#\/components\/responses\/404"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/servers\/hetzner": {
|
||||
"post": {
|
||||
"tags": [
|
||||
@@ -8380,6 +8547,11 @@
|
||||
"example": true,
|
||||
"description": "Enable IPv6 (default: true)"
|
||||
},
|
||||
"enable_backups": {
|
||||
"type": "boolean",
|
||||
"example": false,
|
||||
"description": "Enable Hetzner server backups after creation (adds 20% to the monthly server fee)"
|
||||
},
|
||||
"hetzner_ssh_key_ids": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -8387,6 +8559,20 @@
|
||||
},
|
||||
"description": "Additional Hetzner SSH key IDs"
|
||||
},
|
||||
"hetzner_firewall_ids": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
},
|
||||
"description": "Existing Hetzner firewall IDs to apply during server creation"
|
||||
},
|
||||
"hetzner_network_ids": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
},
|
||||
"description": "Existing Hetzner network IDs to attach during server creation"
|
||||
},
|
||||
"cloud_init_script": {
|
||||
"type": "string",
|
||||
"description": "Cloud-init YAML script (optional)"
|
||||
@@ -8586,6 +8772,110 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/mcp\/enable": {
|
||||
"post": {
|
||||
"summary": "Enable MCP Server",
|
||||
"description": "Enable the MCP server endpoint at \/mcp (only with root permissions).",
|
||||
"operationId": "enable-mcp",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "MCP server enabled.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "MCP server enabled."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"description": "You are not allowed to enable the MCP server.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "You are not allowed to enable the MCP server."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/mcp\/disable": {
|
||||
"post": {
|
||||
"summary": "Disable MCP Server",
|
||||
"description": "Disable the MCP server endpoint at \/mcp (only with root permissions).",
|
||||
"operationId": "disable-mcp",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "MCP server disabled.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "MCP server disabled."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"description": "You are not allowed to disable the MCP server.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "You are not allowed to disable the MCP server."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/health": {
|
||||
"get": {
|
||||
"summary": "Healthcheck",
|
||||
@@ -10481,6 +10771,10 @@
|
||||
"server_disk_usage_check_frequency": {
|
||||
"type": "string",
|
||||
"description": "Cron expression for disk usage check frequency."
|
||||
},
|
||||
"connection_timeout": {
|
||||
"type": "integer",
|
||||
"description": "SSH connection timeout in seconds (1-300). Default: 10."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -11262,6 +11556,90 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/services\/{uuid}\/logs": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Services"
|
||||
],
|
||||
"summary": "Get service logs.",
|
||||
"description": "Get logs for a specific service sub-resource by service UUID. The `sub_service_name` query parameter must match the `name` field of one of the service applications or databases returned by `GET \/services\/{uuid}`.",
|
||||
"operationId": "get-service-logs-by-uuid",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "uuid",
|
||||
"in": "path",
|
||||
"description": "UUID of the service.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "sub_service_name",
|
||||
"in": "query",
|
||||
"description": "Sub-service name from `GET \/services\/{uuid}` under `applications[].name` or `databases[].name`. Do not use `human_name` or the Docker container name with the service UUID suffix.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"example": "appwrite-console"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "lines",
|
||||
"in": "query",
|
||||
"description": "Number of lines to show from the end of the logs.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"default": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "show_timestamps",
|
||||
"in": "query",
|
||||
"description": "Show timestamps in the logs.",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Get service logs by UUID.",
|
||||
"content": {
|
||||
"application\/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"logs": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#\/components\/responses\/401"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#\/components\/responses\/400"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#\/components\/responses\/404"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"\/services\/{uuid}\/envs": {
|
||||
"get": {
|
||||
"tags": [
|
||||
@@ -12435,6 +12813,7 @@
|
||||
"description": "Build pack.",
|
||||
"enum": [
|
||||
"nixpacks",
|
||||
"railpack",
|
||||
"static",
|
||||
"dockerfile",
|
||||
"dockercompose"
|
||||
@@ -12784,6 +13163,18 @@
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"configuration_hash": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"configuration_snapshot": {
|
||||
"type": "object",
|
||||
"nullable": true
|
||||
},
|
||||
"configuration_diff": {
|
||||
"type": "object",
|
||||
"nullable": true
|
||||
},
|
||||
"force_rebuild": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@@ -13285,6 +13676,10 @@
|
||||
"delete_unused_networks": {
|
||||
"type": "boolean",
|
||||
"description": "The flag to indicate if the unused networks should be deleted."
|
||||
},
|
||||
"connection_timeout": {
|
||||
"type": "integer",
|
||||
"description": "SSH connection timeout in seconds."
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
|
||||
Reference in New Issue
Block a user