- Shipped
- 4 de agosto de 2026 a las 4:07 UTC
- Author
- Kamo
- Commit
- 420fe09
El rastro ha sido escrito por un tiempo y nada podía leerlo, que dejó dos obligaciones insatisfase: una contabilidad de las revelaciones del historial de una persona (64.528) y examen periódico de las actividades del sistema de información (a.164.308 (a) (1) (ii)(D) ((D)). Ambas son consultas. Esto añade la superficie de consulta. La autorización es la característica, no la cuadrícula. La organización está arrebatada de la sesión y de ninguna otra parte no hay deliberadamente parámetro de orgId en ninguno manejador, y PhiAuditQueryService es un solo punto de estrecha que añade el inquilino predicar antes incluso de consultar el filtro. Cuatro métodos de consulta de hermanos han sido cuatro oportunidades de olvidarlo. El alcance es una cláusula de la Tierra en lugar de una post-filtro, porque filtrar una página devuelta dejaría totalElementos Contando filas que el llamante puede no ver. El lado de la lectura obtiene su propia interfaz de repositorio. El compartido PhiAccessLogRepository Los buscadores son deliberadamente cruzados y son correctos para una herramienta de plataforma, una revelación si se entrega a una pantalla del cliente para que la pantalla tenga una interfaz cuya única entrada punto toma una especificación. Vive bajo com.kamo.SecurityService, que el la entrada existente de los "EnableJpaRepositores" ya cubre, por lo que no se necesita un cambio de escaneo y ninguno puede ser olvidado. Los derechos son VIEW-ACCESS-LOGS (29) y EXPORT-ACCESS-LOGS (32) - el par que ya puertas el registro de autenticación, por lo que cualquiera que administre la seguridad hoy puede usar esto en el primer día. Un nuevo identificador derecho habría enviado la pantalla muerta: necesita una carrera de KamoInitializer y una subvención antes de que cualquier miembro tenga uno. La lectura del sendero está registrada, como INFORME/Buscar para una lectura y INFORME/EXPORT para una copia, incluyendo intentos rechazados. Los criterios de búsqueda son un filtro lleva ids de miembro y registro de ids, y un rastro que almacena lo que se buscó acumula los identificadores que existe para proteger. Todo está limitado: sujetadores de tamaño de página a 200, una exportación limita a 10.000 filas. Un rastro de seis años es millones de filas y la capa de captura escribe una fila por fila de cuadrícula por carga, por lo que un tamaño no sujetado es una OOM accesible en lugar de una teórico uno. Timestamps se dejan como instantes explícitos de UTC. La columna es de pared sin zona, y esta evidencia es leída meses después por alguien que no estaba allí.