"La Chewbacca ta seg av de tekniske detaljene, mens du tar deg av datagalaksens utfordringer og triumfer!"
Variant har mange internesystemer (UniEconomy, Harvest, CVPartner etc.) og denne løsningen fungerer som en proxy og cache for løsninger som ønsker å bruke data fra disse systemene.
Løsningen er bygget slik at arbeid på den gir relevant erfaring for hva vi møter ute hos våre kunder. Les mer om det her.
Det er tatt noen avgjørelser rundt arkitektur og hvordan vi bruker skytjenester. De avgjørelsene kan du lese mer om her.
For å kjøre
dotnet run --project src/Web
For å kjøre migrering til Employees-databasen
dotnet ef migrations add <navn på migrasjon> --project src/Infrastructure --startup-project src/Web
For å få tilgang til integrasjoner må man ha:
- En variant-bruker/epost
- Blitt lagt til i developers gruppen i Azure AD
- Installert Azure CLI og kjørt
az login
Man kan da få konfigurasjon og secrets fra azure uten noe ekstra oppsett gjennom Azure App Configuration. Når man utvikler kjører man opp SQL Server og Blob Storage lokalt, siden det er disse to tjenestene som skrives til - så de er grei å ha kontroll på selv. De er definert i docker-compose.yml
. Installer Docker Desktop og kjør docker-compose up -d
.
Data fra integrasjoner hentes inn og synkroniseres med databasen én gang i døgnet. Under utvikling er det nyttig å kjøre datainnhenting ved behov. Dette kan gjøres ved å kalle /Orchestrator
-endepunktet (f.eks. via Swagger UI). Her kreves autorisering, som beskrevet i Auth.
For å gjøre kall til endepunkter som er bak auth kan man kjøre az account get-access-token --scope api://chewbacca/employees
for å få et gyldig token. Man kan da trykke Authorize knappen øverst til høyre i Swagger UI på /swagger/index.html
og lime inn tokenet der: Bearer <token>
. Man kan da kalle de låste endepunktene.
Om man lager en App Registration i vår Azure Tenant hvor access token skal kunne brukes til å hente data fra Chewbacca må man huske å legge til scopet api://chewbacca/employees
under API Permissions og få det godkjent av en Administrator.
Work in progress. Se i infrastructure
-mappa
az deployment group create --resource-group my-test-group --template-file .\infrastructure\azuredeploy.bicep --location westeurope`
Dersom du utvikler på en maskin med MacOS med Norsk systemspråk vil du sannsynligvis møte en byggfeil som sier at versjonen av MSBuild ikke er gyldig for å bygge Refit-avhengigheten vi bruker. Denne feilen oppstår fordi MSBuild-versjonen kan ha ulike formater for ulike språk, noe som fører til at Refit sin versjonssammenligning feiler.
Løsning
Som forklart i denne artikkelen kan man be MSBuild bygge uten å bruke språkavhengig formatering for tekster, datoer ol.:
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 dotnet build
Man kan også sette DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
som en miljøvariabel for utviklermaskinen, og dermed slipp å oppgi variablen i selve byggkommandoen.