2.6 KiB
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}/
Generalescontiene documentos que no pertenecen a un cliente específico.Clientescontiene una carpeta porCveCliente.- Antes de guardar un archivo, el servicio debe asegurar la existencia de
Documentos,Documentos/Generales,Documentos/Clientesy de la carpeta específica del cliente cuando aplique. - No asumir que las carpetas ya existen. Usar una operación idempotente como
Directory.CreateDirectorypara 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
Empresase considera desarrollador y sólo puede acceder a documentos de clientes activos que tenga asignados enSis_UsuariosClientes. - Los demás roles activos, incluidos
AdministradorySuperUsuario, 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
Documentosno 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 GIScarga 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.