Skip to content

Il proxy delle tile scartava la query string: la mappa mostrava il pericolo sbagliato - #138

Merged
gzileni merged 1 commit into
mainfrom
fix-proxy-perde-parametri
Sep 28, 2026
Merged

gzileni merged 1 commit into
mainfrom
fix-proxy-perde-parametri

Conversation

@gzileni

@gzileni gzileni commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Trovato verificando la #137 in produzione, ed è più grave di quello che la #137 ha risolto.

Le tre tile tornavano byte per byte identiche — 123.503 ciascuna — mentre chiamando pg_tileserv direttamente l'alluvione ne fa 99.570. Il proxy costruiva l'URL con il solo percorso, quindi p_hazard non arrivava mai e risk_at() rispondeva sempre col pericolo di default: il selettore mostrava le celle delle frane etichettate «Alluvione».

Una mappa vuota si vede. Una mappa con i dati sbagliati no — ed è rimasta invisibile finché quelle tile andavano in timeout.

I due parametri sono dichiarati uno per uno anziché inoltrati in blocco: p_hazard tipizzato sull'enum, e solo quelli presenti finiscono nell'URL perché multi_hazard_at non ne accetta. Un proxy che ripete qualunque cosa gli arrivi moltiplica anche le chiavi di cache a piacere di chi chiama.

Gate: ruff, mypy --strict (315 file), 6 test di integrazione su viste e proxy — due nuovi: il parametro arriva a valle, e senza parametri l'URL resta nudo.

🤖 Generated with Claude Code

… pericolo sbagliato

Appena le tile degli altri pericoli hanno smesso di andare in timeout è
venuto fuori un guasto peggiore di quello appena risolto: le tre tile
tornavano **byte per byte identiche**, 123.503 ciascuna, mentre chiamando
pg_tileserv direttamente l'alluvione ne fa 99.570.

Il proxy costruiva l'URL con il solo percorso. `p_hazard` non arrivava mai,
`risk_at()` rispondeva sempre col pericolo di default, e il selettore
mostrava **le celle delle frane etichettate «Alluvione»**. Una mappa vuota
si vede; una mappa con i dati sbagliati no — ed è rimasta invisibile finché
quelle tile scadevano.

I due parametri sono dichiarati uno per uno e non inoltrati in blocco:
`p_hazard` è tipizzato sull'enum dei pericoli, e un proxy che ripete
qualunque cosa gli arrivi moltiplica le chiavi di cache a piacere di chi
chiama. Solo quelli presenti finiscono nell'URL, perché `multi_hazard_at`
non ne accetta e uno di troppo sarebbe un 400 su ogni tile del quadro unico.

Due test: il parametro arriva a valle, e senza parametri l'URL resta nudo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gzileni
gzileni merged commit a7dab8b into main Sep 28, 2026
6 checks passed
@gzileni
gzileni deleted the fix-proxy-perde-parametri branch September 28, 2026 14:20
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