fix: API-Doku mit verifizierten Response-Formaten und korrekten Feldnamen

- PATCH domain: 'domains' statt 'fqdn' (fqdn -> 422 Validation Error)
- POST: fqdn nicht im Body erlaubt, Domain separat per PATCH setzen
- GET /deployments/applications/{uuid}: Response ist {count, deployments:[]}
  kein reines Array; Feld heißt deployment_uuid (nicht uuid)
- /deploy Response: {deployments:[{message, resource_uuid, deployment_uuid}]}
- Polling-Beispiel: .deployments[0].deployment_uuid

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas Soring
2026-03-05 21:20:29 +01:00
parent b2a4ca660d
commit ff248079ee
2 changed files with 38 additions and 27 deletions

View File

@@ -111,7 +111,10 @@ Für Repositories auf `git.coolai.btc-ag.cloud`.
| `build_pack` | string | ja | `dockerfile` \| `nixpacks` \| `static` |
| `ports_exposes` | string | ja | Port(s) der Anwendung (z. B. `3000`) |
| `name` | string | nein | Anzeigename |
| `fqdn` | string | nein | Domain(s), kommagetrennt |
:::note
`fqdn`/Domain kann **nicht** im POST-Body gesetzt werden — dies geschieht per PATCH nach der Anlage (siehe unten).
:::
<Tabs>
<TabItem label="Request">
@@ -129,8 +132,7 @@ curl -s -X POST https://coolai.btc-ag.cloud/api/v1/applications/private-deploy-k
"git_branch": "main",
"build_pack": "dockerfile",
"ports_exposes": "3000",
"name": "meine-app",
"fqdn": "https://meine-app.btc-ag.cloud"
"name": "meine-app"
}'
```
@@ -140,7 +142,7 @@ curl -s -X POST https://coolai.btc-ag.cloud/api/v1/applications/private-deploy-k
```json
{
"uuid": "newly-created-uuid",
"message": "Application created."
"domains": "http://newly-created-uuid.server-ip.sslip.io"
}
```
@@ -162,19 +164,21 @@ Aktualisiert einzelne Felder einer Anwendung. Nur übergebene Felder werden geä
| Feld | Beschreibung |
|---|---|
| `name` | Anzeigename |
| `fqdn` | Domain(s) |
| `domains` | Domain(s) setzen — **nicht** `fqdn`! (GET zeigt `fqdn`, PATCH erwartet `domains`) |
| `git_branch` | Branch wechseln |
| `git_repository` | Repository-URL ändern |
| `environment_variables` | Variablen als Newline-getrennter String |
| `dockerfile_location` | Pfad zum Dockerfile |
<Tabs>
<TabItem label="Domain ändern">
<TabItem label="Domain setzen">
```bash
# Feld heißt "domains" beim Schreiben (GET-Response zeigt "fqdn")
curl -s -X PATCH https://coolai.btc-ag.cloud/api/v1/applications/<uuid> \
-H "Authorization: Bearer $COOLIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fqdn": "https://neue-domain.btc-ag.cloud"}'
-d '{"domains": "https://meine-app.btc-ag.cloud"}'
```
</TabItem>

View File

@@ -33,9 +33,14 @@ curl -s "https://coolai.btc-ag.cloud/api/v1/deploy?uuid=<app-uuid>&force=true" \
```json
{
"message": "Deployment queued.",
"deployments": [
{
"message": "Application meine-app deployment queued.",
"resource_uuid": "<app-uuid>",
"deployment_uuid": "deploy-abc123"
}
]
}
```
---
@@ -51,26 +56,28 @@ Gibt alle Deployments einer Anwendung zurück, neueste zuerst.
```bash
curl -s https://coolai.btc-ag.cloud/api/v1/deployments/applications/<app-uuid> \
-H "Authorization: Bearer $COOLIFY_TOKEN" \
| jq '.[] | {uuid, status, created_at}'
| jq '.deployments[] | {deployment_uuid, status, created_at}'
```
**Response:**
**Response** — kein reines Array, sondern ein Objekt mit `count` und `deployments`:
```json
[
{
"uuid": "deploy-abc123",
"count": 3,
"deployments": [
{
"deployment_uuid": "deploy-abc123",
"status": "finished",
"created_at": "2026-03-05T10:00:00Z",
"logs": "..."
"commit": "b2a4ca66...",
"created_at": "2026-03-05T20:13:00Z"
},
{
"uuid": "deploy-xyz789",
"deployment_uuid": "deploy-xyz789",
"status": "failed",
"created_at": "2026-03-04T15:30:00Z",
"logs": "..."
"created_at": "2026-03-05T20:10:00Z"
}
]
}
```
---
@@ -142,11 +149,11 @@ Für automatisierte Workflows, die auf den Abschluss eines Deployments warten m
APP_UUID="<app-uuid>"
COOLIFY_TOKEN="<token>"
# Deployment starten und UUID merken
# Deployment starten und UUID merken (deployment_uuid steckt in .deployments[0])
DEPLOY_UUID=$(curl -s \
"https://coolai.btc-ag.cloud/api/v1/deploy?uuid=$APP_UUID&force=false" \
-H "Authorization: Bearer $COOLIFY_TOKEN" \
| jq -r '.deployment_uuid')
| jq -r '.deployments[0].deployment_uuid')
echo "Deployment gestartet: $DEPLOY_UUID"