Files
Plataforma-de-desarrolladores/AGENTS_DOCUMENT_STORAGE.md
Jorge Luis caudillo esparza 4e80ecca77 --gis
2026-08-18 11:45:00 -07:00

2.6 KiB

Reglas obligatorias para almacenamiento de documentos

Estas reglas complementan AGENTS.md y aplican a todo archivo persistido por la aplicación.

Estructura física

La raíz de documentos de la aplicación es:

Documentos/
  Generales/
  Clientes/
    {CveCliente}/
  • Generales contiene documentos que no pertenecen a un cliente específico.
  • Clientes contiene una carpeta por CveCliente.
  • Antes de guardar un archivo, el servicio debe asegurar la existencia de Documentos, Documentos/Generales, Documentos/Clientes y de la carpeta específica del cliente cuando aplique.
  • No asumir que las carpetas ya existen. Usar una operación idempotente como Directory.CreateDirectory para crearlas cuando falten.
  • La misma regla aplica a futuras subcarpetas de documentos.

Acceso y seguridad

  • Las páginas WebForms y handlers no deben construir rutas físicas ni abrir archivos de cliente por su cuenta.
  • Todo guardado y obtención de archivos debe pasar por un servicio dedicado de documentos. Un handler de descarga sólo puede transmitir el archivo previamente autorizado y resuelto por ese servicio.
  • Antes de construir o abrir una ruta física, el servicio debe resolver en servidor el cliente propietario a partir de la entidad de negocio y validar el acceso del usuario.
  • No confiar para autorización en CveCliente, rutas físicas, rutas relativas ni nombres de archivo recibidos desde el navegador.
  • El rol Empresa se considera desarrollador y sólo puede acceder a documentos de clientes activos que tenga asignados en Sis_UsuariosClientes.
  • Los demás roles activos, incluidos Administrador y SuperUsuario, tienen acceso global a documentos, salvo que una regla funcional más restrictiva se defina explícitamente para un módulo.
  • Las rutas físicas bajo Documentos no deben exponerse como URLs públicas. Las descargas deben pasar por un endpoint autenticado que vuelva a validar el acceso mediante el servicio.

GIS de etapas de fraccionamiento

  • El botón Agregar GIS carga un archivo físico con extensión .gis; no solicita nombre ni URL de visualización al usuario.
  • El archivo se guarda en Documentos/Clientes/{CveCliente}/.
  • El nombre se genera exclusivamente en servidor con el formato:
gis-{CveFraccionamiento}-{CveFraccionamientoEtapa}.gis
  • El usuario no puede elegir ni modificar el nombre final del archivo.
  • Al reemplazar el GIS de una etapa se conserva el mismo nombre físico y se sobrescribe el archivo correspondiente.
  • La obtención del GIS debe usar el servicio de documentos y nunca una URL directa al folder Documentos.