API pro agenty¶
Registrace agentů, heartbeat, discovery a správa
Verze dokumentu: 1.1.0
Poslední aktualizace: 2026-04-04
Přehled¶
Agenti MazeVault jsou lehké procesy nasazené na uzlech infrastruktury, které zajišťují:
- Automatické vkládání tajemství do aplikací
- Objevování certifikátů napříč spravovanou infrastrukturou
- Synchronizaci tajemství a certifikátů v reálném čase
- Bezpečný proxy pro přístup lokálních aplikací k tajemstvím
Přehled endpointů¶
| Metoda | Endpoint | Autentizace | Popis |
|---|---|---|---|
| POST | /api/v1/agents/register |
Bootstrap token | Registrovat nového agenta |
| POST | /api/v1/agents/bootstrap |
JWT + agent:admin |
Vygenerovat bootstrap token |
| GET | /api/v1/agents |
JWT + agent:admin |
Zobrazit agenty |
| GET | /api/v1/agents/:id/discovery |
JWT + agent:admin |
Získat výsledky discovery agenta |
| GET | /api/v1/agents/update/latest |
Agent Cert | Zkontrolovat aktualizace agenta |
| POST | /api/v1/agents/me/refresh-token |
mTLS | Obnovit token agenta |
| POST | /api/v1/agents/me/health |
JWT | Nahlásit stav agenta |
| GET | /api/v1/agents/me/certificates |
JWT | Získat přiřazené certifikáty |
| GET | /api/v1/agents/me/connect |
JWT | WebSocket připojení agenta |
| POST | /api/v1/agents/me/discovery/certificates |
JWT | Nahlásit objevené certifikáty |
| POST | /api/v1/agents/me/password-requests |
JWT | Vytvořit žádost o heslo |
| GET | /api/v1/agents/me/password-requests |
JWT | Získat čekající odpovědi na hesla |
| POST | /api/v1/agents/me/ssh-discovery |
JWT | Nahlásit objevené SSH klíče |
Registrace agenta¶
Krok 1: Vygenerování bootstrap tokenu¶
Vytvořte bootstrap token ve webovém rozhraní MazeVault:
Nastavení → Agenti → Vygenerovat bootstrap token
Token je platný po konfigurovatelnou dobu (výchozí: 24 hodin) a může být použit pro stanovený počet registrací.
Krok 2: Registrace agenta¶
POST /api/v1/agents/register HTTP/1.1
Content-Type: application/json
{
"token": "***REMOVED***",
"name": "app-server-01",
"hostname": "app-server-01.example.com",
"os_type": "linux",
"metadata": {
"environment": "production",
"datacenter": "eu-west-1",
"role": "application-server"
}
}
Pole požadavku¶
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
token |
string | ✅ | Bootstrap token |
name |
string | ✅ | Zobrazovaný název agenta |
hostname |
string | — | FQDN hostitele |
os_type |
string | — | Typ operačního systému (např. linux, windows) |
metadata |
object | — | Metadata klíč–hodnota (nahrazuje labels) |
Odpověď 201 Created¶
| Pole | Popis |
|---|---|
id |
ID agenta pro následné požadavky |
token |
JWT token pro autentizované API volání |
mtls_template_id |
ID šablony certifikátu pro mTLS registraci |
Stav agenta (Health)¶
Agenti pravidelně hlásí svůj stav:
POST /api/v1/agents/me/health HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
{
"status": "healthy",
"uptime_seconds": 86400,
"metrics": {
"cpu_percent": 15.2,
"memory_percent": 42.8,
"disk_percent": 67.1
},
"managed_secrets": 12,
"managed_certificates": 5,
"last_sync": "2026-02-10T16:55:00Z"
}
Odpověď 200 OK¶
Pole commands může obsahovat čekající instrukce pro agenta (např. vynucení synchronizace, obnovení certifikátu).
Objevování certifikátů¶
Agenti mohou skenovat svou lokální infrastrukturu a hlásit objevené certifikáty:
POST /api/v1/agents/me/discovery/certificates HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
{
"certificates": [
{
"subject": "CN=legacy-app.internal,O=Example Corp",
"serial_number": "AB:CD:EF:01:23",
"issuer": "CN=Internal CA",
"not_before": "2025-06-15T00:00:00Z",
"not_after": "2026-06-15T00:00:00Z",
"location": "/etc/ssl/certs/legacy-app.pem",
"fingerprint": "SHA256:abc123...",
"dns_names": ["legacy-app.internal"],
"ip_addresses": ["10.0.2.50"],
"source": "filesystem",
"is_managed": false
}
]
}
Odpověď 200 OK¶
Objevené certifikáty se zobrazí ve webovém rozhraní MazeVault v sekci Certifikáty → Objevené k přezkoumání a volitelnému importu.
Výpis agentů¶
Pouze pro administrátory
Tento endpoint vyžaduje oprávnění agent:admin.
Parametry dotazu¶
| Parametr | Typ | Popis |
|---|---|---|
status |
string | Filtrovat: online, offline, degraded |
label |
string | Filtrovat podle štítku (klíč=hodnota) |
search |
string | Vyhledávat podle hostname |
page |
integer | Číslo stránky |
per_page |
integer | Položek na stránku |
Odpověď 200 OK¶
{
"data": [
{
"id": "agt_xyz789",
"hostname": "app-server-01.example.com",
"status": "online",
"platform": "linux/amd64",
"agent_version": "1.8.0",
"labels": {
"environment": "production",
"datacenter": "eu-west-1"
},
"last_heartbeat": "2026-02-10T17:00:00Z",
"managed_secrets": 12,
"managed_certificates": 5,
"registered_at": "2026-01-15T10:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 1
}
}
Stavy agenta¶
| Stav | Popis | Podmínka |
|---|---|---|
online |
Agent je zdravý a hlásí se | Poslední heartbeat < 2× interval |
degraded |
Agent hlásí problémy | Heartbeat přijat, ale metriky ukazují problémy |
offline |
Agent neodpovídá | Poslední heartbeat > 3× interval |
Požadovaná oprávnění¶
| Operace | Požadované oprávnění |
|---|---|
| Registrovat agenta | Bootstrap token (bez uživatelské autentizace) |
| Zobrazit agenty | agent:admin |
| Vygenerovat bootstrap token | agent:admin |
| Získat výsledky discovery | agent:admin |
| Health / Discovery / Password-requests | Agent JWT (self-service) |
| Obnovit token | mTLS klientský certifikát |
Žádosti o hesla agenta¶
Agenti mohou žádat o rotaci hesel jménem spravovaných služeb:
Vytvořit žádost o heslo¶
POST /api/v1/agents/me/password-requests HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
Získat čekající odpovědi¶
Administrace žádostí o hesla¶
| Metoda | Endpoint | Oprávnění | Popis |
|---|---|---|---|
| GET | /api/v1/admin/password-requests |
agent:admin |
Seznam všech žádostí |
| POST | /api/v1/admin/password-requests/:id/approve |
agent:admin |
Schválit žádost |
| POST | /api/v1/admin/password-requests/:id/reject |
agent:admin |
Zamítnout žádost |
Objevování SSH klíčů¶
Agenti mohou hlásit objevené SSH klíče ze spravovaných hostitelů:
POST /api/v1/agents/me/ssh-discovery HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
Správa SSH klíčů je dostupná na /api/v1/ssh/discovery (vyžaduje oprávnění ssh:discover).
Kontrola aktualizací agenta¶
Vrátí nejnovější dostupnou verzi agenta pro automatické aktualizace.
Související¶
- Začínáme — Autentizace API
- API pro tajemství — Správa tajemství
- Průvodce rychlým startem — Počáteční nastavení