For the complete documentation index, see llms.txt. This page is also available as Markdown.

Gestione da Tenant Manager

Il Tenant Manager è la fonte di verità della configurazione dei tenant del crawler.

Definisce quali siti devono essere scansionati, il tipo di sito e l'eventuale sitemap personalizzata.

Il crawler non riceve aggiornamenti dal Tenant Manager in push.

Usa invece un approccio pull-based. È il crawler che legge periodicamente la configurazione dal Tenant Manager. Questo evita dipendenze runtime bidirezionali.

La sincronizzazione avviene manualmente o iin automatico prima di ogni crawl di tenant. Vale sia per i crawl manuali sia per quelli schedulati. In questo modo la configurazione usata dal crawler è sempre aggiornata.

Il crawler legge dal Tenant Manager solo i tenant del proprio ambito. I dati vengono filtrati con app='9qkaebmp6i7kvf7' e environment='prod'.

Cosa viene sincronizzato

Per ogni tenant, il crawler legge dal Tenant Manager i campi seguenti.

Identificativi del tenant

  • app_id — viene usato come slug univoco del tenant nel crawler.

  • name — è il nome mostrato nelle dashboard operative.

  • uuid — è l'identificativo stabile cross-sistema. Serve anche per rilevare i tenant rimossi.

Configurazione dei siti

Il campo config.sites[] contiene la lista dei siti da crawlare.

Per ogni sito vengono letti questi valori:

  • url — URL radice del sito.

  • site_type — tipo di sito, ad esempio comune, asl, museo o custom.

  • sitemap_url_override — se presente, disattiva la discovery automatica della sitemap.

L'URL del sito viene normalizzato prima del salvataggio:

  • tutto in lowercase;

  • senza trailing slash;

  • senza query string.

Frequenza di scansione

  • config.default_scan_schedule — definisce la frequenza di crawl. Il valore predefinito è daily.

Il Tenant Manager può gestire più applicazioni e più ambienti.

Il crawler legge solo i record che appartengono alla propria applicazione e al proprio ambiente. Il filtro applicato è app='9qkaebmp6i7kvf7' e environment='prod'.

Come avviene la sincronizzazione

La sincronizzazione avviene all'inizio del flow di crawl del tenant.

Dettaglio delle scritture

Per ogni tenant trovato:

  • se il tenant è nuovo viene creato;

  • se esiste già viene aggiornato;

Se un sito non è più presente nella configurazione del tenant:

  • il collegamento viene rimosso al tenant;

  • il sito non viene cancellato dalla lista di siti generale;

  • se non ha più tenant attivi collegati, viene disabilitato con enabled=false.

Se il Tenant Manager non è raggiungibile, il sync restituisce errore ma il crawl prosegue. Il crawler usa la configurazione già presente nel database

Tenant manuali

I tenant creati manualmente dalla dashboard hanno source='manual'.

Questi tenant non vengono mai aggiornati né rimossi dal sync del Tenant Manager.

Lo stesso vale per le associazioni manuali tra tenant e siti.

Disabilitazione e storico dati

Quando un sito viene rimosso dal Tenant Manager:

  • l'associazione col tenant viene rimossa;

  • il sito può essere disabilitato;

  • le pagine già crawlate non vengono cancellate dal database.

Questo approccio conserva lo storico operativo e riduce i rischi in caso di errori temporanei.

Cosa non viene sincronizzato

Il Tenant Manager non sovrascrive tutta la configurazione del crawler.

Restano fuori dal sync questi elementi.

Parametri operativi del crawler

Non vengono letti né sovrascritti dal Tenant Manager:

  • max_pages;

  • adaptive_crawl_delay;

  • override manuali di robots.txt;

  • blocchi pagina;

  • altre impostazioni operative salvate nel database del crawler.

Stato runtime

Non vengono sincronizzati i dati operativi prodotti dal crawler:

  • crawl_status;

  • conteggi pagine;

  • metriche;

  • risultati e stato delle scansioni.

Questi dati appartengono al runtime del crawler, non alla configurazione del tenant.

Come lanciare una sincronizzazione manuale

La sincronizzazione può essere avviata in tre modi.

1. Dalla dashboard monitor

Usa il pulsante Sync TM nella barra superiore.

2. Tramite flow di crawl

Lancia il flow di crawl per un tenant..

Il sync parte automaticamente come primo step, prima del crawl del tenant.

Questa è la modalità normale per i crawl manuali per singolo ente.

Cron schedulato

Il cron giornaliero scheduled_dispatch itera su tutti i tenant abilitati presenti nel database.

Per ogni tenant lancia il flow flow_crawl_tenant.

La sincronizzazione col Tenant Manager avviene quindi ogni giorno, prima del crawl di ogni tenant.

Se il Tenant Manager non è raggiungibile nel momento del cron, il crawl continua con i dati già presenti nel database.

Variabili di configurazione

Variabile Windmill
Descrizione
Default

f/crawler/tm_base_url

URL base API del Tenant Manager

https://manager-qa.opencityitalia.it/v1/api

Comportamento in caso di errori

Il sync è progettato per essere robusto e conservativo.

Se il Tenant Manager non è raggiungibile, il crawler registra un warning e procede con i dati già in database. Nessun dato viene cancellato o modificato.

Se un tenant è configurato in modo parziale, ad esempio senza siti, il tenant viene comunque creato o aggiornato. I siti precedenti vengono rimossi dalla pivot.

Se si verifica un errore su un singolo tenant, il sync degli altri tenant continua. L'errore viene tracciato nei log e incluso nel risultato finale.

Tutte le scritture su database avvengono in una singola transazione. Se la transazione fallisce, nessuna modifica viene salvata.

Ultimo aggiornamento

È stato utile?