Eine Verbindungsrevision veröffentlichen

POST /v1/connections/{connection_id}/revisions/{revision_id}:publish · Berechtigung connections:write

Macht eine Entwurfsrevision zur aktiven Konfiguration einer Unternehmensverbindung. In einem Schritt ersetzt das Material der Revision die aktive Konfiguration:

Die Revision benötigt eine bestandene Test-Anmeldung dieser Revision aus den letzten 24 Stunden: Starten Sie eine mit Eine Verbindung testen und revision_id, und schließen Sie sie im Browser ab. Der Test der aktiven Konfiguration zählt nicht.

Die Veröffentlichung einer bereits veröffentlichten Revision schreibt nichts und gibt 200 mit already_published: true zurück; bei zwei gleichzeitigen Veröffentlichungen schreibt nur eine. Die Veröffentlichung wird als connection.revision_published protokolliert.

Der Anfragetext ist leer (senden Sie keinen oder {}), ein If-Match gibt es nicht: Eine Revision hat keine Version. Wurde die aktive Konfiguration geändert, nachdem der Entwurf erstellt wurde, wird die Veröffentlichung abgelehnt und Sie erstellen einen neuen Entwurf.

Anfrage

Feld Typ Pflicht Beschreibung
connection_id Pfad ja ID der Unternehmensverbindung (conn_…).
revision_id Pfad ja Revisions-ID (connrev_…) aus Die Revisionen auflisten.
Idempotency-Key Header nein Optionaler Schlüssel, der eine wiederholte Anfrage sicher macht (16–64 Zeichen).

Antwort

200 OK:

{
  "revision": {
    "id": "connrev_01j9xr8c2d4e6f8g0h2j4k6m8n",
    "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
    "protocol": "saml",
    "kind": "sp_host",
    "status": "published",
    "discard_reason": null,
    "created_at": "2026-10-28T10:00:00Z",
    "decided_at": "2026-10-28T11:00:00Z",
    "purge_after": "2027-01-26T11:00:00Z",
    "superseded_revision_id": null,
    "changes": {
      "sp_host": "login.example.com",
      "idp_entity_id": null,
      "idp_sso_url": null,
      "idp_slo_url": null,
      "certificate_fingerprints": [],
      "mfa_authn_context_values": null,
      "issuer": null,
      "client_id": null,
      "client_auth_method": null,
      "provider_profile": null,
      "client_secret_change": null
    },
    "latest_test": {
      "test_id": "conntest_01j9xr4a6b8c0d2e4f6g8h0j2k",
      "status": "passed",
      "failure_reason": null,
      "started_at": "2026-10-28T10:05:00Z",
      "completed_at": "2026-10-28T10:06:00Z"
    }
  },
  "already_published": false
}

Fehler

HTTP Code Wann
400 unknown_field Der Anfragetext ist weder leer noch {}.
401 unauthenticated Die Anmeldedaten fehlen, sind ungültig oder widerrufen.
403 insufficient_permissions Die Anmeldedaten haben nicht connections:write.
404 not_found Die Verbindung oder die Revision existiert in dieser Umgebung nicht, oder die Revision gehört zu einer anderen Verbindung.
409 conflict Eine Voraussetzung ist nicht erfüllt; detail nennt welche: Die Revision wurde verworfen; sie hat keine bestandene Testanmeldung aus den letzten 24 Stunden; die Verbindung wurde geändert, nachdem der Entwurf erstellt wurde (erstellen Sie einen neuen Entwurf); das 30-Tage-Fenster der vorherigen SP-Host-Migration ist noch offen; der neue SP-Host ist kein Host dieser Umgebung mehr; die Verbindung würde mehr als 3 aktive Signaturzertifikate haben.
429 rate_limited Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.
503 service_unavailable Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.

Beispiel

curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/revisions/connrev_01j9xr8c2d4e6f8g0h2j4k6m8n:publish" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
keenauth connections revisions publish conn_01j9xp6q0r1s5t7v9w1x3y5z7b connrev_01j9xr8c2d4e6f8g0h2j4k6m8n --yes