Releases
5.0.0
Compare
Sorry, something went wrong.
No results found
Cambios Realizados
1. Gestión de Errores Personalizada
Añadida la clase DatabaseError para manejar errores específicos, con códigos y mensajes claros.
Los errores lanzados ahora incluyen información sobre el tipo de error, como:
VALIDATION_ERROR
UPDATE_ERROR
DELETE_ERROR
Entre otros.
Esto facilita la depuración y el manejo de errores en el sistema.
2. Validación de Entrada
Implementada la función validateJson para garantizar que solo se acepten datos en formato JSON (objetos).
Ahora las operaciones como dbInsert y dbUpdate validan la estructura del dato antes de realizar cualquier acción.
Se lanza un error si el dato no cumple con el formato esperado.
3. Soporte para Transacciones
Añadida la función transaction que permite agrupar múltiples operaciones en un solo bloque transaccional.
En caso de error durante la ejecución:
Se pueden implementar reversiones (rollback ) para garantizar la consistencia de los datos.
Esto mejora la robustez del sistema en operaciones complejas.
4. Logs para Auditoría
Implementado un sistema de registro de auditoría que documenta todas las operaciones en el archivo audit.log.
Cada operación (inserción, actualización, eliminación, lectura) ahora genera una entrada en el log con los siguientes detalles:
Tipo de operación (e.g., INSERT, DELETE, UPDATE, GET_DATA).
Colección afectada.
Identificador único de la operación.
Fecha y hora del evento.
5. Refactorización de Funciones Existentes
Las funciones ahora utilizan:
incrementIndex para un manejo más seguro y eficiente de los índices.
validateIndex para sincronizar el índice con los datos existentes en la colección.
Se mejoró la legibilidad y modularidad del código para facilitar su mantenimiento.
6. Manejo Seguro del Sistema de Archivos
Uso del paquete proper-lockfile para evitar condiciones de carrera al manipular archivos críticos como .indx.
Se garantiza que las operaciones sobre índices sean atómicas, eliminando el riesgo de corrupción de datos en sistemas concurrentes.
7. Modularización y Reutilización
Separación de lógica en funciones específicas como:
incrementIndex para manejar índices.
logOperation para gestionar los registros de auditoría.
validateJson para asegurar que las entradas sean válidas.
Impacto en el Sistema
Robustez: Las validaciones y el manejo de errores reducen el riesgo de inconsistencias o corrupción de datos.
Auditoría: Los logs permiten rastrear y auditar todas las operaciones realizadas en el sistema.
Concurrencia: La manipulación segura de índices asegura que el sistema pueda escalar a múltiples usuarios concurrentes.
Escalabilidad: La implementación de transacciones abre las puertas a operaciones más complejas con mayor control.
Notas para el Usuario
Si ya tienes colecciones existentes, ejecuta validateIndex para sincronizar los índices con los datos actuales.
Los logs de auditoría se almacenan en ./data/audit.log. Revisa regularmente este archivo si necesitas analizar operaciones.
You can’t perform that action at this time.