Skip to content

fix(auth): requerir rol admin en rutas de agentes, rearme y gestión de routers - #8

Merged
gnacho merged 1 commit into
mainfrom
fix/require-admin-routes
Aug 4, 2026
Merged

fix(auth): requerir rol admin en rutas de agentes, rearme y gestión de routers#8
gnacho merged 1 commit into
mainfrom
fix/require-admin-routes

Conversation

@gnacho

@gnacho gnacho commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Cierra el punto §2 (permisos demasiado amplios) de la auditoría de seguridad v2.4.0.

Problema: crear/revocar agentes, rearmar agentes vía SSH, añadir/borrar routers, ver la clave SSH pública y escanear la LAN solo exigían sesión (RequireAuth), no rol admin. Un usuario de rol user podía modificar la monitorización o ejecutar acciones sobre los routers.

Fix:

  • Backend: POST/DELETE /api/agents, POST /api/agents/{slug}/rearm, POST/DELETE /api/config/routers, GET /api/config/sshkey, GET /api/config/discoverRequireAdmin (403 para rol user). Lecturas equivalentes siguen tras RequireAuth.
  • Frontend: RoutersManager y botón «Rearmar» solo visibles para admin.
  • Tests: admin_gate_test.go (403 user / 200 lecturas / 201 admin). Suite completa verde + vet + tsc.
  • Bump v2.4.1 + nota en ROADMAP.

Fixes #7. Relacionado con #6 (issue paraguas de la auditoría).

…e routers

Auditoría v2.4.0 §2 (issue #7): las rutas que mutan la monitorización o
exponen credenciales estaban tras RequireAuth (cualquier sesión), no tras
RequireAdmin. Un usuario con rol 'user' podía crear/revocar tokens de
agente, rearmar agentes vía SSH, añadir/borrar routers y ver la clave SSH
pública del servidor.

Backend (server-go):
- POST/DELETE /api/agents, POST /api/agents/{slug}/rearm → RequireAdmin
- POST/DELETE /api/config/routers, GET /api/config/sshkey,
  GET /api/config/discover → RequireAdmin
- Lecturas equivalentes (GET /api/agents, GET /api/config/routers) siguen
  tras RequireAuth; sin cambio de contrato para admin.

Frontend (app):
- RoutersManager se oculta a usuarios no admin (Settings).
- Botón «Rearmar» solo con rol admin (AgentRearmButton).

Tests: admin_gate_test.go — 403 para rol user en las rutas mutantes y de
credenciales; 200 en las lecturas; 201 para admin en POST /api/agents.
Suite completa verde + go vet + tsc. Bump v2.4.1.

Fixes #7
@gnacho
gnacho merged commit fc48df1 into main Aug 4, 2026
2 checks passed
@gnacho
gnacho deleted the fix/require-admin-routes branch August 4, 2026 12:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Requerir rol admin en rutas de agentes, rearme y gestión de routers

1 participant