## VIGILE 2026-06-10 — TLS DB + provenance (leggere a inizio sessione) **Suite-wide (AgileHub/VIGILE)**: migrazione TLS-in-transito dei DB **per-utente** (`ALTER USER ... REQUIRE SSL`, MAI global `require_secure_transport`). **Finding PHP**: PDO/mysqlnd **NON cifra senza CA file** → servono `PDO::MYSQL_ATTR_SSL_CA => ''` + `PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false` (il CA = `/var/lib/mysql/ca.pem` del proprio MySQL, distribuito al container). Node invece basta `ssl:{rejectUnauthorized:false}`. Doc autoritativo: `agile-services/docs/ANALISI_TLS_DB_STRUTTURALE_E_CENSIMENTO_2026_06_10.md`. **QUESTO PRODOTTO — stato/azione**: ✅ **DONE (2026-06-16)**. Pre-equip PHP-CA fatto (PDO `MYSQL_ATTR_SSL_CA=application/config/db-ca.pem` + `VERIFY_SERVER_CERT=false`; app connessa in **TLS 1.3** `cipher=TLS_AES_256_GCM_SHA384`). Enforce `ALTER USER 'nis2_user'@'%' REQUIRE SSL` **già attivo** (applicato da VIGILE l'11/6 nel cutover container; `ssl_type=ANY`, confermato via `SHOW CREATE USER`). ⚠️ Gotcha: in **MySQL 8.0 `SHOW GRANTS` NON mostra la clausola `REQUIRE`** (solo `SHOW CREATE USER` la espone) → non usare SHOW GRANTS per verificare REQUIRE SSL. Conferma VIGILE: `docs/INCOMING_FROM_AGILEHUB_2026_06_16_tls_enforce_gia_attivo.md`. **Inoltre (tutti i prodotti)**: ogni segnalazione/feedback deve portare la **release del prodotto** (`source_product_version`, standard version-provenance). ## 🔴 PRIORITÀ — ogni segnalazione deve catturare versione+superficie (std `feedback-version-provenance` v1.0) **Regola (hub_standards id=30):** ogni segnalazione/feedback DEVE portare e salvare **`surface`** (`web-v1`|`web-v2`|`android`|`ios`) + **`product_version`** (la **release REALE del prodotto**, NON la versione del widget) + **`build`**. Motivo: gap reale (ALLTAX #80, Romeo ha dovuto scrivere "2.9.2" a mano). **È additivo e non rompe nulla** (chi non lo manda funziona come prima), ma va adottato presto così ogni ticket dice subito "che release avevi". **Lato AgileHub è GIÀ pronto:** il widget servito legge `data-app-version`/`data-app-build`/`data-surface`; il gateway external/v1 e ticket-ms salvano `source_product_version`/`source_surface`/`source_widget_*`. **Da fare lato prodotto:** 1. **Widget tag**: aggiungere `data-app-version=""` + `data-surface="web-v1|web-v2"` (+ `data-app-build`). Es: `