Files

6.0 KiB

proyecto_memoria.md — Memoria técnica del proyecto

Decisiones tomadas, razonamiento detrás de cada elección y estado actual. Actualizar con cada decisión técnica relevante.


Decisiones técnicas

Fecha Decisión Razonamiento
2026-10-12 Inicialización de la estructura estándar de documentación de agentes Estandarización bajo el ecosistema Telcotronics.
2026-10-12 Política de caducidad 24h exclusiva para usuarios Guest El usuario solicitó explícitamente que los archivos subidos por invitados se eliminen a las 24 horas, mientras que los usuarios registrados (Google OAuth / WebControl) mantengan sus archivos de manera permanente.
2026-10-12 Visor integrado universal para evitar depender de WhatsApp Permite abrir imágenes, reproducir video/audio, leer PDFs y ver texto o código directamente desde el navegador sin apps externas.
2026-10-12 Backend autónomo en Go con SQLite Binario único de alto rendimiento, bajo consumo de memoria y concurrencia nativa con goroutine para la limpieza periódica.
2026-10-13 Generación de QR nativa en Go vía /qr/{id} Se utiliza github.com/skip2/go-qrcode para servir el QR directamente en formato PNG (256x256), garantizando compatibilidad total con cualquier cámara de smartphone sin depender de scripts cliente pesados.
2026-10-13 Soporte doble de login: WebControl corporativo + Google OAuth Brinda flexibilidad tanto para colaboradores del ecosistema Telcotronics (vía api.siax-system.net) como para usuarios externos con Google.
2026-10-14 Adopción de la marca y dominio drop.sigmac.app Nombre conciso, memorable y alineado con los servicios y subdominios del ecosistema SIGMA (sigmac.app).
2026-10-17 Registro oficial en MCP Infraestructura (ID 34) e identidad de agente Se vinculó el proyecto al inventario central MariaDB vía API REST (:3007), asignando ID 34 bajo categoría application, y se creó id_agente.md según el estándar de identidad del ecosistema.
2026-10-19 Despliegue en producción en CT 132 con supervisión SIAX Monitor Se desplegó en server-webapps. Registrado en SIAX Monitor (:8080) como siax-app-DROP_SIGMAC_APP.service, habilitando reinicio atómico vía API sin sudo.
2026-10-20 Reasignación de puerto a 2008 para liberar 2006 a audio_control Se acordó con pablinux liberar el puerto 2006 para audio_control (correlativo a SoundWave en 2005) y trasladar drop.sigmac.app al puerto 2008 en CT 132 y MCP Infraestructura (ID 34).
2026-10-20 Activación de dominio público https://drop.sigmac.app Pablinux configuró el proxy reverso Apache en CT 150 con SSL Let's Encrypt. Se optimizó getBaseURL() para forzar HTTPS en los enlaces y códigos QR generados cuando el Host es drop.sigmac.app.
2026-10-20 Identidad visual e iconos multi-formato (SVG, ICO, PNG) Se diseñó un icono SVG escalable con flecha bidireccional y pulsos de transferencia en colores esmeralda/cian sobre contenedor squircle grafito oscuro. Se generaron versiones PNG (64, 192, 512 px) e ICO multi-resolución, enlazados en el navbar y servidos nativamente en /favicon.ico y /favicon.svg.
2026-10-21 Blindaje de seguridad y protección contra ejecución de scripts (RCE/XSS/MIME) Se auditaron riesgos de subida de scripts (.php, .phtml, .sh, .html, .svg). Se neutralizó la detección de MIME impidiendo que scripts se sirvan como ejecutables o HTML activo (Stored XSS). Se implementó Sandbox CSP, nosniff, DENY de frames en /raw/, permisos estrictos 0640 sin +x en disco, .htaccess preventivo en uploads/, flag Secure en cookies HTTPS, límite de 5 MB en share-text y sanitización reforzada contra path traversal multiplataforma.

Estado actual

Versión funcional completa y validada:

  • Subida de archivos por Drag & Drop, selección o pegado directo con Ctrl+V.
  • Subida de notas/código con pestaña interactiva.
  • Visor universal adaptativo con vista previa multimedia, lector de PDF y código con botón de copia.
  • Purga automática cada 10 minutos para archivos guest > 24h (test automatizado superado en main_test.go).
  • Cuentas registradas con almacenamiento permanente y panel /mis-archivos.
  • Registrado oficialmente en el MCP de Infraestructura (ID 34) y sincronizado con espejo local .agente/infraestructura.md.
  • Desplegado y ejecutándose activamente en producción (CT 132 puerto 2008) supervisado por SIAX Monitor.
  • Enrutamiento público operativo al 100% en https://drop.sigmac.app con SSL.

Tareas implementadas

  • Implementar base de datos SQLite y esquema de tablas (shares, users, sessions)
  • Implementar endpoints HTTP de subida (/api/upload, /api/share-text)
  • Implementar visor universal /v/{id} (HTML + Tailwind + QR)
  • Implementar worker de purga de archivos guest vencidos (24 horas)
  • Implementar auth con WebControl (api.siax-system.net) y Google OAuth2
  • Implementar panel "Mis Archivos" para usuarios autenticados
  • Sincronizar sección de infraestructura en global e internal para MCP
  • Crear scripts de despliegue estándar (desplegar.sh, init.sh, servers.conf.example)
  • Integrar servicio systemd para SIAX Monitor (siax-app-DROP_SIGMAC_APP.service)
  • Soporte para proxy reverso dinámico Apache (X-Forwarded-Proto, Host) en puerto 2008
  • Registrar proyecto en MCP de Infraestructura (ID 34) y crear id_agente.md oficial
  • Desplegar en producción en server-webapps (CT 132, :2008) y registrar en SIAX Monitor (:8080)
  • Crear icono SVG/PNG/ICO e integrarlo en la cabecera, navbar y servidor HTTP en producción
  • Auditar y blindar seguridad contra RCE, Stored XSS, MIME sniffing, Path Traversal y DoS en subidas y raw

Notas y observaciones

  • Los archivos se almacenan en data/uploads/ y la base de datos en data/compartir.db.
  • Los slugs son de 7 caracteres alfanuméricos no ambiguos generados criptográficamente.
  • Las sesiones de invitados se manejan mediante cookies seguras HTTP-only para permitir el flujo sin fricción.