docs: completar reglas.md, tareas.md, actualizar objetivos y enriquecer README con infraestructura MCP

This commit is contained in:
2026-10-17 03:49:20 -05:00
parent b3b8aac200
commit 7d72dcaa84
6 changed files with 123 additions and 4 deletions
+3
View File
@@ -37,3 +37,6 @@
| 2026-10-13 | Cuentas registradas (Google y WebControl) con almacenamiento permanente | Cuentas no-guest exentas de borrado a las 24h |
| 2026-10-13 | Panel / lista de "Mis Archivos" para usuarios registrados con opción de borrado | Interfaz `/mis-archivos` con métricas de visitas y eliminación |
| 2026-10-14 | Scripts de despliegue estándar (`desplegar.sh`, `init.sh`) y servicio para SIAX Monitor | Compilación Go estática, scp, servers.conf y systemd |
| 2026-10-17 | Registro oficial en MCP Infraestructura (ID 34) | Ficha técnica completa registrada en MariaDB bajo categoría application |
| 2026-10-17 | Registro en centro de comunicaciones de agentes (sigma-robot) | Identidad `Agente drop.sigmac.app` registrada vía REST; credenciales en `.env` |
| 2026-10-17 | Sincronización de normas y archivos base del ecosistema | Creación de `id_agente.md`, `reglas.md`, `tareas.md` y espejo de `infraestructura.md` |
+3 -1
View File
@@ -15,7 +15,9 @@ app_compartir/
│ ├── objetivos.md
│ ├── proyecto_errores.md
│ ├── proyecto_estructura.md
│ └── proyecto_memoria.md
│ ├── proyecto_memoria.md
│ ├── reglas.md
│ └── tareas.md
├── internal/
│ ├── auth/
│ │ └── auth.go # Manejo de sesiones, WebControl y Google OAuth2
+47
View File
@@ -0,0 +1,47 @@
# reglas.md — Reglas operativas y técnicas de app_compartir (drop.sigmac.app)
> Normas inviolables que todo agente o desarrollador debe respetar al interactuar con este proyecto.
---
## 1. Identidad del Agente
- Mantener siempre el archivo [`id_agente.md`](../id_agente.md) en la raíz del repositorio según la norma del ecosistema.
- **No inventar nombres ni identificadores de agente**: El nombre oficial y el ID numérico son potestad exclusiva de la confirmación emitida por `sigma-robot` y autorizada por `pablinux`.
- Al inicio de cada sesión ("carga proyecto"), leer `id_agente.md` y `agents.md` para conocer el estado y credenciales.
- Nunca commitear tokens, contraseñas ni códigos secretos (`SIGMA_AGENTE_SOLICITUD_ID`, `SIGMA_AGENTE_CODIGO`, `SIGMA_AGENTE_TOKEN`).
---
## 2. Infraestructura y MCP
- **Prohibido asumir o inventar IPs, puertos o servidores**:
- Servidor de producción asignado: `server-webapps` CT 132 (`192.168.10.160`).
- Puerto de producción interno: `2006` (puerto local de desarrollo: `8085`).
- Dominio público: `https://drop.sigmac.app` (Reverse Proxy Apache con SSL/TLS Let's Encrypt).
- Servicio systemd: `siax-app-DROP_SIGMAC_APP.service` (gestionado y supervisado por SIAX Monitor en el puerto `8080`).
- Base de datos: SQLite en modo WAL (`data/compartir.db`) sin dependencias de MySQL ni MongoDB.
- Registro central MCP: Ficha técnica registrada en MariaDB con **ID 34** (categoría `application`, tipo `web`).
- El archivo [`.agente/infraestructura.md`](infraestructura.md) es un espejo local de solo lectura del documento maestro `/home/pablinux/Projects/infraestructura.md`. Nunca modificarlo de forma independiente sin sincronizar con el maestro.
---
## 3. Reglas de Negocio y Ciclo de Vida de Archivos
- **Política de Retención Estricta**:
- **Invitados (Guest)**: Cero fricción (sin login requerido). Todo archivo, nota o código subido como invitado tiene una vida útil máxima e inmutable de **24 horas**. El worker en segundo plano (`cleaner.go`) purga periódicamente tanto el archivo físico en disco como su fila en SQLite.
- **Usuarios Registrados (WebControl / Google OAuth)**: Disponen de almacenamiento **permanente**. Sus archivos nunca expiran ni son tocados por el limpiador automático. Tienen gestión completa desde `/mis-archivos`.
- **Generación de Código QR**:
- Se genera de forma nativa en backend Go vía `github.com/skip2/go-qrcode` en endpoint `/qr/{id}` como imagen PNG. Cero dependencias pesadas de librerías JS cliente para la generación del código QR.
- **Visor Universal Embebido**:
- El visor `/v/{id}` debe renderizar vista previa directa según el MIME type (imágenes con modal zoom, reproductor HTML5 de video/audio, visualizador embebido de PDF, y código formateado con botón de copia con un clic).
---
## 4. Comandos de Contexto del Ecosistema
- **"carga proyecto"**: Leer `agents.md`, `id_agente.md` y la carpeta `.agente/` para absorber el contexto, reglas, objetivos y memoria técnica antes de ejecutar modificaciones.
- **"actualizar proyecto"**: Ejecutar tests automatizados (`go test -v ./...`), realizar commit estructurado de los cambios pendientes, actualizar `agents.md`, `README.md` y `.agente/proyecto_estructura.md`.
---
## 5. Seguridad y Dependencias
- Compilar binarios de producción sin CGO (`CGO_ENABLED=0 GOOS=linux GOARCH=amd64`), utilizando la implementación pura en Go de SQLite (`modernc.org/sqlite`).
- Mantener las rutas de almacenamiento dentro de `DATA_DIR` y utilizar nombres generados criptográficamente (slugs no predecibles) para prevenir ataques de Path Traversal.
- Toda sesión web debe utilizar cookies seguras HTTP-only protegidas por `SESSION_SECRET`.
+56
View File
@@ -0,0 +1,56 @@
# tareas.md — Control de tareas de app_compartir (drop.sigmac.app)
> Registro ágil de tareas completadas, en progreso y backlog priorizado.
---
## ✅ Tareas Completadas
- [x] **Base de Datos y Esquema:** SQLite DAL (`modernc.org/sqlite`) con tablas `shares`, `users`, `sessions` en modo WAL.
- [x] **Subida de Archivos y Texto:** Endpoints `/api/upload` (multipart hasta 500 MB) y `/api/share-text` (notas rápidas y código).
- [x] **Visor Universal Adaptativo (`/v/{id}`):** Vista previa nativa para imágenes con zoom, video HTML5, audio HTML5, lector de PDF embebido y visualizador de código con botón de copia.
- [x] **Generador de QR Nativo:** Endpoint `/qr/{id}` con salida PNG (256x256) generado en Go nativo vía `github.com/skip2/go-qrcode`.
- [x] **Worker de Purga Automática 24h:** Goroutine en segundo plano (`cleaner.go`) que elimina archivos físicos y filas de BD vencidas de usuarios Guest.
- [x] **Autenticación Dual:** Login corporativo con Telcotronics WebControl (`api.siax-system.net`) y Google OAuth2.
- [x] **Panel "Mis Archivos":** Interfaz `/mis-archivos` para usuarios autenticados con almacenamiento permanente, estadísticas y borrado manual.
- [x] **Scripts de Despliegue:** `desplegar.sh` (compilación Linux amd64, transferencia scp/rsync) e `init.sh` (ejecutor en servidor).
- [x] **Integración con SIAX Monitor:** Servicio systemd `siax-app-DROP_SIGMAC_APP.service` para supervisión en puerto 2006 / 8080.
- [x] **Soporte de Reverse Proxy:** Manejo dinámico de encabezados Apache (`X-Forwarded-Proto`, `Host`, `X-Forwarded-For`).
- [x] **Pruebas Automatizadas:** Suite de tests unitarios y de integración en `main_test.go` verificando la retención 24h vs permanencia.
- [x] **Registro en MCP de Infraestructura:** Registrado oficialmente con **ID 34** en MariaDB (`http://192.168.10.160:3007/api/services/34`).
- [x] **Espejo de Infraestructura:** Sincronizado `.agente/infraestructura.md` con `/home/pablinux/Projects/infraestructura.md`.
- [x] **Identidad del Agente:** Creación de `id_agente.md` en la raíz del repositorio.
- [x] **Centro de Comunicaciones sigma-robot:** Solicitud de registro enviada como `Agente drop.sigmac.app` (Vía B REST); credenciales guardadas en `.env` (modo 600).
---
## 🚀 En Progreso / Inmediatas
- [ ] **Autorización en sigma-robot:**
- Aguardar confirmación de Pablinux en el panel de `sigma-robot`.
- Consultar `POST /ecosistema/v1/agentes/estado` para recibir el token definitivo y guardarlo en `.env` como `SIGMA_AGENTE_TOKEN`.
- Actualizar `id_agente.md` con el ID numérico asignado por `sigma-robot`.
- [ ] **Despliegue inicial a producción:**
- Ejecutar `./desplegar.sh` hacia `server-webapps` CT 132 (`192.168.10.160`).
- Verificar respuesta pública en `https://drop.sigmac.app` y estado en SIAX Monitor (`:8080`).
- [ ] **Creación del Repositorio Git Remoto:**
- Crear repo en `git.telcotronics.net/pablinux/app_compartir.git`.
- Configurar `git remote add origin ...` y realizar primer push.
---
## 📋 Backlog Priorizado
### Fase 2: Experiencia y Utilidades
- [ ] **Descarga Multi-archivo Comprimida (.zip):**
- Empaquetar múltiples archivos en un único archivo zip descargable al vuelo.
- [ ] **Protección por PIN / Contraseña opcional:**
- Permitir a quien comparte proteger el visor con una clave de 4-6 dígitos.
- [ ] **Modo de un solo uso (Burn after reading):**
- Auto-destrucción inmediata del archivo tras la primera descarga o visualización.
### Fase 3: Integraciones del Ecosistema
- [ ] **Notificaciones a sigma-robot:**
- Enviar eventos al bot o a Pablinux cuando se descargue un archivo relevante.
- [ ] **Widget publicitario app_marketing:**
- Integrar widget ligero de `ads.sigmac.app` opcional en la pantalla de descarga de invitados.