Skip to content

Valida i nomi delle tabelle mart e l'uso di clean_input#77

Merged
Gabrymi93 merged 1 commit intomainfrom
fix/mart-name-and-clean-input-guard
Apr 2, 2026
Merged

Valida i nomi delle tabelle mart e l'uso di clean_input#77
Gabrymi93 merged 1 commit intomainfrom
fix/mart-name-and-clean-input-guard

Conversation

@Gabrymi93
Copy link
Copy Markdown
Member

@Gabrymi93 Gabrymi93 commented Apr 2, 2026

Sintesi

  • valida mart.tables[].name come identificatore SQL sicuro
  • fallisce prima se un SQL MART usa clean_input ma clean.sql non e' configurato

Perche'

Sono due fix piccoli di DX che evitano errori DuckDB opachi durante il run del mart.

Note

  • nessun lavoro su support: in questa PR
  • la feature support: resta un follow-up separato

@Gabrymi93 Gabrymi93 changed the title Guard mart table names and clean_input usage Valida i nomi delle tabelle mart e l'uso di clean_input Apr 2, 2026
@Gabrymi93
Copy link
Copy Markdown
Member Author

Ho completato la review del PR Valida i nomi delle tabelle mart e l'uso di clean_input. Questo intervento migliora significativamente la Developer Experience (DX) del toolkit, intercettando errori comuni di configurazione prima che arrivino allo strato di esecuzione di DuckDB.

Findings

Nessuno. L'implementazione è robusta e segue le best practice di validazione anticipata (fail-fast) già adottate nel progetto.

Analisi situata (Lenses v1.2)

Repo Lens: toolkit (Engine/Core)

  • Robustezza della Configurazione: L'aggiunta del field_validator in MartTableConfig è eccellente. Validare che i nomi delle tabelle MART siano identificatori SQL sicuri (regex ^[A-Za-z_][A-Za-z0-9_]*$) evita che caratteri speciali o nomi non validi causino errori opachi durante la creazione delle viste in DuckDB.
  • Fail-Fast: La guardia introdotta in run_mart per l'uso di clean_input è utilissima. Se un file SQL MART tenta di referenziare lo strato CLEAN, ma quest'ultimo non è configurato nel dataset.yml, il toolkit ora fallisce con un messaggio d'errore esplicito invece di restituire un generico "table or file not found".

Phase Lens: pilot (Hardening)

  • Supporto ai Progetti Pilota: Man mano che i dataset nel dataset-incubator diventano più complessi (es. OpenBDAP), la probabilità di errori di referenziazione tra i layer (RAW -> CLEAN -> MART) aumenta. Questo fix riduce il tempo di debug per chi sta scrivendo nuove trasformazioni SQL.

Verdict

Tip

Verdict: merge

Questo PR aggiunge un layer di "sapienza" al toolkit: il motore ora capisce la relazione semantica tra i file SQL e la configurazione YAML, fornendo feedback immediati e azionabili all'utente.


Review effettuata seguendo la skill canonica review-pr (lab-ops v1.2).

@Gabrymi93 Gabrymi93 merged commit d230248 into main Apr 2, 2026
5 checks passed
@Gabrymi93 Gabrymi93 deleted the fix/mart-name-and-clean-input-guard branch April 2, 2026 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant