Issuer Web Enrichment Worker
Stato: implementato nella workflow file-text-only@1.7.0. Coda: document.issuer.web-enrich.
È il fallback esterno per issuer non risolti o ambigui. Rimane separato dal resolver locale perché ha latenza, costi, rate limit, policy di privacy e modalità di errore differenti.
Implementazione proposta
- Ricevere candidati minimali: nome, identificativi, dominio, paese e pochi termini contestuali.
- Consultare prima
document_enrichment_cache. - Usare un provider di ricerca dietro un adapter sostituibile.
- Valutare i risultati e distinguere sito ufficiale, directory, social e fonti secondarie.
- Verificare dominio e coerenza tra nome, identificativi e attività dichiarata.
- Salvare fonti, timestamp, score, motivi di accettazione/scarto e TTL.
- Aggiornare il catalogo issuer e produrre un'osservazione versionata per il documento.
Non deve inviare a Internet PDF, testo integrale, dati personali o URL arbitrari estratti dal documento. Il fetch delle pagine deve essere protetto contro SSRF, redirect verso reti private, contenuti eccessivi e tipi MIME inattesi.
Dati già disponibili
document_enrichment_cachedocument_enrichment_eventsdocument_issuer_web_sources- campi sito, dominio, attività e fonti di
document_issuers
Il worker restituisce issuer, sito ufficiale, categoria di attività, possibili tipi documentali e confidence con provenance. Se nessuna fonte è sufficientemente affidabile, deve concludere con NOT_FOUND o REVIEW_REQUIRED, senza inventare un issuer.
Gli esiti effettivi sono ENRICHED, REVIEW_REQUIRED, NOT_FOUND e INSUFFICIENT_EVIDENCE. ENRICHED crea o aggiorna l'issuer e rimanda il documento al nodo resolve-enriched-issuer, che conferma deterministicamente l'associazione. Le ricerche sono memorizzate in document_enrichment_cache con TTL configurabile; run e candidati restano auditabili nelle tabelle document_issuer_enrichment_runs e document_issuer_enrichment_candidates.
Il provider iniziale usa OpenAI Responses con web search dietro l'adapter ISSUER_WEB_SEARCH_PROVIDER. Riceve soltanto nomi candidati, domini, identificativi business e country hint: non riceve PDF, testo integrale o informazioni personali del documento.
Routing
L'arco verso questo worker è condizionale e configurato nel workflow. Verticali che vietano ricerche esterne possono saltarlo; errori temporanei possono essere ritentati senza ripetere estrazione e indicizzazione già completate.