coolify/app
Poul fe855cf8d0 feat(api): add REST endpoints for destinations
The Destinations section is exposed in the Coolify UI but not via the
REST API. The destination_uuid field is required when creating
applications via create-public-application, but no way to enumerate or
create destinations programmatically existed — this blocks IaC tools
(e.g. an Aspire publisher targeting Coolify).

Adds, scoped to the existing v1 auth:sanctum + ApiAllowed + api.sensitive
group:

  GET    /api/v1/destinations
  GET    /api/v1/destinations/{uuid}
  DELETE /api/v1/destinations/{uuid}
  GET    /api/v1/servers/{server_uuid}/destinations
  POST   /api/v1/servers/{server_uuid}/destinations

The controller uses the existing inline-Validator convention (no Form
Request classes per the API surface's house style), reuses
StandaloneDocker::ownedByCurrentTeamAPI / SwarmDocker::ownedByCurrentTeamAPI
for team scoping (matching ScheduledTasksController etc.), and respects
the `attachedTo()` guard on delete.

No migrations needed — both standalone_dockers and swarm_dockers tables
already carry uuid/name/network/server_id/timestamps.

OpenAPI @OA\ annotations omitted in this commit to keep the diff
minimal; a follow-up can add them in the style of ServersController.
2026-05-25 11:15:08 +00:00
..
Actions feat(applications): add configurable stop grace period 2026-05-11 23:43:53 +02:00
Console feat(security): support expiration on API tokens with warning notifications 2026-04-20 14:28:38 +02:00
Contracts refactor: streamline job status retrieval and clean up repository interface 2025-01-10 19:53:13 +01:00
Data refactor: simplify remote process chain and harden ActivityMonitor 2026-03-26 13:26:16 +01:00
Enums feat(buildpack): add Railpack as a build pack option 2026-03-23 17:12:02 +00:00
Events Make proxy restart run as background job to prevent localhost lockout 2025-12-03 10:30:12 +01:00
Exceptions feat(observability): add structured audit log channel for API and webhook events 2026-04-28 14:50:37 +02:00
Helpers feat(server): add configurable SSH connection timeout per server 2026-04-28 15:39:36 +02:00
Http feat(api): add REST endpoints for destinations 2026-05-25 11:15:08 +00:00
Jobs feat(deployments): track application configuration diffs (#10183) 2026-05-13 10:49:53 +02:00
Listeners fix(proxy): defer UI refresh until Traefik version check completes 2025-12-27 15:16:58 +01:00
Livewire fix(applications): refresh pending configuration changes 2026-05-13 10:04:17 +02:00
Mcp fix(mcp): change enable/disable endpoints from GET to POST and fix service/app listing 2026-05-05 22:07:58 +02:00
Models feat(deployments): track application configuration diffs (#10183) 2026-05-13 10:49:53 +02:00
Notifications feat(security): support expiration on API tokens with warning notifications 2026-04-20 14:28:38 +02:00
Policies chore: prepare for PR 2026-02-25 11:18:46 +01:00
Providers feat(horizon): suppress failed job entries for deployment/timeout errors on cloud 2026-04-29 15:40:01 +02:00
Repositories refactor: streamline job status retrieval and clean up repository interface 2025-01-10 19:53:13 +01:00
Rules refactor(storage): tighten S3 endpoint URL validation 2026-04-20 11:50:19 +02:00
Services feat(deployments): track application configuration diffs 2026-05-13 09:58:58 +02:00
Support fix(env): validate Docker-compatible variable keys 2026-05-11 15:43:09 +02:00
Traits fix(sentinel): auto-regenerate invalid or undecryptable tokens 2026-04-29 16:44:12 +02:00
View/Components feat(forms): make textarea monospace opt-in and improve multiline toggle 2026-03-31 15:37:42 +02:00