
# Aktualisiere eine Anwendung

`PATCH /v1/applications/{application_id}` · Berechtigung `applications:write`

Aktualisiert eine Anwendung mit einem JSON-Merge-Patch (`application/merge-patch+json`, RFC 7396): Felder, die du sendest, ändern sich, `null` löscht ein ablehnbares Feld, Arrays werden vollständig ersetzt. `If-Match` ist erforderlich: ohne sie fehlgeschlagen mit `428`, mit veralteter Version mit `412`. Die unveränderlichen Felder `key`, `app_type`, `registration_source` und `owner_org_id` geben `422` mit Code `immutable` zurück, wenn du einen anderen Wert sendest. Ein Patch, der nichts ändert, hinterlässt die Anwendung und ihre Version unverändert.

## Anfrage

**Headers**: `If-Match: "<version>"` (erforderlich), `Content-Type: application/merge-patch+json`.

**Path**: `application_id` (`app_…`).

**Body**: jede Teilmenge der beschreibbaren Felder auf der Create-Seite aufgeführt (`key`, `name`, `app_type`, … `connection_ids`). `null` löscht ein Feld, das ablehnbar ist; Arrays ersetzen die ganze Liste; `jwks` wird als Objekt ersetzt. Schreibgeschützte Felder (`id`, `client_id`, `version`, `created_at`, `updated_at`, `last_token_issued_at`, `last_token_asn`) werden abgelehnt.

## Antwort

`200 OK` mit der aktualisierten Anwendung und dem neuen `ETag`.

## Fehler

| HTTP | `code` | Wann |
|---|---|---|
| 401 | `unauthenticated` | Der Schlüssel fehlt, ist ungültig oder wurde widerrufen. |
| 403 | `insufficient_permissions` | Der Schlüssel hat nicht die erforderliche Berechtigung. |
| 404 | `not_found` | Die Anwendung existiert nicht in dieser Umgebung. |
| 428 | `precondition_required` | Der `If-Match`-Header fehlt. |
| 412 | `precondition_failed` | Die Version in `If-Match` ist veraltet. |
| 422 | `validation_failed` | Ein Feld ist ungültig oder ein unveränderliches Feld hat sich geändert. |
| 422 | `policy_conflict` | `allowed_first_factors` hat keine gemeinsame Methode mit der Erstfaktor-Menge der Umgebung. |
| 400 | `unknown_field` | Der Patch hat ein Feld, das nicht Teil des Schemas ist (einschließlich schreibgeschützter Felder wie `id`). |
| 415 | `unsupported_media_type` | `Content-Type` ist nicht `application/merge-patch+json`. |

## Beispiel

```bash
curl -X PATCH https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"name":"Portal v2","login_host":null}'
```
