====== 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}}