====== Runbook: Upravljanje DSN ======
**Trajanje:** ~10 minut \\
**Vloga:** Gateway-operater \\
**Predpogoj:** Dostop do appsettings.json
DSN (Data Source Name) definira vnaprej nastavljene povezave do baz podatkov.
----
===== Potek dela =====
flowchart TD
A[Zahteva za DSN] --> B{Nova ali obstoječa?}
B -->|Nova| C[Uredi appsettings.json]
B -->|Obstoječa| D[Testiraj povezavo]
C --> E[Ponovno zaženi Gateway]
E --> D
D --> F{Test uspešen?}
F -->|Da| G[Dokumentiraj]
F -->|Ne| H[Preveri Connection String]
H --> C
style G fill:#e8f5e9
style H fill:#ffebee
----
===== 1. Prikaz obstoječih DSN =====
# Navedi vse konfigurirane DSN (API)
curl -s http://localhost:5000/api/v1/dsn | jq
# Ali neposredno preveri v konfiguraciji
cat appsettings.json | jq '.Gateway.Databases'
----
===== 2. Dodajanje novega DSN =====
**Uredi appsettings.json:**
{
"Gateway": {
"Databases": {
"demo": {
"Provider": "sqlite",
"ConnectionString": "Data Source=data/demo.db"
},
"produkcija": {
"Provider": "sqlserver",
"ConnectionString": "Server=sql01;Database=ProdDB;User Id=app;Password=***;TrustServerCertificate=True"
},
"porocanje": {
"Provider": "postgresql",
"ConnectionString": "Host=pg01;Database=reports;Username=reader;Password=***"
}
}
}
}
**Podprti ponudniki:**
| Ponudnik | Primer 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. Ponovni zagon 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. Testiranje DSN =====
# Navedi tabele novega DSN
curl -s http://localhost:5000/api/v1/dsn/produkcija/tables | jq
# Pridobi prve podatke
curl -s "http://localhost:5000/api/v1/dsn/produkcija/tables/Customers?\$top=5" | jq
----
===== 5. Odstranitev DSN =====
- Izbriši vnos DSN iz ''appsettings.json''
- Ponovno zaženi Gateway
- Preveri, da DSN ni več na voljo:
curl -s http://localhost:5000/api/v1/dsn/stari_dsn/tables
# Pričakovan odgovor: 404 Not Found
----
===== Kontrolni seznam =====
| # | Točka preverjanja | V |
|---|-----------|---|
| 1 | Ponudnik pravilen (sqlserver/sqlite/...) | |
| 2 | Connection String veljaven | |
| 3 | Geslo ni vidno v dnevnikih | |
| 4 | Gateway ponovno zagnan | |
| 5 | API-test uspešen | |
----
===== Odpravljanje težav =====
| Težava | Vzrok | Rešitev |
|---------|---------|--------|
| ''Database not found'' | Napačna baza podatkov | Preveri ime baze |
| ''Login failed'' | Napačno geslo | Preveri poverilnice |
| ''Connection refused'' | Požarni zid blokira | Odpri port 1433/5432/3306 |
| ''Provider not supported'' | Napačno ime ponudnika | sqlserver, sqlite, postgresql, mysql |
| ''JSON parse error'' | Sintaktična napaka | Preveri JSON (jsonlint.com) |
----
===== Varnostni nasveti =====
**Gesel nikoli ne zapisuj v čistem besedilu v dnevnike!**
Uporabi okoljske spremenljivke za poverilnice:
"ConnectionString": "Server=sql01;Database=ProdDB;User Id=${DB_USER};Password=${DB_PASS}"
----
===== Povezani Runbooks =====
* [[.:server-starten|Zagon strežnika]] - Po spremembi konfiguracije
* [[.:health-check|Health Check]] - Preverjanje povezave
* [[..:..:administrator:konfiguration:datenbanken|Konfiguracija baz podatkov]] - Podrobna referenca
----
<< [[.:server-starten|<- Zagon strežnika]] | [[.:health-check|-> Health Check]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional//
{{tag>operator runbook dsn datenbank konfiguration}}