Athena — servidor de telemetria EDR. ═══ AGENTES (gRPC, porta 8888/h2c) ═══════════════════════════════════════════ Autenticação de agente (dispensa sessão) athena.agent.v1.AgentAuth/RequestChallenge athena.agent.v1.AgentAuth/Authenticate ECDSA P-256 sobre "ARGOS-AUTH-V1" || agent_id || challenge Ingestão (exige sessão) edr.ingest.v1.TelemetryIngest/StreamEnvelopes (client streaming) edr.ingest.v1.TelemetryIngest/StreamEvents (client streaming) metadata: authorization: Bearer ═══ OPERADORES (REST, porta 8889) ══════════════════════════════════════════ Uma autenticação só para toda a superfície REST: usuário e senha -> JWT. Identidade POST /api/v1/auth/login usuario + senha -> access + refresh POST /api/v1/auth/refresh rotaciona o par de tokens POST /api/v1/auth/logout encerra a sessão corrente POST /api/v1/auth/logout-all encerra todas as sessões GET /api/v1/auth/me quem sou eu POST /api/v1/auth/change-password troca a própria senha GET /api/v1/auth/sessions sessões ativas DELETE /api/v1/auth/sessions/ revoga uma sessão Usuários (exige platform_admin) /api/v1/users Gestão (exige platform_staff) /api/v1/companies, /api/v1/machines, /api/v1/product-keys, /api/v1/agents Painel ao vivo (exige platform_staff) GET /api/admin/stream/metrics text/event-stream Em todas: header Authorization: Bearer (o stream aceita o cookie athena.jwt, porque EventSource não permite header) ═══ INSTALAÇÃO (REST, porta 8889) ═══════════════════════════════════════ Chamada pela APKR. Aceita o IP dela (Apkr:AllowedIps) OU um token de operador. POST /api/v1/apkr/activations reserva a licença GET /api/v1/apkr/activations/ estado da tentativa POST /api/v1/apkr/activations//company-code confere o CompanyCode POST /api/v1/apkr/activations//installation-code emite o InstallationCode POST /api/v1/apkr/installation-codes/verify autoriza o download POST /api/v1/apkr/agents PK + agent_id + public key DELETE /api/v1/apkr/activations/ cancela a instalação Nos passos ligados a uma tentativa: header X-Athena-Activation-Token: