API — Začínáme¶
Autentizace, základní URL, verzování a limity požadavků
Verze dokumentu: 1.1.0
Poslední aktualizace: 2026-04-04
1. Základní URL¶
Všechny endpointy API jsou relativní k vaší instalaci MazeVault:
Příklad:
2. Verzování API¶
| Verze | Stav | Prefix cesty |
|---|---|---|
| v1 | Aktuální — Stabilní | /api/v1/ |
| v2 | Rezervováno (Zero-Knowledge endpointy) | /api/v2/ |
Note
Pro všechny standardní integrace používejte API v1. API v2 je vyhrazeno pro operace s šifrováním typu zero-knowledge a pro běžné případy použití není vyžadováno.
3. Autentizace¶
Varianta A: Bearer token (interaktivní / session-based)¶
Získejte token prostřednictvím jednoho z autentizačních endpointů a poté jej přidejte do všech následujících požadavků:
Získání tokenu — Lokální autentizace (SRP)¶
Krok 1: Inicializace
Odpověď:
Krok 2: Ověření
POST /api/v1/auth/srp/verify HTTP/1.1
Content-Type: application/json
{
"username": "john.doe",
"client_public_key": "base64-encoded-A",
"client_proof": "base64-encoded-M1"
}
Odpověď:
{
"access_token": "***REMOVED***",
"token_type": "Bearer",
"expires_in": 86400,
"server_proof": "base64-encoded-M2"
}
Získání tokenu — OAuth 2.0 Client Credentials¶
POST /oauth/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=<id>&client_secret=<secret>
Note
Endpoint pro OAuth 2.0 token je na /oauth/token (ne pod /api/v1/).
Odpověď:
Získání tokenu — Univerzální autentizace (API klíč)¶
POST /api/v1/auth/universal-auth/login HTTP/1.1
Content-Type: application/json
{
"client_id": "<your-client-id>",
"client_secret": "<your-client-secret>"
}
Odpověď:
Varianta B: API token (programový přístup)¶
Vytvořte API token ve webovém rozhraní MazeVault (Uživatelské nastavení → API tokeny) a poté jej použijte přímo:
4. Limity požadavků¶
| Kategorie endpointu | Limit | Okno | Hlavička |
|---|---|---|---|
| Autentizace | 10 | 1 minuta | X-RateLimit-Limit |
| API (autentizované) | 100 | 1 minuta | X-RateLimit-Limit |
| OCSP | 1000 | 1 minuta | — |
| Health | Neomezeno | — | — |
Hlavičky limitu požadavků jsou součástí každé odpovědi:
| Hlavička | Popis |
|---|---|
X-RateLimit-Limit |
Maximální počet požadavků za okno |
X-RateLimit-Remaining |
Zbývající požadavky v aktuálním okně |
X-RateLimit-Reset |
Unix timestamp resetování okna |
Při překročení limitu API vrátí 429 Too Many Requests.
5. Chybové odpovědi¶
Všechny chyby mají jednotný JSON formát:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Secret name is required",
"details": [
{
"field": "name",
"message": "This field is required"
}
],
"request_id": "req_abc123"
}
}
HTTP stavové kódy¶
| Kód | Význam | Typická příčina |
|---|---|---|
| 200 | OK | Úspěšný GET, PUT |
| 201 | Created | Úspěšný POST (zdroj vytvořen) |
| 204 | No Content | Úspěšný DELETE |
| 400 | Bad Request | Chyba validace, chybný formát požadavku |
| 401 | Unauthorized | Chybějící nebo expirovaný token |
| 403 | Forbidden | Nedostatečná oprávnění |
| 404 | Not Found | Zdroj neexistuje |
| 409 | Conflict | Duplicitní zdroj, konflikt verzí |
| 429 | Too Many Requests | Překročen limit požadavků |
| 500 | Internal Server Error | Neočekávaná chyba serveru |
Běžné chybové kódy¶
| Chybový kód | Popis |
|---|---|
AUTH_REQUIRED |
Nebyl poskytnut autentizační token |
AUTH_EXPIRED |
Platnost tokenu vypršela — proveďte opětovnou autentizaci |
AUTH_INVALID |
Token je neplatný nebo chybně formátován |
PERMISSION_DENIED |
Uživatel nemá požadované oprávnění |
VALIDATION_ERROR |
Validace těla požadavku selhala |
RESOURCE_NOT_FOUND |
Požadovaný zdroj neexistuje |
RESOURCE_CONFLICT |
Zdroj již existuje nebo konflikt verzí |
RATE_LIMITED |
Překročen limit požadavků |
CSRF_INVALID |
CSRF token chybí nebo je neplatný |
LICENSE_EXPIRED |
Platnost licence vypršela — kontaktujte podporu |
6. Stránkování¶
Endpointy pro výpis seznamů podporují stránkování:
Hlavičky odpovědi:
| Hlavička | Popis |
|---|---|
X-Total-Count |
Celkový počet zdrojů |
X-Page |
Číslo aktuální stránky |
X-Per-Page |
Počet položek na stránku |
7. Kontrola stavu¶
Ověření dostupnosti API:
Odpověď:
{
"status": "healthy",
"version": "1.8.0",
"components": {
"database": "healthy",
"redis": "healthy",
"ocsp": "healthy"
}
}
Související¶
- API pro tajemství — Endpointy pro správu tajemství
- API pro certifikáty — Endpointy pro životní cyklus certifikátů
- API pro agenty — Endpointy pro správu agentů
- Autentizace — Podrobný průvodce autentizací