Skip to content

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.

dvh krever at filen /opt/KSM/tns.json er 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 i profiles.yml under 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?