KSM – Brukerguide¶
Arkiv
Denne siden er arkivert og er ikke del av anbefalt oppsett lenger. Innholdet beholdes kun for historikk og overgangsbehov. For nytt arbeid, bruk de aktive sidene for Knast og DVH.
Knast Secret Manager (KSM) injiserer Oracle-credentials automatisk når dbt kjører, uten at brukeren trenger å håndtere passord manuelt.
Komponenter¶
| Komponent | Rolle |
|---|---|
knast-secret-manager (ksm) |
Miljøoppsett, logging. Lastes automatisk via .pth-fil. |
dbt-oracle-secure |
Patcher dbt-oracle med credentials. Lastes automatisk via .pth-fil. Krever ksm. |
dvh |
Interaktiv kommando for å velge DVH-miljø og venv. |
shell-integration.sh |
Sources i .bashrc/.profile – aktiverer riktig venv ved terminaloppstart. |
~/KSM/env-config.env |
Persistert konfig (miljø, schema, DSN etc.). Leses av KSM ved oppstart. |
Oppsett¶
Velg DVH-miljø med dvh¶
dvh
Velg python miljø fra lista og deretter DVH miljø. Valget lagres i ~/KSM/env-config.env.
dvhkrever at filen/opt/KSM/tns.jsoner tilgjengelig. Den lastes inn autmatisk ved oppstart.
Bruke KSM i eget Python-miljø¶
Dersom du bruker et eget virtuelt miljø (f.eks. med dvh_tools eller andre prosjektavhengigheter), må KSM installeres manuelt i dette miljøet.
Kjør følgende kommando én gang per venv (installasjonen overlever oppdateringer i miljøet):
dvh ksm install
Restart etter installasjon¶
Etter at KSM er installert i et nytt miljø, må du restarte Knast for at VSCode-utvidelser som PowerUser skal plukke opp det nye miljøet.
Hvordan auto-aktivering fungerer¶
Når Python starter (i valgt venv), kjøres .pth-filene i site-packages automatisk:
dbt-oracle-secure-activate.pth → import dbt_oracle_secure.auto
↳ import ksm.auto
↳ leser ~/KSM/env-config.env
↳ setter miljøvariabler
↳ installerer Oracle credential-hook
↳ trigger: når dbt laster dbt.adapters.oracle.connections
Kjøre dbt¶
Legg til følgende i profiles.yml under hver dbt prosjekt:
knast:
host: "{{env_var('DBT_DB_HOST')}}"
password: placeholder
port: "{{env_var('DBT_DB_PORT')}}"
protocol: tcp
schema: <schema_name>
service: "{{env_var('DBT_ENV_SERVICE')}}"
database: "{{env_var('DBT_DB_NAME')}}"
threads: 1
type: oracle
user: "{{env_var('DBT_ENV_SECRET_USER')}}"
⚠️ Important:
schema:må spesifiseres av bruker iprofiles.ymlunder hver dbt prosjekt.
Med dvh kjørt og riktig venv aktivert:
dbt debug # Verifiser tilkobling
dbt run # Kjør modeller
dbt test # Kjør tester
Credentials hentes fra keyring/sockets-backend og injiseres transparent.
Logg¶
tail -f ~/KSM/logs/usage.log
Bytte miljø¶
dvh
Velg nytt miljø i menyen. ~/KSM/env-config.env oppdateres umiddelbart – neste dbt-kjøring bruker det nye miljøet.
## ~/KSM/env-config.env – nøkkelvariabler
Dette er miljøvariabler som skrives automatisk av dvh kommandoen
DVH_ENVIRONMENT=DVH_P # Hvilken DVH-instans som er aktiv
SCHEMA= # dbt-schema, tom = harkode i din profiles.yml
DBT_DB_HOST=dmv01-scan.adeo.no
DBT_DB_PORT=1531
DBT_ENV_SECRET_USER=a123456
DBT_ENV_SERVICE=cccdwh01
VENV_PATH=/opt/KSM/.dbtenv # Python-venv som shell-integration aktiverer
Feilsøking¶
| Problem | Sjekk |
|---|---|
dbt finner ikke database |
dvh – er riktig miljø valgt? Se ~/KSM/logs/usage.log |
| Credentials mangler | echo $DVH_ENVIRONMENT – er den satt? |
.pth-fil ikke aktiv |
Er riktig venv aktivert? which python |
| TNS-feil | /opt/KSM/tns.json – finnes og er ikke tom? |