@jurislm/coolify-plugin 4.0.6 → 4.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/api/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sourceUrl": "https://raw.githubusercontent.com/coollabsio/coolify/v4.3.23/openapi.json",
|
|
3
|
-
"fetchedAt": "2026-09-
|
|
4
|
-
"sha256": "
|
|
3
|
+
"fetchedAt": "2026-09-25T03:53:37.809Z",
|
|
4
|
+
"sha256": "13fb46b7a5282e703c08d75e2d2ce13c3419a336fa151ef6d473095483c68261",
|
|
5
5
|
"upstreamSha256": "964360ffb3d4c026252aa4657d6561190f59ac4256395bf0645bf6a4f171ec88",
|
|
6
6
|
"openapiVersion": "3.1.0",
|
|
7
7
|
"infoVersion": "0.1",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"Plain Dockerfile input is encoded for the API",
|
|
23
23
|
"Cloud-init, notifications, GitHub apps, private keys, and team metadata match live response shapes",
|
|
24
24
|
"Resource creation accepts either environment name or UUID as documented",
|
|
25
|
-
"Docker image build packs and cloud-init/resource clone responses match live Coolify payloads"
|
|
25
|
+
"Docker image build packs and cloud-init/resource clone responses match live Coolify payloads",
|
|
26
|
+
"Application tag removal and database backup updates match live message responses"
|
|
26
27
|
]
|
|
27
28
|
}
|
|
@@ -7313,7 +7313,11 @@ export interface operations {
|
|
|
7313
7313
|
headers: {
|
|
7314
7314
|
[name: string]: unknown;
|
|
7315
7315
|
};
|
|
7316
|
-
content
|
|
7316
|
+
content: {
|
|
7317
|
+
"application/json": {
|
|
7318
|
+
message: string;
|
|
7319
|
+
};
|
|
7320
|
+
};
|
|
7317
7321
|
};
|
|
7318
7322
|
400: components["responses"]["400"];
|
|
7319
7323
|
401: components["responses"]["401"];
|
|
@@ -7607,7 +7611,15 @@ export interface operations {
|
|
|
7607
7611
|
headers: {
|
|
7608
7612
|
[name: string]: unknown;
|
|
7609
7613
|
};
|
|
7610
|
-
content
|
|
7614
|
+
content: {
|
|
7615
|
+
"application/json": {
|
|
7616
|
+
uuid: string;
|
|
7617
|
+
name?: string;
|
|
7618
|
+
script?: string;
|
|
7619
|
+
} & {
|
|
7620
|
+
[key: string]: unknown;
|
|
7621
|
+
};
|
|
7622
|
+
};
|
|
7611
7623
|
};
|
|
7612
7624
|
401: components["responses"]["401"];
|
|
7613
7625
|
/** @description Forbidden. */
|
|
@@ -8326,7 +8338,11 @@ export interface operations {
|
|
|
8326
8338
|
headers: {
|
|
8327
8339
|
[name: string]: unknown;
|
|
8328
8340
|
};
|
|
8329
|
-
content
|
|
8341
|
+
content: {
|
|
8342
|
+
"application/json": {
|
|
8343
|
+
message: string;
|
|
8344
|
+
};
|
|
8345
|
+
};
|
|
8330
8346
|
};
|
|
8331
8347
|
400: components["responses"]["400"];
|
|
8332
8348
|
401: components["responses"]["401"];
|
|
@@ -9668,7 +9684,11 @@ export interface operations {
|
|
|
9668
9684
|
headers: {
|
|
9669
9685
|
[name: string]: unknown;
|
|
9670
9686
|
};
|
|
9671
|
-
content
|
|
9687
|
+
content: {
|
|
9688
|
+
"application/json": {
|
|
9689
|
+
message: string;
|
|
9690
|
+
};
|
|
9691
|
+
};
|
|
9672
9692
|
};
|
|
9673
9693
|
400: components["responses"]["400"];
|
|
9674
9694
|
401: components["responses"]["401"];
|
|
@@ -15380,7 +15400,11 @@ export interface operations {
|
|
|
15380
15400
|
headers: {
|
|
15381
15401
|
[name: string]: unknown;
|
|
15382
15402
|
};
|
|
15383
|
-
content
|
|
15403
|
+
content: {
|
|
15404
|
+
"application/json": {
|
|
15405
|
+
message: string;
|
|
15406
|
+
};
|
|
15407
|
+
};
|
|
15384
15408
|
};
|
|
15385
15409
|
400: components["responses"]["400"];
|
|
15386
15410
|
401: components["responses"]["401"];
|
|
@@ -51,7 +51,7 @@ export const operations = [
|
|
|
51
51
|
{ name: "coolify_delete_preview_deployment_by_pull_request_id", method: "DELETE", path: "/applications/{uuid}/previews/{pull_request_id}", description: "Delete Preview Deployment", inputSchema: z.object({ "uuid": z.string(), "pull_request_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "pull_request_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
52
52
|
{ name: "coolify_list_tags_by_application_uuid", method: "GET", path: "/applications/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
53
53
|
{ name: "coolify_create_tag_by_application_uuid", method: "POST", path: "/applications/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
54
|
-
{ name: "coolify_delete_tag_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.
|
|
54
|
+
{ name: "coolify_delete_tag_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
55
55
|
{ name: "coolify_clone_application_by_uuid", method: "POST", path: "/applications/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string().describe("UUID of the destination to clone into."), "name": z.union([z.string().describe("Optional name for the cloned application."), z.null().describe("Optional name for the cloned application.")]).describe("Optional name for the cloned application.").optional(), "clone_volumes": z.boolean().describe("Whether to clone volume data.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
56
56
|
{ name: "coolify_list_application_rollback_images", method: "GET", path: "/applications/{uuid}/rollback-images", description: "List Rollback Images", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "current": z.union([z.string(), z.null()]).optional(), "images": z.array(z.object({ "tag": z.string().optional(), "created_at": z.string().optional(), "is_current": z.boolean().optional() })).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
57
57
|
{ name: "coolify_rollback_application_by_uuid", method: "POST", path: "/applications/{uuid}/rollback", description: "Rollback", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "commit": z.string().describe("Image tag / commit to roll back to.") }) }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
@@ -60,7 +60,7 @@ export const operations = [
|
|
|
60
60
|
{ name: "coolify_remove_application_destination", method: "DELETE", path: "/applications/{uuid}/destinations/{destination_uuid}", description: "Remove Destination", inputSchema: z.object({ "uuid": z.string(), "destination_uuid": z.string() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "destination_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
61
61
|
{ name: "coolify_list_cloud_init_scripts", method: "GET", path: "/cloud-init-scripts", description: "List Cloud-init Scripts", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
62
62
|
{ name: "coolify_create_cloud_init_script", method: "POST", path: "/cloud-init-scripts", description: "Create Cloud-init Script", inputSchema: z.object({ body: z.object({ "name": z.string(), "script": z.string().describe("Bash script (#!) or cloud-config YAML.") }) }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
63
|
-
{ name: "coolify_get_cloud_init_script_by_uuid", method: "GET", path: "/cloud-init-scripts/{uuid}", description: "Get Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.
|
|
63
|
+
{ name: "coolify_get_cloud_init_script_by_uuid", method: "GET", path: "/cloud-init-scripts/{uuid}", description: "Get Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
64
64
|
{ name: "coolify_delete_cloud_init_script_by_uuid", method: "DELETE", path: "/cloud-init-scripts/{uuid}", description: "Delete Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
65
65
|
{ name: "coolify_update_cloud_init_script_by_uuid", method: "PATCH", path: "/cloud-init-scripts/{uuid}", description: "Update Cloud-init Script", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "script": z.string().optional() }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
66
66
|
{ name: "coolify_list_cloud_tokens", method: "GET", path: "/cloud-tokens", description: "List Cloud Provider Tokens", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "provider": z.enum(["hetzner", "digitalocean", "vultr"]).optional(), "team_id": z.number().int().optional(), "servers_count": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
@@ -76,7 +76,7 @@ export const operations = [
|
|
|
76
76
|
{ name: "coolify_delete_database_by_uuid", method: "DELETE", path: "/databases/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string(), "delete_configurations": z.boolean().default(true), "delete_volumes": z.boolean().default(true), "docker_cleanup": z.boolean().default(true), "delete_connected_networks": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "delete_configurations" }, { location: "query", name: "delete_volumes" }, { location: "query", name: "docker_cleanup" }, { location: "query", name: "delete_connected_networks" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
77
77
|
{ name: "coolify_update_database_by_uuid", method: "PATCH", path: "/databases/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "postgres_user": z.string().describe("PostgreSQL user").optional(), "postgres_password": z.string().describe("PostgreSQL password").optional(), "postgres_db": z.string().describe("PostgreSQL database").optional(), "postgres_initdb_args": z.string().describe("PostgreSQL initdb args").optional(), "postgres_host_auth_method": z.string().describe("PostgreSQL host auth method").optional(), "postgres_conf": z.string().describe("PostgreSQL conf").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").optional(), "dragonfly_password": z.string().describe("DragonFly password").optional(), "redis_password": z.string().describe("Redis password").optional(), "redis_conf": z.string().describe("Redis conf").optional(), "keydb_password": z.string().describe("KeyDB password").optional(), "keydb_conf": z.string().describe("KeyDB conf").optional(), "mariadb_conf": z.string().describe("MariaDB conf").optional(), "mariadb_root_password": z.string().describe("MariaDB root password").optional(), "mariadb_user": z.string().describe("MariaDB user").optional(), "mariadb_password": z.string().describe("MariaDB password").optional(), "mariadb_database": z.string().describe("MariaDB database").optional(), "mongo_conf": z.string().describe("Mongo conf").optional(), "mongo_initdb_root_username": z.string().describe("Mongo initdb root username").optional(), "mongo_initdb_root_password": z.string().describe("Mongo initdb root password").optional(), "mongo_initdb_database": z.string().describe("Mongo initdb init database").optional(), "mysql_root_password": z.string().describe("MySQL root password").optional(), "mysql_password": z.string().describe("MySQL password").optional(), "mysql_user": z.string().describe("MySQL user").optional(), "mysql_database": z.string().describe("MySQL database").optional(), "mysql_conf": z.string().describe("MySQL conf").optional(), "health_check_enabled": z.boolean().describe("Enable the database healthcheck probe.").optional(), "health_check_interval": z.number().int().gte(1).describe("Healthcheck interval in seconds.").optional(), "health_check_timeout": z.number().int().gte(1).describe("Healthcheck timeout in seconds.").optional(), "health_check_retries": z.number().int().gte(1).describe("Healthcheck retries count.").optional(), "health_check_start_period": z.number().int().gte(0).describe("Healthcheck start period in seconds.").optional(), "custom_docker_run_options": z.string().describe("Docker run options for the database container.").optional() }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
78
78
|
{ name: "coolify_delete_backup_configuration_by_uuid", method: "DELETE", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", description: "Delete backup configuration", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), "delete_s3": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }, { location: "query", name: "delete_s3" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
79
|
-
{ name: "coolify_update_database_backup", method: "PATCH", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), body: z.object({ "save_s3": z.boolean().describe("Whether data is saved in s3 or not").optional(), "s3_storage_uuid": z.string().describe("S3 storage UUID").optional(), "backup_now": z.boolean().describe("Whether to take a backup now or not").optional(), "enabled": z.boolean().describe("Whether the backup is enabled or not").optional(), "databases_to_backup": z.string().describe("Comma separated list of databases to backup").optional(), "dump_all": z.boolean().describe("Whether all databases are dumped or not").optional(), "frequency": z.string().describe("Frequency of the backup").optional(), "database_backup_retention_amount_locally": z.number().int().describe("Retention amount of the backup locally").optional(), "database_backup_retention_days_locally": z.number().int().describe("Retention days of the backup locally").optional(), "database_backup_retention_max_storage_locally": z.number().describe("Max storage of the backup locally").optional(), "database_backup_retention_amount_s3": z.number().int().describe("Retention amount of the backup in s3").optional(), "database_backup_retention_days_s3": z.number().int().describe("Retention days of the backup in s3").optional(), "database_backup_retention_max_storage_s3": z.number().describe("Max storage of the backup in S3").optional(), "timeout": z.number().int().describe("Backup job timeout in seconds (min: 60, max: 36000)").default(3600) }) }), responseSchema: z.
|
|
79
|
+
{ name: "coolify_update_database_backup", method: "PATCH", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), body: z.object({ "save_s3": z.boolean().describe("Whether data is saved in s3 or not").optional(), "s3_storage_uuid": z.string().describe("S3 storage UUID").optional(), "backup_now": z.boolean().describe("Whether to take a backup now or not").optional(), "enabled": z.boolean().describe("Whether the backup is enabled or not").optional(), "databases_to_backup": z.string().describe("Comma separated list of databases to backup").optional(), "dump_all": z.boolean().describe("Whether all databases are dumped or not").optional(), "frequency": z.string().describe("Frequency of the backup").optional(), "database_backup_retention_amount_locally": z.number().int().describe("Retention amount of the backup locally").optional(), "database_backup_retention_days_locally": z.number().int().describe("Retention days of the backup locally").optional(), "database_backup_retention_max_storage_locally": z.number().describe("Max storage of the backup locally").optional(), "database_backup_retention_amount_s3": z.number().int().describe("Retention amount of the backup in s3").optional(), "database_backup_retention_days_s3": z.number().int().describe("Retention days of the backup in s3").optional(), "database_backup_retention_max_storage_s3": z.number().describe("Max storage of the backup in S3").optional(), "timeout": z.number().int().describe("Backup job timeout in seconds (min: 60, max: 36000)").default(3600) }) }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
80
80
|
{ name: "coolify_create_database_postgresql", method: "POST", path: "/databases/postgresql", description: "Create (PostgreSQL)", inputSchema: z.object({ body: z.object({ "server_uuid": z.string().describe("UUID of the server"), "project_uuid": z.string().describe("UUID of the project"), "environment_name": z.string().describe("Name of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "postgres_user": z.string().describe("PostgreSQL user").optional(), "postgres_password": z.string().describe("PostgreSQL password").optional(), "postgres_db": z.string().describe("PostgreSQL database").optional(), "postgres_initdb_args": z.string().describe("PostgreSQL initdb args").optional(), "postgres_host_auth_method": z.string().describe("PostgreSQL host auth method").optional(), "postgres_conf": z.string().describe("PostgreSQL conf").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "instant_deploy": z.boolean().describe("Instant deploy the database").optional(), "tags": z.array(z.string()).describe("Tags to assign to the database.").optional() }).refine((body) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
81
81
|
{ name: "coolify_create_database_clickhouse", method: "POST", path: "/databases/clickhouse", description: "Create (Clickhouse)", inputSchema: z.object({ body: z.object({ "server_uuid": z.string().describe("UUID of the server"), "project_uuid": z.string().describe("UUID of the project"), "environment_name": z.string().describe("Name of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").optional(), "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "instant_deploy": z.boolean().describe("Instant deploy the database").optional(), "tags": z.array(z.string()).describe("Tags to assign to the database.").optional() }).refine((body) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
82
82
|
{ name: "coolify_create_database_dragonfly", method: "POST", path: "/databases/dragonfly", description: "Create (DragonFly)", inputSchema: z.object({ body: z.object({ "server_uuid": z.string().describe("UUID of the server"), "project_uuid": z.string().describe("UUID of the project"), "environment_name": z.string().describe("Name of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "dragonfly_password": z.string().describe("DragonFly password").optional(), "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "instant_deploy": z.boolean().describe("Instant deploy the database").optional(), "tags": z.array(z.string()).describe("Tags to assign to the database.").optional() }).refine((body) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
@@ -104,7 +104,7 @@ export const operations = [
|
|
|
104
104
|
{ name: "coolify_delete_storage_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/storages/{storage_uuid}", description: "Delete Storage", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
105
105
|
{ name: "coolify_list_tags_by_database_uuid", method: "GET", path: "/databases/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
106
106
|
{ name: "coolify_create_tag_by_database_uuid", method: "POST", path: "/databases/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
107
|
-
{ name: "coolify_delete_tag_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.
|
|
107
|
+
{ name: "coolify_delete_tag_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
108
108
|
{ name: "coolify_clone_database_by_uuid", method: "POST", path: "/databases/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string(), "name": z.union([z.string(), z.null()]).optional(), "clone_volumes": z.boolean().default(false) }) }), responseSchema: z.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
109
109
|
{ name: "coolify_list_deployments", method: "GET", path: "/deployments", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
110
110
|
{ name: "coolify_get_deployment_by_uuid", method: "GET", path: "/deployments/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
@@ -257,7 +257,7 @@ export const operations = [
|
|
|
257
257
|
{ name: "coolify_delete_storage_by_service_uuid", method: "DELETE", path: "/services/{uuid}/storages/{storage_uuid}", description: "Delete Storage", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
258
258
|
{ name: "coolify_list_tags_by_service_uuid", method: "GET", path: "/services/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
259
259
|
{ name: "coolify_create_tag_by_service_uuid", method: "POST", path: "/services/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
260
|
-
{ name: "coolify_delete_tag_by_service_uuid", method: "DELETE", path: "/services/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.
|
|
260
|
+
{ name: "coolify_delete_tag_by_service_uuid", method: "DELETE", path: "/services/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
261
261
|
{ name: "coolify_clone_service_by_uuid", method: "POST", path: "/services/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string(), "name": z.union([z.string(), z.null()]).optional(), "clone_volumes": z.boolean().default(false) }) }), responseSchema: z.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
262
262
|
{ name: "coolify_list_team_shared_envs", method: "GET", path: "/team/envs", description: "List Team Shared Envs", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
263
263
|
{ name: "coolify_create_team_shared_env", method: "POST", path: "/team/envs", description: "Create Team Shared Env", inputSchema: z.object({ body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
@@ -4884,7 +4884,22 @@
|
|
|
4884
4884
|
],
|
|
4885
4885
|
"responses": {
|
|
4886
4886
|
"200": {
|
|
4887
|
-
"description": "Tag removed."
|
|
4887
|
+
"description": "Tag removed.",
|
|
4888
|
+
"content": {
|
|
4889
|
+
"application/json": {
|
|
4890
|
+
"schema": {
|
|
4891
|
+
"type": "object",
|
|
4892
|
+
"required": [
|
|
4893
|
+
"message"
|
|
4894
|
+
],
|
|
4895
|
+
"properties": {
|
|
4896
|
+
"message": {
|
|
4897
|
+
"type": "string"
|
|
4898
|
+
}
|
|
4899
|
+
}
|
|
4900
|
+
}
|
|
4901
|
+
}
|
|
4902
|
+
}
|
|
4888
4903
|
},
|
|
4889
4904
|
"400": {
|
|
4890
4905
|
"$ref": "#/components/responses/400"
|
|
@@ -5424,7 +5439,29 @@
|
|
|
5424
5439
|
],
|
|
5425
5440
|
"responses": {
|
|
5426
5441
|
"200": {
|
|
5427
|
-
"description": "Cloud-init script."
|
|
5442
|
+
"description": "Cloud-init script.",
|
|
5443
|
+
"content": {
|
|
5444
|
+
"application/json": {
|
|
5445
|
+
"schema": {
|
|
5446
|
+
"type": "object",
|
|
5447
|
+
"required": [
|
|
5448
|
+
"uuid"
|
|
5449
|
+
],
|
|
5450
|
+
"properties": {
|
|
5451
|
+
"uuid": {
|
|
5452
|
+
"type": "string"
|
|
5453
|
+
},
|
|
5454
|
+
"name": {
|
|
5455
|
+
"type": "string"
|
|
5456
|
+
},
|
|
5457
|
+
"script": {
|
|
5458
|
+
"type": "string"
|
|
5459
|
+
}
|
|
5460
|
+
},
|
|
5461
|
+
"additionalProperties": true
|
|
5462
|
+
}
|
|
5463
|
+
}
|
|
5464
|
+
}
|
|
5428
5465
|
},
|
|
5429
5466
|
"401": {
|
|
5430
5467
|
"$ref": "#/components/responses/401"
|
|
@@ -6733,7 +6770,22 @@
|
|
|
6733
6770
|
},
|
|
6734
6771
|
"responses": {
|
|
6735
6772
|
"200": {
|
|
6736
|
-
"description": "Database backup configuration updated"
|
|
6773
|
+
"description": "Database backup configuration updated",
|
|
6774
|
+
"content": {
|
|
6775
|
+
"application/json": {
|
|
6776
|
+
"schema": {
|
|
6777
|
+
"type": "object",
|
|
6778
|
+
"required": [
|
|
6779
|
+
"message"
|
|
6780
|
+
],
|
|
6781
|
+
"properties": {
|
|
6782
|
+
"message": {
|
|
6783
|
+
"type": "string"
|
|
6784
|
+
}
|
|
6785
|
+
}
|
|
6786
|
+
}
|
|
6787
|
+
}
|
|
6788
|
+
}
|
|
6737
6789
|
},
|
|
6738
6790
|
"400": {
|
|
6739
6791
|
"$ref": "#/components/responses/400"
|
|
@@ -9451,7 +9503,22 @@
|
|
|
9451
9503
|
],
|
|
9452
9504
|
"responses": {
|
|
9453
9505
|
"200": {
|
|
9454
|
-
"description": "Tag removed."
|
|
9506
|
+
"description": "Tag removed.",
|
|
9507
|
+
"content": {
|
|
9508
|
+
"application/json": {
|
|
9509
|
+
"schema": {
|
|
9510
|
+
"type": "object",
|
|
9511
|
+
"required": [
|
|
9512
|
+
"message"
|
|
9513
|
+
],
|
|
9514
|
+
"properties": {
|
|
9515
|
+
"message": {
|
|
9516
|
+
"type": "string"
|
|
9517
|
+
}
|
|
9518
|
+
}
|
|
9519
|
+
}
|
|
9520
|
+
}
|
|
9521
|
+
}
|
|
9455
9522
|
},
|
|
9456
9523
|
"400": {
|
|
9457
9524
|
"$ref": "#/components/responses/400"
|
|
@@ -19840,7 +19907,22 @@
|
|
|
19840
19907
|
],
|
|
19841
19908
|
"responses": {
|
|
19842
19909
|
"200": {
|
|
19843
|
-
"description": "Tag removed."
|
|
19910
|
+
"description": "Tag removed.",
|
|
19911
|
+
"content": {
|
|
19912
|
+
"application/json": {
|
|
19913
|
+
"schema": {
|
|
19914
|
+
"type": "object",
|
|
19915
|
+
"required": [
|
|
19916
|
+
"message"
|
|
19917
|
+
],
|
|
19918
|
+
"properties": {
|
|
19919
|
+
"message": {
|
|
19920
|
+
"type": "string"
|
|
19921
|
+
}
|
|
19922
|
+
}
|
|
19923
|
+
}
|
|
19924
|
+
}
|
|
19925
|
+
}
|
|
19844
19926
|
},
|
|
19845
19927
|
"400": {
|
|
19846
19928
|
"$ref": "#/components/responses/400"
|
package/package.json
CHANGED
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "coolify-plugin",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.8",
|
|
5
5
|
"description": "Portable Coolify MCP plugin with local stdio tools generated from the official OpenAPI contract.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "JurisLM",
|