Inhaltsverzeichnis
Runbook: Gestire DSN
Durata: ~10 minuti
Ruolo: Operatore Gateway
Prerequisito: Accesso a appsettings.json
DSN (Data Source Name) definisce connessioni database preconfigurate.
Workflow
flowchart TD
A[Richiesta DSN] --> B{Nuova o esistente?}
B -->|Nuova| C[Modificare appsettings.json]
B -->|Esistente| D[Testare connessione]
C --> E[Riavviare Gateway]
E --> D
D --> F{Test riuscito?}
F -->|Si| G[Documentare]
F -->|No| H[Verificare Connection String]
H --> C
style G fill:#e8f5e9
style H fill:#ffebee
1. Visualizzare DSN esistenti
# Elencare tutti i DSN configurati (API) curl -s http://localhost:5000/api/v1/dsn | jq # Oppure controllare direttamente in Config cat appsettings.json | jq '.Gateway.Databases'
2. Aggiungere nuovo DSN
Modificare appsettings.json:
{ "Gateway": { "Databases": { "demo": { "Provider": "sqlite", "ConnectionString": "Data Source=data/demo.db" }, "produzione": { "Provider": "sqlserver", "ConnectionString": "Server=sql01;Database=ProdDB;User Id=app;Password=***;TrustServerCertificate=True" }, "reporting": { "Provider": "postgresql", "ConnectionString": "Host=pg01;Database=reports;Username=reader;Password=***" } } } }
Provider supportati:
| Provider | Esempio ConnectionString |
| ———- | ————————— |
sqlserver | Server=host;Database=db;User Id=user;Password=pwd |
sqlite | Data Source=path/file.db |
postgresql | Host=host;Database=db;Username=user;Password=pwd |
mysql | Server=host;Database=db;User=user;Password=pwd |
3. Riavviare Gateway
# Windows Stop-Process -Name "WvdS.WebAPI.Data.Gateway.Api" -Force Start-Process -FilePath ".\WvdS.WebAPI.Data.Gateway.Api.exe" # Linux (systemd) sudo systemctl restart data-gateway
4. Testare DSN
# Elencare tabelle del nuovo DSN curl -s http://localhost:5000/api/v1/dsn/produzione/tables | jq # Recuperare primi dati curl -s "http://localhost:5000/api/v1/dsn/produzione/tables/Customers?\$top=5" | jq
5. Rimuovere DSN
- Eliminare voce DSN da
appsettings.json - Riavviare Gateway
- Verificare che DSN non sia piu disponibile:
curl -s http://localhost:5000/api/v1/dsn/vecchio_dsn/tables # Risposta attesa: 404 Not Found
Checklist
| # | Punto di verifica | v |
| — | ———– | — |
| 1 | Provider corretto (sqlserver/sqlite/…) | ☐ |
| 2 | Connection String valido | ☐ |
| 3 | Password non visibile nei log | ☐ |
| 4 | Gateway riavviato | ☐ |
| 5 | Test API riuscito | ☐ |
Troubleshooting
| Problema | Causa | Soluzione |
| ——— | ——— | ——– |
Database not found | Database errato | Verificare nome database |
Login failed | Password errata | Verificare credenziali |
Connection refused | Firewall blocca | Aprire porta 1433/5432/3306 |
Provider not supported | Nome provider errato | sqlserver, sqlite, postgresql, mysql |
JSON parse error | Errore sintassi | Validare JSON (jsonlint.com) |
Note sulla Sicurezza
Non loggare mai password in chiaro!
Usare variabili ambiente per le credenziali:
"ConnectionString": "Server=sql01;Database=ProdDB;User Id=${DB_USER};Password=${DB_PASS}"
Runbook Correlati
- Avviare server - Dopo modifica Config
- Health Check - Verificare connessione
- Configurazione Database - Riferimento dettagliato
« <- Avviare server | -> Health Check »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional
Zuletzt geändert: il 29/01/2026 alle 23:39