Skip to content

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=False
  • PRAGMA journal_mode=WAL
  • timeout configurado para locks temporales

Tablas

alerts

Eventos de seguridad persistidos.

Columnas:

  • id INTEGER PK
  • url TEXT
  • host TEXT
  • secrets TEXT (JSON)
  • timestamp TEXT
  • seen INTEGER default 0
  • alert_type TEXT default secret

whitelist

Dominios/URLs permitidos por usuario.

Columnas:

  • id INTEGER PK
  • type TEXT
  • value TEXT UNIQUE
  • added_at TEXT

history

Historial de URLs monitoreadas.

Columnas:

  • id INTEGER PK
  • url TEXT
  • host TEXT
  • timestamp TEXT
  • status INTEGER
  • content_type TEXT
  • blocked BOOLEAN default 0
  • block_reason TEXT

phishtank_urls

Persistencia incremental de feeds phishing.

Columnas:

  • id INTEGER PK
  • url TEXT UNIQUE
  • domain TEXT
  • first_seen TEXT
  • last_updated TEXT
  • active BOOLEAN default 1
  • source TEXT default unknown

Índices:

  • idx_phishtank_domain
  • idx_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.