fix(enrichers): split_sentences y extract_iocs_text leen entities.notes
El campo `notes` es lo que el usuario escribe en el panel Note del
Inspector (doble click sobre el nodo) — sitio canonico para texto
largo. Antes los enrichers leian metadata.text/description/query como
prioridad, dejando notes ignorado y forzando al usuario a inyectar
texto via la UI metadata-extra (poco descubrible).
Cambios:
- Ambos run.py abren la BD y leen `entities.notes` por SQL antes de
fallback a node_name. metadata.text/description/query ya no se
consultan (KISS — solo notes y name).
- conftest.make_node admite kwarg `notes` para inyectar contenido
en la columna notes desde tests.
- Tests actualizados: SAMPLE_TEXT y los IoC dumps van por `notes=`
en lugar de `metadata={"text": ...}`.
- Renombrado el test que verificaba prioridad: ahora se llama
`*_uses_notes_priority` y verifica notes > name.
Tests verdes WSL (44) y Windows (33 + 11 skipped).
This commit is contained in:
+11
-4
@@ -191,15 +191,22 @@ def registry_root():
|
||||
|
||||
|
||||
def make_node(ops_db: Path, *, node_id: str, name: str, type_ref: str,
|
||||
metadata: dict | None = None, source: str = "test") -> None:
|
||||
"""Inserta un nodo de tipo arbitrario en operations.db."""
|
||||
metadata: dict | None = None, source: str = "test",
|
||||
notes: str = "") -> None:
|
||||
"""Inserta un nodo de tipo arbitrario en operations.db.
|
||||
|
||||
`notes` se mapea a la columna `entities.notes` — es lo que el
|
||||
panel Note del Inspector edita en la app real, y los enrichers
|
||||
`split_sentences` / `extract_iocs_text` lo leen como fuente de
|
||||
texto canonica.
|
||||
"""
|
||||
conn = sqlite3.connect(ops_db)
|
||||
conn.execute(
|
||||
"INSERT INTO entities (id, name, type_ref, source, metadata, "
|
||||
" created_at, updated_at) VALUES (?, ?, ?, ?, ?, "
|
||||
" notes, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, "
|
||||
" '2026-01-01T00:00:00Z', '2026-01-01T00:00:00Z')",
|
||||
(node_id, name, type_ref, source,
|
||||
json.dumps(metadata or {}, ensure_ascii=False)),
|
||||
json.dumps(metadata or {}, ensure_ascii=False), notes),
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user