3.6 KiB
3.6 KiB
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.mden 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-roboty autorizada porpablinux. - Al inicio de cada sesión ("carga proyecto"), leer
id_agente.mdyagents.mdpara 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-webappsCT 132 (192.168.10.160). - Puerto de producción interno:
2008(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 puerto8080). - 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, tipoweb).
- Servidor de producción asignado:
- El archivo
.agente/infraestructura.mdes 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.
- 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 (
- Generación de Código QR:
- Se genera de forma nativa en backend Go vía
github.com/skip2/go-qrcodeen endpoint/qr/{id}como imagen PNG. Cero dependencias pesadas de librerías JS cliente para la generación del código QR.
- Se genera de forma nativa en backend Go vía
- 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).
- El visor
4. Comandos de Contexto del Ecosistema
- "carga proyecto": Leer
agents.md,id_agente.mdy 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, actualizaragents.md,README.mdy.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_DIRy 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.