API del agente
La API que usa el agente oficial. Útil si querés integrar tu propio recolector o auditar qué envía el agente.
Autenticación
Todas las llamadas son POST a https://ganyant.com/api/agent/<acción> con cuerpo JSON y estas cabeceras:
Authorization: Bearer gyk_… # API key del workspace
X-Ganyant-Machine: <machine-id> # identificador estable del servidor
Content-Type: application/jsonGuardamos solo el hash SHA-256 de la key. Si se revoca desde el panel, las llamadas devuelven 401.
Acciones
| Acción | Para qué | Cuerpo |
|---|---|---|
register | Alta o actualización del servidor | machine_id, hostname, os, kernel, arch, agent_version, cpu_cores, mem_total_bytes |
metrics | Lote de hasta 120 muestras (Pro+) | Lista de cpu_pct, mem_used_bytes, mem_total_bytes, swap_*, load1/5/15, disks[], net_rx_bps, net_tx_bps, ts |
events | Señales de seguridad | Lista de kind, severity, source_ip, details |
config | Tareas de backup y modo del plan | {} |
presign | URL de subida para un snapshot | job_id, size_bytes, original_bytes, kdf_salt, manual |
complete | Confirmar la subida | snapshot_id, ok, blake2b, error |
restore | URL de descarga del snapshot | job_name, at |
Valores de kind: ssh_bruteforce, rdp_bruteforce, traffic_anomaly, new_listening_port, disk_predictive.
Errores
400 | Cuerpo inválido |
401 | API key inválida o revocada |
402 | Función o límite no incluido en el plan (por ejemplo, PLAN_LIMIT:vault_quota) |
404 | Servidor, tarea o snapshot desconocido |
Código fuente
El agente es un único archivo Python legible y el recolector un único archivo C++20: ganyant_agent.py y ganyant_probe.cpp. Podés revisar exactamente qué envía antes de instalarlo.