Find DAWA-kald i koden med migrate-cli
Find og erstat DAWA-adresser i et projekt med npx @danadresse/migrate-cli, se hvad værktøjet ikke fanger, og stop nye DAWA-kald i CI.
Før du kan skifte fra DAWA, skal du vide, hvor koden kalder DAWA. I et ældre projekt kan adresserne ligge i kildekode, konfigurationsfiler, skabeloner og dokumentation. @danadresse/migrate-cli finder dem og kan erstatte dem med https://api.danadresse.dk.
Guiden viser, hvordan du kører værktøjet, hvad det præcis gør, hvad det overser, og hvordan du får CI til at fejle, hvis en DAWA-adresse dukker op igen.
1. Kør en tør gennemgang
Værktøjet kræver Node 18 eller nyere. Stå i projektets rod og kør:
npx @danadresse/migrate-cli
Uden flag ændrer det ingenting. Det viser hver linje, der ville blive ændret, og hvordan den ville se ud bagefter:
Found 3 occurrence(s) in 2 file(s):
src/adresse.ts
12: const BASE = "https://dawa.aws.dk";
→ const BASE = "https://api.danadresse.dk";
templates/checkout.html
41: <script src="https://dawa.aws.dk/js/autocomplete/dawa-autocomplete2.min.js"></script>
→ <script src="https://api.danadresse.dk/js/autocomplete/dawa-autocomplete2.min.js"></script>
Run with --write to apply changes.2. Kend flagene
| Kommando | Virkning |
|---|---|
npx @danadresse/migrate-cli | Tør gennemgang af den aktuelle mappe |
npx @danadresse/migrate-cli src/ | Tør gennemgang af src/ |
npx @danadresse/migrate-cli --target src/ eller -t src/ | Det samme |
npx @danadresse/migrate-cli scan src/ | Det samme. scan er altid tør |
npx @danadresse/migrate-cli --write eller -w | Skriver ændringerne i filerne |
npx @danadresse/migrate-cli rewrite src/ | Det samme som --write på src/ |
npx @danadresse/migrate-cli --key dawa_live_… | Indsætter din nøgle i kodeeksemplerne til sidst |
npx @danadresse/migrate-cli --fail-on-found eller --ci | Tør gennemgang, der afslutter med exit-kode 1, hvis der blev fundet noget. Til CI |
npx @danadresse/migrate-cli --help | Viser hjælpen |
--key gør kun én ting: viser nøglen i eksemplerne. Værktøjet skriver aldrig nøglen ind i dine filer. Et ukendt flag giver en advarsel, men kørslen fortsætter.
3. Forstå, hvad der bliver erstattet
Værktøjet leder efter DAWA's domæner, med eller uden http:// eller https:// foran:
| Fundet | Bliver til |
|---|---|
https://dawa.aws.dk | https://api.danadresse.dk |
https://api.dataforsyningen.dk | https://api.danadresse.dk |
https://cdn.dataforsyningen.dk efterfulgt af /dawa/assets/dawa-autocomplete2/ | https://api.danadresse.dk |
Et domæne alene: dawa.aws.dk, //dawa.aws.dk/…, DAWA_HOST=api.dataforsyningen.dk | api.danadresse.dk |
Kun domænedelen erstattes. Stien og parametrene bliver stående, så https://dawa.aws.dk/adresser?postnr=8000 bliver til https://api.danadresse.dk/adresser?postnr=8000. Det virker, fordi vi har de samme stier. http:// bliver til https://, og et domæne uden protokol forbliver uden protokol. Domæner, der bare ligner, fx x.api.dataforsyningen.dk, bliver ikke rørt.
Det gennemgår filer med disse endelser: js ts jsx tsx mjs cjs py php rb go java cs kt swift rs html vue svelte astro json yaml yml env toml ini conf cfg md rst txt, plus .env, .env.* (fx .env.production), workflows under .github/ og .gitlab-ci.yml. Mapperne node_modules, .git, .cache, .yarn, .venv, venv, dist, build, __pycache__, .next og vendor springes over.
Finder det DAWA's widget (dawa-autocomplete2.js eller .min.js), viser det til sidst det nye script-tag med ?key=. Se Fra dawa-autocomplete2 for, hvorfor nøglen her skal være en browsernøgle.
4. Det, værktøjet ikke fanger
Gennemgangen er bevidst simpel. Tjek selv disse steder:
- Andre skjulte filer. Ud over
.env*,.github/og.gitlab-ci.ymlbliver filer, hvis navn starter med punktum, ikke gennemgået, fx.npmrceller.circleci/config.yml. - Sammensatte strenge.
"https://dawa." + "aws.dk"eller en URL, der bygges op i flere trin. - Andre filtyper. Fx
.xml,.properties,.gradle,.twig,.liquid,.cshtml,.razor,.sqlog regneark. - Kode uden for repoet. Konfiguration i en database, i et CMS, i miljøvariabler på serveren eller i en tredjepartsplugin.
Og efter erstatningen mangler kaldene stadig en nøgle. Tilføj X-Api-Key der, hvor du laver HTTP-kald. Se Skift fra DAWA ved at ændre base-URL'en.
5. Søg selv med ripgrep eller git grep
En søgning med ripgrep dækker alle filtyper og alle skjulte filer:
rg -n --hidden -g '!.git' -g '!node_modules' \ -e 'dawa\.aws\.dk' \ -e 'api\.dataforsyningen\.dk' \ -e 'cdn\.dataforsyningen\.dk/dawa' \ .
git grep søger kun i filer, som Git kender, og det er tit det, du vil have:
git grep -nE 'dawa\.aws\.dk|api\.dataforsyningen\.dk|cdn\.dataforsyningen\.dk/dawa'Har du ingen af dem, virker almindelig grep -rnE med samme mønster, men så skal du selv udelukke node_modules.
6. Lad CI fejle, hvis DAWA kommer tilbage
Med --fail-on-found afslutter migrate-cli med exit-kode 1, så snart det finder en henvisning til DAWA. Det ændrer intet:
npx --yes @danadresse/migrate-cli@latest --fail-on-found
Det har ingen mulighed for at undtage filer, så en changelog, der med vilje nævner DAWA, får også buildet til at fejle. Har du brug for undtagelser, eller vil du ikke have Node i pipelinen, så brug et lille script i stedet. Det fejler, hvis en sporet fil nævner et af DAWA's domæner:
#!/usr/bin/env bash # Fejler, hvis koden igen henviser til DAWA. Kør fra repoets rod. set -euo pipefail pattern='dawa\.aws\.dk|api\.dataforsyningen\.dk|cdn\.dataforsyningen\.dk/dawa' # Undtag filer, der med vilje nævner DAWA (fx denne fil og changelogs). if git grep -nE "$pattern" -- . ':!scripts/check-no-dawa.sh' ':!CHANGELOG.md'; then echo "DAWA lukkede 1. oktober 2026. Brug https://api.danadresse.dk i stedet." >&2 exit 1 fi echo "Ingen DAWA-adresser fundet."
Gem det som scripts/check-no-dawa.sh og kald det fra din pipeline. I GitHub Actions:
name: no-dawa
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: bash scripts/check-no-dawa.shgit grep returnerer exit-kode 1, når det ikke finder noget. Derfor står kaldet i en if, så set -e ikke stopper scriptet på det gode udfald.
Næste skridt
- Tilføj nøglen og test skiftet: Skift fra DAWA ved at ændre base-URL'en.
- Klar til produktion? Go-live-tjekliste.
Relaterede guides
Markdown-kilde Fejl i guiden? Skriv til os API-reference (Swagger)