Skip to content

pipeline: plugin SDMX costruisce chiave incompleta (7 dim attese, 5 fornite) + fallback in 302 loop #444

Description

@Gabrymi93

Problema

Il run locale di istat-occupazione-provinciale (source SDMX) fallisce con Exceeded 30 redirects su entrambi gli endpoint ISTAT.

Evidenza (2026-08-01)

  1. Il MCP istat-sdmx scarica il dataflow 150_915 con gli stessi filtri (FREQ=A, DATA_TYPE=EMP_R, CITIZENSHIP=TOTAL, EDU_LEV_HIGHEST=99) senza errori → l'endpoint è sano.
  2. La struttura del datastructure DCCV_TAXOCCU1 ha 7 dimensioni: FREQ, REF_AREA, DATA_TYPE, SEX, AGE, EDU_LEV_HIGHEST, CITIZENSHIP.
  3. curl sull'endpoint usato dal plugin (esploradati.istat.it): risponde 422 "Not enough key values in query, expecting 7 got 5" → il plugin costruisce una chiave con troppi pochi segmenti (mancano SEX e AGE, non filtrati).
  4. Il fallback su sdmx.istat.it risponde 302 in loop → il client esaurisce i redirect.

Causa presunta

toolkit/plugins/sdmx.py::_build_key non inserisce wildcard (all) per le dimensioni non presenti nei filtri del dataset.yml. Il server ISTAT richiede la chiave completa a 7 dimensioni. Il fallback su sdmx.istat.it (302 loop) maschera il vero errore 422.

Fix atteso

  • _build_key: usare all (o il codice wildcard corretto) per le dimensioni non filtrate, oppure interrogare i constraint per completare la chiave.
  • Valutare se il fallback verso sdmx.istat.it debba gestire i 302 (non seguire in loop).

Impatto

Blocca il run locale (e la produzione mart) di istat-occupazione-provinciale. Altri candidate SDMX ISTAT potrebbero essere affetti (stesso dataflow o dataflow con dimensioni non filtrate).

Riferimenti

  • Candidate: candidates/istat-occupazione-provinciale/
  • Plugin: toolkit/plugins/sdmx.py
  • Verifica MCP: istat-sdmx_get_data(id_dataflow="150_915") funziona

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions