# Auditoría estática de EduGo — 2026-10-29

## Paquete revisado
- Versión declarada: EduGo v2.16.22 PRODUCCIÓN.
- 301 archivos PHP revisados con `php -l` en PHP 8.4: sin errores de sintaxis.
- Pruebas estáticas ejecutadas y aprobadas:
  - aislamiento por sede: 9/9
  - permisos/aislamiento de sede: 11/11
  - documentos y UI de caja: 8/8
  - correlativo global de estudiante: 11/11
  - cálculo de promociones: 6/6
  - mapeo de importación: 7/7

## Corrección incluida en este paquete
Se retiró `admin.dashboard` de la lista blanca efectiva del rol `SECRETARIA_MAESTRA` en `app/Modules/Auth/Services/AuthService.php`. El rol conserva únicamente:
- `secretaria.maestra.dashboard`
- `matriculas.presencial`
- `asistencia.gestionar`
- `caja.gestionar`

Esto evita que la autorización especial del rol conceda por ese permiso las rutas generales que dependen de `admin.dashboard`, incluidas operaciones sobre estudiantes y apoderados que no corresponden a su alcance operativo limitado.

## Protección de secretos
El ZIP original contenía `.env` con credenciales/configuración de producción. Este paquete auditado excluye el `.env` real y contiene `.env.example` con marcadores. No sobrescriba el `.env` existente en el hosting al desplegar.
**Acción de seguridad obligatoria:** rote la contraseña de la base de datos y la clave API que estaban en el `.env` incluido en el ZIP original; actualice los valores solo en el entorno seguro del hosting.

## Limitaciones que impiden certificar toda la producción
- No se estableció conexión con la base de datos real del hosting; el entorno de auditoría no tiene habilitado el controlador PDO MySQL. No se ejecutó ninguna escritura contra producción.
- Las consultas compartidas por el usuario confirman 94 claves foráneas en 38 tablas y cero huérfanos en las nueve relaciones concretas revisadas; no es una auditoría exhaustiva de todas las relaciones.
- Según las capturas del hosting, `users` tiene 739 registros y `user_roles` solo 2 asignaciones. Las otras 737 asignaciones se eliminaron previamente y deben recuperarse desde un respaldo fiable o reconstruirse de forma controlada antes de declarar los permisos completos.
- Las pruebas funcionales en navegador para inicio de sesión, matrícula 2027, pagos/comprobantes, caja, asistencia y firma PDF no se pudieron ejecutar desde este análisis estático.
- Hay pruebas antiguas en `tests/` que comprueban versiones anteriores (2.8–2.15) y fallan por expectativas obsoletas o rutas antiguas; no se deben interpretar automáticamente como fallos de la versión 2.16.22 sin actualizar esos tests.

## Dictamen
**Aprobado parcialmente para revisión controlada; NO certificado para operación real completa todavía.** Antes de operar con estudiantes/pagos reales: respaldar la base actual, rotar secretos, recuperar/verificar asignaciones de roles, ejecutar la auditoría SQL completa y probar los flujos críticos con usuarios de prueba.
