-
Notifications
You must be signed in to change notification settings - Fork 0
Environment‐variabler
Folk-prosjektet har to .env filer som man vil forholde seg til:
./apps/web/.env
-
./apps/server/.env
(denne er kun nødvendig for lokal kjøring)
Denne filen har 4 pre-definerte variabler i seg relatert til REACT-applikasjonen + en siste variabel som blir satt i GitHub Action workflows.
REACT_APP_ENV er variabelen som blir lagt til i .env fra GitHub Action-workflow.
Denne ble laget for å ha en variabel som kan brukes for å skille mellom dev og prod. Det finnes en variabel NODE_ENV, som man kan nå med process.env.NODE_ENV
. Problemet med denne var at verdien for både https://folk.knowit.no/ og https://dev.folk.knowit.no/ var production, som gjorde at man ikke kunne bruke den til å skille hvilke variabler for en config som skulle bli brukt.
Under ./apps/web/src/config
finner man håndtering av miljø-spesifikke variabler for diverse configurering. I første omgang er det kun for Amplify. Hvilken config som brukes blir da avgjort av _REACT_APP_ENV.
Dersom man ønsker å legge til nye variabler som skal brukes i en config, så kan man legge variablene inn i de respektive funksjonene under ../config/envs
. Dette er funksjoner som returnerer et JSON-object med variablene. For å opprettholde typekontroll, så settes typen for de nye variablene i ../config/types.ts
. Det er ikke laget med fallback verdier i bakhånd, så verdiene som ligger i det ene miljøet må også finnes for de andre.
Når man skal bruke disse variablene importeres de i filen som tar de i bruk slik som dette import { appConfig } from './config'
NB! Secrets eller andre hemmelige verdier bør ikke håndteres i denne løsningen.
Denne måten å forholde seg til miljø-spesifikke variabler, ble laget i henhold til denne lenken:
Best Practices for Handling Per-Environment Configuration in Your JS/TS Applications.
Bruken av denne filen kan lese mer om her: Server.