Skip to content

Backup & Wiederherstellung API

ENTWURF — Nur für interne Entwicklerteams

Diese API-Referenz ist für interne Entwicklerteams bestimmt.

Übersicht

Was es ist: Die Backup & Wiederherstellung API bietet Endpunkte zum Erstellen, Herunterladen und Wiederherstellen von verschlüsselten Backups sowohl der Registry (Konfigurationsdaten) als auch des Datenspeichers (Entitäts-/Identitätsdaten). Backups sind verschlüsselte ZIP-Dateien, die durch KSUID identifiziert werden.

Quellen: src/registry/rest/rest.go, src/datastore/rest/rest.go

Authentifizierung

Alle Endpunkte erfordern JWT-Cookie- oder API-Token-Authentifizierung. Benutzeransprüche (Mandant, Identität, E-Mail) werden in die Backup-Metadaten eingebettet.

Endpunkte

Registry-Backup

MethodePfadBeschreibung
POST/internal/v1/registry/backupEin Registry-Konfigurationsbackup erstellen
POST/internal/v1/registry/restoreRegistry aus einer Backup-Datei wiederherstellen
GET/internal/v1/registry/backup/:node/:backupEine Registry-Backup-Datei herunterladen

Datenspeicher-Backup

MethodePfadBeschreibung
POST/internal/v1/datastore/backupEin Datenspeicher-Entitäts-Backup erstellen
POST/internal/v1/datastore/restoreDatenspeicher aus einer Backup-Datei wiederherstellen
GET/internal/v1/datastore/backup/:node/:backupEine Datenspeicher-Backup-Datei herunterladen

POST /internal/v1/registry/backup

Ein verschlüsseltes Backup aller Registry-Konfigurationsdaten erstellen.

Anfrage:

http
POST /internal/v1/registry/backup
Content-Type: application/json
Authorization: Bearer <token>
json
{
  "secret": "strong-encryption-passphrase"
}

Anfragefelder:

FeldTypErforderlichBeschreibung
secretstringJaVerschlüsselungspassphrase für die Backup-ZIP. Muss die Passwort-Komplexitätsanforderungen erfüllen.

Antwort (200):

json
{
  "id": "2GxBsGZA8gGzJDqTnVfYstMeaXd",
  "node": "node-uuid",
  "date": 1707700800000
}

Antwortfelder:

FeldTypBeschreibung
idstringBackup-Identifikator (KSUID-Format)
nodestringKnoten-ID, auf dem das Backup erstellt wurde
dateint64Zeitstempel der Backup-Erstellung (ms)

Backup-Metadaten (in der ZIP eingebettet): Mandanten-ID, Benutzeridentität, Benutzer-ID, E-Mail und Name aus der authentifizierten Sitzung.


POST /internal/v1/registry/restore

Registry-Konfiguration aus einer verschlüsselten Backup-Datei wiederherstellen. Wird als Multipart-Formular hochgeladen.

Anfrage:

http
POST /internal/v1/registry/restore
Content-Type: multipart/form-data
Authorization: Bearer <token>

Formularfelder:

FeldTypBeschreibung
filefileDie Backup-ZIP-Datei
secretstringEntschlüsselungspassphrase (muss mit der beim Backup verwendeten übereinstimmen)

Antwort (200):

json
{
  "records": 245,
  "failed": 0,
  "error": ""
}

Antwortfelder:

FeldTypBeschreibung
recordsint64Anzahl der wiederhergestellten Konfigurationsdatensätze
failedint64Anzahl der Datensätze, die nicht wiederhergestellt werden konnten
errorstringFehlermeldung (leer bei Erfolg)

GET /internal/v1/registry/backup/:node/:backup

Eine zuvor erstellte Registry-Backup-Datei herunterladen.

Anfrage:

http
GET /internal/v1/registry/backup/:node/:backup
Authorization: Bearer <token>

Pfadparameter:

ParameterBeschreibung
nodeKnoten-ID, auf dem das Backup erstellt wurde
backupBackup-ID (KSUID)

Antwort (200): Binäre ZIP-Datei.

Antwortheader:

HeaderWert
Content-Dispositionattachment; filename=hydden-tenant-{id}-{timestamp}.zip
Content-Typeapplication/octet-stream

POST /internal/v1/datastore/backup

Ein verschlüsseltes Backup aller Datenspeicher-Entitätsdaten erstellen.

Anfrage:

http
POST /internal/v1/datastore/backup
Content-Type: application/json
Authorization: Bearer <token>
json
{
  "secret": "strong-encryption-passphrase"
}

Antwort (200):

json
{
  "id": "2GxBsGZA8gGzJDqTnVfYstMeaXd",
  "node": "node-uuid",
  "date": 1707700800000
}

Gleiche Struktur wie die Registry-Backup-Antwort.


POST /internal/v1/datastore/restore

Datenspeicher-Entitätsdaten aus einer verschlüsselten Backup-Datei wiederherstellen.

Anfrage:

http
POST /internal/v1/datastore/restore
Content-Type: multipart/form-data
Authorization: Bearer <token>

Formularfelder: Gleich wie bei der Registry-Wiederherstellung (file + secret).

Antwort (200):

json
{
  "stores": 12,
  "records": 45230,
  "failed": 0,
  "error": ""
}

Antwortfelder:

FeldTypBeschreibung
storesint64Anzahl der wiederhergestellten Datenspeicher
recordsint64Anzahl der wiederhergestellten Entitätsdatensätze
failedint64Anzahl der Datensätze, die nicht wiederhergestellt werden konnten
errorstringFehlermeldung (leer bei Erfolg)

GET /internal/v1/datastore/backup/:node/:backup

Eine zuvor erstellte Datenspeicher-Backup-Datei herunterladen.

Anfrage:

http
GET /internal/v1/datastore/backup/:node/:backup
Authorization: Bearer <token>

Pfadparameter: Gleich wie beim Registry-Backup-Download.

Antwort (200): Binäre ZIP-Datei.

Antwortheader:

HeaderWert
Content-Dispositionattachment; filename=hydden-registry-{timestamp}.zip
Content-Typeapplication/octet-stream

Fehlerantworten

StatusBeschreibung
400Ungültiger Anfragekörper, schwaches Verschlüsselungsgeheimnis oder beschädigte Backup-Datei
403Authentifizierung fehlgeschlagen oder unzureichende Berechtigungen
404Backup nicht gefunden (ungültige Knoten- oder Backup-ID)
500Interner Serverfehler während der Backup-/Wiederherstellungsoperation

Verwandte Themen

Hydden Documentation and Training Hub