Files
graph_explorer/issues/0018-headless-browser-transforms.md
T
egutierrez 9042110ea2 docs(issues): plan enrichers asincronos + recoleccion web (0026-0030)
Cinco issues que componen el plan:
- 0026: sistema de jobs (infra, contrato wire)
- 0027: tipo Webpage + cache de documentos
- 0028: enricher fetch_webpage (MVP end-to-end)
- 0028b: enrichers extract_domain / extract_links / extract_text_entities
- 0029: variantes CDP (Chrome headless, screenshot)
- 0030: macro "Deep enrich" + expand_domain

Tambien anade los issues previos 0012-0025 que estaban untracked.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:24:13 +02:00

1.9 KiB

id, title, status, priority, created, depends_on
id title status priority created depends_on
0018 Transforms automatizadas tipo Maltego con browser headless pending low 2026-05-01
0012

Objetivo

Dada una entidad seleccionada, ejecutar un script (Playwright/Puppeteer) que enriquece el grafo con datos derivados — equivalente a las "transforms" de Maltego. Es la pieza que diferencia frente a alternativas mas estaticas.

Ejemplos para banking/OSINT espanol

  • Persona/empresa -> consulta BORME, registro mercantil, axesor.
  • Dominio -> whois, DNS records, certificados (crt.sh).
  • Email -> haveibeenpwned, hunter.io.
  • Telefono -> truecaller-like.
  • Empresa -> LinkedIn search publico, opencorporates.

Alcance

  • Cada transform es un pipeline del registry con tag transform y un contrato fijo: input = {id, type, metadata}, output = {entities, relations}.
  • Registro de transforms aplicables por entity_type.
  • UI: context menu sobre nodo -> "Run transform..." -> lista filtrada por type aplicable -> ejecuta async -> notifica al terminar -> preview antes de commit.
  • Sandbox: cada transform en proceso aparte, timeout configurable.

Riesgos y mitigaciones

  • Los scrapers se rompen cuando los sitios cambian -> mantener una suite de "transform health checks" automaticos (cron ligero) que avisa de fallos antes de que el usuario los descubra en vivo.
  • Cumplimiento legal y robots.txt -> documentar en cada transform su fuente, politica y ToS.
  • Rate limiting -> cooldown por host configurable.

Definicion de hecho

  • Selecciono un dominio en el grafo, lanzo "whois", aparecen registrant, registrar y nameservers como nodos vinculados con relaciones tipadas.
  • Un transform que falla loguea el error y no afecta a otros que esten corriendo en paralelo.
  • La lista de transforms aplicables a una entidad se computa segun su type (no se ofrecen los inaplicables).
  • Health check cron escribe a proposals cuando un transform empieza a fallar repetidamente.