Datos, permisos y formularios seguros
Lo que una adaptación visual debe conservar del acceso y del contrato.
Queries y mutations
Las pantallas consumen hooks de src/features/pimia/hooks. La capa de API
adapta los recursos; el transporte termina en los handlers y en el SDK del
servidor. Sigue este recorrido al añadir un campo nuevo: no basta con añadir
un input si el conversor del borrador no lo guarda.
En usePimiaResources.ts las claves compartidas comienzan por
["pimia", "data", tenantId, ...]. Las mutations existentes llaman a los
helpers de invalidación. Antes de cambiar la estrategia de caché revisa también
el cambio de empresa y de sesión: no deduzcas aislamiento completo solo por
la presencia del tenant en una clave.
Providers desactiva el refetch al volver a enfocar la ventana y delega los
reintentos en shouldRetryPimiaQuery. staleTime expresa frescura, no polling.
Contexto de acceso
El resultado puede depender de tenant, empresa, identidad o grant, recurso, filtros y permisos. No reutilices datos entre esos contextos sin invalidación o separación adecuada. Ocultar una acción es una decisión de interfaz; la autorización efectiva la conserva el servidor.
Un fork de integrador no hereda las capacidades de primera parte. Revisa
src/server/scopes.ts y docs/SUPERFICIE-DE-PARTNER.md antes de prometer que
usuarios, roles o configuración fiscal serán editables por cualquier client.
Importes, moneda y fechas
Usa los helpers de features/pimia/lib y ui/pimiaDates.ts asociados al recurso.
No conviertas todos los importes con una división fija por 100 ni supongas EUR:
la representación y la escala se deben conservar según el contrato y la moneda.
Una fecha civil y un instante no deben recibir la misma conversión de zona.
Qué significa un campo vacío
Antes de cambiar un formulario, distingue omitir la propiedad, enviar null
y enviar una cadena vacía. En clientes omitir una dirección conserva su valor
y null la borra; otros recursos pueden tener un contrato distinto.
Validación
Los helpers *Draft.ts y los adaptadores de edición son el lugar donde buscar
reglas y conversiones. La ficha automática de una pantalla muestra restricciones
JSX explícitas, pero no sustituye estas reglas ni la validación de la API.