Referencia: Esquema de Base de Datos¶
SafeMode usa SQLite con modo WAL para mejorar concurrencia.
Implementación: src/url_monitor/core/database.py
Comportamiento de Conexión¶
check_same_thread=FalsePRAGMA journal_mode=WAL- timeout configurado para locks temporales
Tablas¶
alerts¶
Eventos de seguridad persistidos.
Columnas:
idINTEGER PKurlTEXThostTEXTsecretsTEXT (JSON)timestampTEXTseenINTEGER default0alert_typeTEXT defaultsecret
whitelist¶
Dominios/URLs permitidos por usuario.
Columnas:
idINTEGER PKtypeTEXTvalueTEXT UNIQUEadded_atTEXT
history¶
Historial de URLs monitoreadas.
Columnas:
idINTEGER PKurlTEXThostTEXTtimestampTEXTstatusINTEGERcontent_typeTEXTblockedBOOLEAN default0block_reasonTEXT
phishtank_urls¶
Persistencia incremental de feeds phishing.
Columnas:
idINTEGER PKurlTEXT UNIQUEdomainTEXTfirst_seenTEXTlast_updatedTEXTactiveBOOLEAN default1sourceTEXT defaultunknown
Índices:
idx_phishtank_domainidx_phishtank_active
Migraciones¶
La migración actual agrega columna source si falta en bases existentes.
Ciclo de Datos¶
- Alertas pueden marcarse como vistas.
- Historial puede limpiarse por retención.
- URLs phishing se refrescan incrementalmente y entradas viejas pasan a inactivas.