@jurislm/coolify-plugin 4.0.10 → 4.0.12

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coolify-plugin",
3
- "version": "4.0.10",
3
+ "version": "4.0.12",
4
4
  "description": "Fallback Codex metadata for local stdio Coolify tools.",
5
5
  "author": {
6
6
  "name": "JurisLM",
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-25T09:56:22.212Z",
4
- "sha256": "86ba9fd7e74de66f46a6b2e8b2db20ed5ee05e3c3bc6207d3dd67f7c376746c2",
3
+ "fetchedAt": "2026-09-25T11:20:11.773Z",
4
+ "sha256": "934bb0ecd71db0b596df44d141152e0d4052a2604cbb302519276ba9558a0b38",
5
5
  "upstreamSha256": "964360ffb3d4c026252aa4657d6561190f59ac4256395bf0645bf6a4f171ec88",
6
6
  "openapiVersion": "3.1.0",
7
7
  "infoVersion": "0.1",
@@ -28,6 +28,8 @@
28
28
  "Cloud-init, notifications, GitHub apps, private keys, and team metadata match live response shapes",
29
29
  "Resource creation accepts either environment name or UUID as documented",
30
30
  "Docker image build packs and cloud-init/resource clone responses match live Coolify payloads",
31
- "Application tag removal and database backup updates match live message responses"
31
+ "Application tag removal and database backup updates match live message responses",
32
+ "Application ports_exposes can be null for new Git applications",
33
+ "Private key update uses the routed UUID path rather than the upstream annotation path"
32
34
  ]
33
35
  }
@@ -2501,11 +2501,7 @@ export interface paths {
2501
2501
  delete?: never;
2502
2502
  options?: never;
2503
2503
  head?: never;
2504
- /**
2505
- * Update
2506
- * @description Update a private key.
2507
- */
2508
- patch: operations["update-private-key"];
2504
+ patch?: never;
2509
2505
  trace?: never;
2510
2506
  };
2511
2507
  "/security/keys/{uuid}": {
@@ -2529,7 +2525,11 @@ export interface paths {
2529
2525
  delete: operations["delete-private-key-by-uuid"];
2530
2526
  options?: never;
2531
2527
  head?: never;
2532
- patch?: never;
2528
+ /**
2529
+ * Update
2530
+ * @description Update a private key.
2531
+ */
2532
+ patch: operations["update-private-key"];
2533
2533
  trace?: never;
2534
2534
  };
2535
2535
  "/servers/{uuid}/cloudflare-tunnel": {
@@ -4283,7 +4283,7 @@ export interface components {
4283
4283
  /** @description Start command. */
4284
4284
  start_command?: string | null;
4285
4285
  /** @description Ports exposes. */
4286
- ports_exposes?: string;
4286
+ ports_exposes?: string | null;
4287
4287
  /** @description Ports mappings. */
4288
4288
  ports_mappings?: string | null;
4289
4289
  /** @description Network aliases for Docker container. */
@@ -12967,39 +12967,6 @@ export interface operations {
12967
12967
  422: components["responses"]["422"];
12968
12968
  };
12969
12969
  };
12970
- "update-private-key": {
12971
- parameters: {
12972
- query?: never;
12973
- header?: never;
12974
- path?: never;
12975
- cookie?: never;
12976
- };
12977
- requestBody: {
12978
- content: {
12979
- "application/json": {
12980
- name?: string;
12981
- description?: string;
12982
- private_key: string;
12983
- };
12984
- };
12985
- };
12986
- responses: {
12987
- /** @description The updated private key's UUID. */
12988
- 201: {
12989
- headers: {
12990
- [name: string]: unknown;
12991
- };
12992
- content: {
12993
- "application/json": {
12994
- uuid?: string;
12995
- };
12996
- };
12997
- };
12998
- 400: components["responses"]["400"];
12999
- 401: components["responses"]["401"];
13000
- 422: components["responses"]["422"];
13001
- };
13002
- };
13003
12970
  "get-private-key-by-uuid": {
13004
12971
  parameters: {
13005
12972
  query?: never;
@@ -13079,6 +13046,43 @@ export interface operations {
13079
13046
  };
13080
13047
  };
13081
13048
  };
13049
+ "update-private-key": {
13050
+ parameters: {
13051
+ query?: never;
13052
+ header?: never;
13053
+ path: {
13054
+ /** @description Private Key UUID */
13055
+ uuid: string;
13056
+ };
13057
+ cookie?: never;
13058
+ };
13059
+ requestBody: {
13060
+ content: {
13061
+ "application/json": {
13062
+ name?: string;
13063
+ description?: string;
13064
+ private_key: string;
13065
+ };
13066
+ };
13067
+ };
13068
+ responses: {
13069
+ /** @description The updated private key's UUID. */
13070
+ 201: {
13071
+ headers: {
13072
+ [name: string]: unknown;
13073
+ };
13074
+ content: {
13075
+ "application/json": {
13076
+ uuid?: string;
13077
+ };
13078
+ };
13079
+ };
13080
+ 400: components["responses"]["400"];
13081
+ 401: components["responses"]["401"];
13082
+ 404: components["responses"]["404"];
13083
+ 422: components["responses"]["422"];
13084
+ };
13085
+ };
13082
13086
  "get-server-cloudflare-tunnel": {
13083
13087
  parameters: {
13084
13088
  query?: never;
@@ -64,7 +64,7 @@ export declare const componentSchemas: {
64
64
  install_command: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
65
65
  build_command: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
66
66
  start_command: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
67
- ports_exposes: z.ZodOptional<z.ZodString>;
67
+ ports_exposes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
68
68
  ports_mappings: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
69
69
  custom_network_aliases: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
70
70
  base_directory: z.ZodOptional<z.ZodString>;
@@ -3,7 +3,7 @@ import { z } from "zod";
3
3
  export const componentSchemas = {
4
4
  "VolumeBackupScheduleRequest": z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict(),
5
5
  "VolumeBackupScheduleResponse": z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }),
6
- "Application": z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"),
6
+ "Application": z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.union([z.string().describe("Ports exposes."), z.null()]).optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"),
7
7
  "ApplicationDeploymentQueue": 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.union([z.string(), z.null()]).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"),
8
8
  "ApplicationSetting": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings."),
9
9
  "Environment": z.object({ "id": z.number().int().optional(), "name": z.string().optional(), "project_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "description": z.union([z.string(), z.null()]).optional() }).describe("Environment model"),
@@ -1,13 +1,13 @@
1
1
  // Generated by scripts/generate-openapi.ts.
2
2
  import { z } from "zod";
3
3
  export const operations = [
4
- { name: "coolify_list_applications", method: "GET", path: "/applications", description: "List", inputSchema: z.object({ "tag": z.string().optional() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model")), responseKind: "json", parameters: [{ location: "query", name: "tag" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
4
+ { name: "coolify_list_applications", method: "GET", path: "/applications", description: "List", inputSchema: z.object({ "tag": z.string().optional() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.union([z.string().describe("Ports exposes."), z.null()]).optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model")), responseKind: "json", parameters: [{ location: "query", name: "tag" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
5
5
  { name: "coolify_create_public_application", method: "POST", path: "/applications/public", description: "Create (Public)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
6
6
  { name: "coolify_create_private_github_app_application", method: "POST", path: "/applications/private-github-app", description: "Create (Private - GH App)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "github_app_uuid": z.string().describe("The Github App UUID."), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
7
7
  { name: "coolify_create_private_deploy_key_application", method: "POST", path: "/applications/private-deploy-key", description: "Create (Private - Deploy Key)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "private_key_uuid": z.string().describe("The private key UUID."), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
8
8
  { name: "coolify_create_dockerfile_application", method: "POST", path: "/applications/dockerfile", description: "Create (Dockerfile without git)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "dockerfile": z.string().describe("Plain Dockerfile content; the plugin encodes it for Coolify."), "build_pack": z.literal("dockerfile").describe("The build pack type.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
9
9
  { name: "coolify_create_dockerimage_application", method: "POST", path: "/applications/dockerimage", description: "Create (Docker Image without git)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name."), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
10
- { name: "coolify_get_application_by_uuid", method: "GET", path: "/applications/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
10
+ { name: "coolify_get_application_by_uuid", method: "GET", path: "/applications/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose", "dockerimage"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.union([z.string().describe("Ports exposes."), z.null()]).optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.union([z.boolean(), z.string()]).optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
11
11
  { name: "coolify_delete_application_by_uuid", method: "DELETE", path: "/applications/{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 } },
12
12
  { name: "coolify_update_application_by_uuid", method: "PATCH", path: "/applications/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "project_uuid": z.string().describe("The project UUID.").optional(), "server_uuid": z.string().describe("The server UUID.").optional(), "environment_name": z.string().describe("The environment name.").optional(), "github_app_uuid": z.string().describe("The Github App UUID.").optional(), "git_repository": z.string().describe("The git repository URL.").optional(), "git_branch": z.string().describe("The git branch.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").optional(), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "is_container_label_escape_enabled": z.boolean().describe("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.").default(true), "is_preserve_repository_enabled": z.boolean().describe("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.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
13
13
  { name: "coolify_get_application_logs_by_uuid", method: "GET", path: "/applications/{uuid}/logs", description: "Get application logs.", inputSchema: z.object({ "uuid": z.string(), "lines": z.number().int().default(100), "show_timestamps": z.boolean().default(false) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "lines" }, { location: "query", name: "show_timestamps" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
@@ -188,9 +188,9 @@ export const operations = [
188
188
  { name: "coolify_execute_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/execute", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
189
189
  { name: "coolify_list_private_keys", method: "GET", path: "/security/keys", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
190
190
  { name: "coolify_create_private_key", method: "POST", path: "/security/keys", description: "Create", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
191
- { name: "coolify_update_private_key", method: "PATCH", path: "/security/keys", description: "Update", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
192
191
  { name: "coolify_get_private_key_by_uuid", method: "GET", path: "/security/keys/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
193
192
  { name: "coolify_delete_private_key_by_uuid", method: "DELETE", path: "/security/keys/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
193
+ { name: "coolify_update_private_key", method: "PATCH", path: "/security/keys/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
194
194
  { name: "coolify_get_server_cloudflare_tunnel", method: "GET", path: "/servers/{uuid}/cloudflare-tunnel", description: "Get Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_cloudflare_tunnel": z.boolean().optional(), "ip": z.string().optional(), "ip_previous": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
195
195
  { name: "coolify_update_server_cloudflare_tunnel", method: "PATCH", path: "/servers/{uuid}/cloudflare-tunnel", description: "Update Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_cloudflare_tunnel": z.boolean().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
196
196
  { name: "coolify_enable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/enable", description: "Enable Cloudflare Tunnel (manual)", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -15290,70 +15290,6 @@
15290
15290
  "bearerAuth": []
15291
15291
  }
15292
15292
  ]
15293
- },
15294
- "patch": {
15295
- "tags": [
15296
- "Private Keys"
15297
- ],
15298
- "summary": "Update",
15299
- "description": "Update a private key.",
15300
- "operationId": "update-private-key",
15301
- "requestBody": {
15302
- "required": true,
15303
- "content": {
15304
- "application/json": {
15305
- "schema": {
15306
- "required": [
15307
- "private_key"
15308
- ],
15309
- "properties": {
15310
- "name": {
15311
- "type": "string"
15312
- },
15313
- "description": {
15314
- "type": "string"
15315
- },
15316
- "private_key": {
15317
- "type": "string"
15318
- }
15319
- },
15320
- "type": "object",
15321
- "additionalProperties": false
15322
- }
15323
- }
15324
- }
15325
- },
15326
- "responses": {
15327
- "201": {
15328
- "description": "The updated private key's UUID.",
15329
- "content": {
15330
- "application/json": {
15331
- "schema": {
15332
- "properties": {
15333
- "uuid": {
15334
- "type": "string"
15335
- }
15336
- },
15337
- "type": "object"
15338
- }
15339
- }
15340
- }
15341
- },
15342
- "400": {
15343
- "$ref": "#/components/responses/400"
15344
- },
15345
- "401": {
15346
- "$ref": "#/components/responses/401"
15347
- },
15348
- "422": {
15349
- "$ref": "#/components/responses/422"
15350
- }
15351
- },
15352
- "security": [
15353
- {
15354
- "bearerAuth": []
15355
- }
15356
- ]
15357
15293
  }
15358
15294
  },
15359
15295
  "/security/keys/{uuid}": {
@@ -15468,6 +15404,84 @@
15468
15404
  "bearerAuth": []
15469
15405
  }
15470
15406
  ]
15407
+ },
15408
+ "patch": {
15409
+ "tags": [
15410
+ "Private Keys"
15411
+ ],
15412
+ "summary": "Update",
15413
+ "description": "Update a private key.",
15414
+ "operationId": "update-private-key",
15415
+ "requestBody": {
15416
+ "required": true,
15417
+ "content": {
15418
+ "application/json": {
15419
+ "schema": {
15420
+ "required": [
15421
+ "private_key"
15422
+ ],
15423
+ "properties": {
15424
+ "name": {
15425
+ "type": "string"
15426
+ },
15427
+ "description": {
15428
+ "type": "string"
15429
+ },
15430
+ "private_key": {
15431
+ "type": "string"
15432
+ }
15433
+ },
15434
+ "type": "object",
15435
+ "additionalProperties": false
15436
+ }
15437
+ }
15438
+ }
15439
+ },
15440
+ "responses": {
15441
+ "201": {
15442
+ "description": "The updated private key's UUID.",
15443
+ "content": {
15444
+ "application/json": {
15445
+ "schema": {
15446
+ "properties": {
15447
+ "uuid": {
15448
+ "type": "string"
15449
+ }
15450
+ },
15451
+ "type": "object"
15452
+ }
15453
+ }
15454
+ }
15455
+ },
15456
+ "400": {
15457
+ "$ref": "#/components/responses/400"
15458
+ },
15459
+ "401": {
15460
+ "$ref": "#/components/responses/401"
15461
+ },
15462
+ "404": {
15463
+ "$ref": "#/components/responses/404"
15464
+ },
15465
+ "422": {
15466
+ "$ref": "#/components/responses/422"
15467
+ }
15468
+ },
15469
+ "security": [
15470
+ {
15471
+ "bearerAuth": []
15472
+ }
15473
+ ],
15474
+ "parameters": [
15475
+ {
15476
+ "name": "uuid",
15477
+ "in": "path",
15478
+ "description": "Private Key UUID",
15479
+ "required": true,
15480
+ "schema": {
15481
+ "type": "string"
15482
+ }
15483
+ }
15484
+ ]
15471
15485
  }
15472
15486
  },
15473
15487
  "/servers/{uuid}/cloudflare-tunnel": {
@@ -23776,7 +23790,8 @@
23776
23790
  },
23777
23791
  "ports_exposes": {
23778
23792
  "type": "string",
23779
- "description": "Ports exposes."
23793
+ "description": "Ports exposes.",
23794
+ "nullable": true
23780
23795
  },
23781
23796
  "ports_mappings": {
23782
23797
  "type": "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jurislm/coolify-plugin",
3
- "version": "4.0.10",
3
+ "version": "4.0.12",
4
4
  "description": "Portable local stdio MCP plugin for Coolify",
5
5
  "publishConfig": {
6
6
  "access": "public"
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.10",
4
+ "version": "4.0.12",
5
5
  "description": "Portable Coolify MCP plugin with local stdio tools generated from the official OpenAPI contract.",
6
6
  "author": {
7
7
  "name": "JurisLM",