Lizenzierung API
ENTWURF — Nur für interne Entwicklerteams
Diese API-Referenz ist für interne Entwicklerteams bestimmt.
Übersicht
Was es ist: Die Lizenzierung-API bietet eine vollständige Lizenzlebenszyklus-Verwaltung für Hydden Discovery, einschließlich Lesen des Lizenzstatus, Erstellen und Aktivieren von Lizenzen, Verwalten von Lizenzregistrierungen, Generieren von Einmalpasswörtern für die Aktivierung und Abrufen von Lizenzserver-Informationen.
Quelle: src/license/rest/rest.go
Basispfad
/internal/v1/licenseAuthentifizierung
Alle Endpunkte erfordern JWT-Cookie- oder API-Token-Authentifizierung.
Endpunkte
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /internal/v1/license | Aktuelle Lizenzinformationen abrufen |
POST | /internal/v1/license | Eine neue Lizenz erstellen/registrieren |
PATCH | /internal/v1/license | Eine bestehende Lizenz aktualisieren/patchen |
POST | /internal/v1/license/store | Einen Lizenztoken speichern/persistieren |
GET | /internal/v1/license/otp | Lizenz-OTP abrufen (aktueller Mandant) |
GET | /internal/v1/license/otp/:tid | Lizenz-OTP für einen bestimmten Mandanten abrufen |
GET | /internal/v1/license/record | Lizenzdatensatz-Informationen abrufen |
DELETE | /internal/v1/license/record | Den Lizenzdatensatz löschen |
GET | /internal/v1/license/server | Lizenzserver-Adresse abrufen |
POST | /internal/v1/license/registration | Eine neue Lizenzregistrierung erstellen |
PATCH | /internal/v1/license/registration | Eine bestehende Lizenzregistrierung aktualisieren |
GET | /internal/v1/license/request | Eine neue Lizenzanfrage generieren |
GET /internal/v1/license
Den aktuellen Lizenzstatus und die Details abrufen. Gibt eine Testlizenz zurück, wenn keine gültige Lizenz gefunden wird.
Anfrage:
GET /internal/v1/license
Authorization: Bearer <token>Antwort (200):
{
"status": "active",
"plan": "enterprise",
"expiresAt": "2027-02-12T00:00:00Z",
"features": ["ai-assistant", "attestation", "automation", "universal-collector"],
"limits": {
"maxAccounts": 100000,
"maxDataSources": 200
}
}Fallback: Wenn die gespeicherte Lizenz nicht analysiert werden kann, wird stattdessen eine Testlizenz zurückgegeben.
POST /internal/v1/license
Eine neue Lizenz aus einem Lizenzregistrierungsstring erstellen oder registrieren.
Anfrage:
POST /internal/v1/license
Content-Type: application/json
Authorization: Bearer <token>"license-registration-string"Hinweis: Der Anfragekörper ist ein einfacher JSON-String (in Anführungszeichen), kein JSON-Objekt.
Antwort (200): Rohe Lizenz-Bytes (binärer Token).
PATCH /internal/v1/license
Eine bestehende Lizenz aktualisieren oder patchen.
Anfrage:
PATCH /internal/v1/license
Content-Type: application/json
Authorization: Bearer <token>"updated-license-string"Antwort (200): Rohe Lizenz-Bytes (binärer Token).
POST /internal/v1/license/store
Einen Lizenztoken im Registry-Speicher persistieren.
Anfrage:
POST /internal/v1/license/store
Content-Type: application/json
Authorization: Bearer <token>Der Anfragekörper enthält den Lizenztoken-String.
Antwort (200): Lizenztoken-Bytes zur Bestätigung der Speicherung.
GET /internal/v1/license/otp/:tid
Ein Einmalpasswort für die Lizenzaktivierung abrufen. Das OTP wird während des initialen Lizenzregistrierungs-Handshakes verwendet.
Anfrage:
GET /internal/v1/license/otp/:tid
Authorization: Bearer <token>Pfadparameter:
| Parameter | Beschreibung |
|---|---|
tid | Mandanten-ID (optional — verwenden Sie /otp ohne den Parameter für den aktuellen Mandanten) |
Antwort (200):
{
"otp": "ABC123-DEF456",
"expiresAt": "2026-02-12T01:00:00Z"
}GET /internal/v1/license/record
Den Lizenzdatensatz mit Registrierungs- und Aktivierungsmetadaten abrufen.
Anfrage:
GET /internal/v1/license/record
Authorization: Bearer <token>Abfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
tenant | string | Optionale Mandanten-ID-Überschreibung |
Antwort (200):
{
"id": "record-uuid",
"tenantId": "tenant-uuid",
"registrationDate": "2026-01-15T00:00:00Z",
"lastRefresh": "2026-02-12T00:00:00Z"
}DELETE /internal/v1/license/record
Den Lizenzdatensatz löschen. Dies deaktiviert effektiv die Lizenz für den Mandanten.
Anfrage:
DELETE /internal/v1/license/record
Authorization: Bearer <token>Antwort (200): Gibt den gelöschten LicenseRecord zurück.
GET /internal/v1/license/server
Die konfigurierte Lizenzserver-Adresse abrufen.
Anfrage:
GET /internal/v1/license/server
Authorization: Bearer <token>Antwort (200): Klartext-String mit der Lizenzserver-URL.
https://license.hydden.comPOST /internal/v1/license/registration
Eine neue Lizenzregistrierung beim Lizenzserver erstellen.
Anfrage:
POST /internal/v1/license/registration
Content-Type: application/json
Authorization: Bearer <token>{
"tenantId": "tenant-uuid",
"registrationCode": "REG-CODE-123"
}Antwort (200): Rohe Antwort-Bytes vom Lizenzserver.
PATCH /internal/v1/license/registration
Eine bestehende Lizenzregistrierung aktualisieren, um die Lizenz zu erneuern oder zu aktualisieren.
Anfrage:
PATCH /internal/v1/license/registration
Authorization: Bearer <token>Kein Anfragekörper erforderlich.
Antwort (200): Rohe Antwort-Bytes vom Lizenzserver.
GET /internal/v1/license/request
Eine neue Lizenzanfrage generieren, die zur Offline-Aktivierung an den Lizenzserver übermittelt werden kann.
Anfrage:
GET /internal/v1/license/request
Authorization: Bearer <token>Antwort (200): Rohe Lizenzanfrage-Bytes (für die Offline-Übermittlung).
Fehlerantworten
| Status | Beschreibung |
|---|---|
400 | Ungültiger Lizenzstring oder Registrierungsdaten |
403 | Authentifizierung fehlgeschlagen oder unzureichende Berechtigungen |
404 | Lizenz oder Lizenzdatensatz nicht gefunden |
500 | Interner Serverfehler oder Lizenzserver nicht erreichbar |
Verwandte Themen
- Authentifizierung API — API-Authentifizierung und Token-Verwaltung
- Registry API — Knoten- und Plattformbenutzerverwaltung
