17. Operación, QA y seguridad
Operación local
Sitio:
npm install
npm run servePipeline:
cp .env.example .env # completar valores reales
pip install -r scripts/requirements.txt
DRY_RUN=true python scripts/pipeline.py # simulación
python scripts/pipeline.py # ejecución realTests
- Unit tests:
tests/test_calendar.py,tests/test_manifest.py - Comando:
python -m unittest discover -s tests
Smoke test recomendado
cp .env.example .envy completar valores.python -m unittest discover -s tests.DRY_RUN=true python scripts/pipeline.py— valida orquestación.python scripts/pipeline.pyen corrida controlada — valida Moodle + LLM.
Observabilidad / debugging
- El pipeline usa logging “una línea” amigable con GitHub Actions.
- Si hay errores por documento, el pipeline:
- continúa con los demás,
- pero termina con exit code != 0 para visibilidad en CI.
Seguridad y privacidad
Secrets
.envNO debe commitearse (ver.gitignore).- Los secrets de Moodle y LLM son credenciales sensibles.
Datos
- El contenido procesado proviene de Moodle (material académico).
- El LLM recibe texto extraído; se recomienda asumir que puede contener datos personales (nombres, emails, etc.), y por lo tanto requiere criterio al elegir proveedor y logs.
Headers de seguridad (Cloudflare Pages)
Archivo _headers aplica:
Content-Security-Policyrestrictiva (con excepciones por Quartz),HSTS,X-Frame-Options,X-Content-Type-Options, etc.
Limitaciones actuales a monitorear
- PDFs escaneados sin OCR pueden no producir resumen usable.
- Reintentos del summarizer hoy se enfocan en errores de red (no todos los 429/5xx están cubiertos).