AutoMate Technisch Help

StatusPage — Development & Deployment

Het project staat in Portals/StatusPage.Worker/. Vereisten: Node.js 20+, pnpm 9+, Wrangler CLI.

Lokale omgeving opzetten

1. Dependencies installeren

cd Portals/StatusPage.Worker pnpm install

2. Lokale secrets instellen

Maak een bestand .dev.vars in Portals/StatusPage.Worker/ aan. Dit bestand staat in .gitignore en mag nooit worden gecommit.

AZURE_AD_CLIENT_SECRET=<secret uit Entra app ac3eb2dc-8631-45a3-b702-e167511070f2> TWILIO_ACCOUNT_SID=<sid> TWILIO_AUTH_TOKEN=<token> API_AUDIENCE=api://<app-id-van-automate-api>

3. Lokale D1-database aanmaken en migraties applyen

pnpm run db:migrate:local # Equivalent: wrangler d1 migrations apply status-db --local

4. Seed-data laden (optioneel)

# Basisdata (modules, test-incidenten) wrangler d1 execute status-db --local --file=scripts/seed-local.sql # Maintenance window activeren voor UI-tests wrangler d1 execute status-db --local --file=scripts/seed-maintenance-on.sql

Lokaal draaien

Er zijn twee modi:

Vite dev server (port 5173) — aanbevolen voor UI-ontwikkeling

pnpm run dev

Snelle hot-module-replacement voor Svelte-componenten. Cron triggers zijn niet beschikbaar. Gebruikt Wrangler-miniflare onder de motorkap voor D1/KV-bindings.

Wrangler dev server (port 8787) — voor cron-testen

pnpm run preview # Equivalent: wrangler dev

Simuleert de volledige Worker-runtime inclusief cron triggers. Een cron handmatig triggeren:

# Via aparte terminal (terwijl wrangler dev draait) curl "http://localhost:8787/__scheduled?cron=*+*+*+*+*"

Of gebruik de Rider run-configuratie .run/StatusPage Worker - Trigger cron now.run.xml.

Rider run-configuraties

In .run/ staan kant-en-klare run-configuraties:

Configuratie

Actie

StatusPage Worker - Dev (Vite, 5173)

Vite dev server

StatusPage Worker - Dev (Wrangler, 8787)

Wrangler dev server

StatusPage Worker - Build

Productie-build

StatusPage Worker - Migrate D1 (local)

Lokale migraties applyen

StatusPage Worker - Trigger cron now

Cron handmatig activeren (vereist draaiende Wrangler dev)

StatusPage Worker - Type check

TypeScript type-check zonder build

Build-keten

De productie-build bestaat uit vier stappen:

pnpm run build

vite build\nSvelteKit SSR bundle

adapter-cloudflare\nschrijft .svelte-kit/cloudflare-tmp/_worker.js

postbuild:\nscripts/inject-scheduled.mjs\noverschrijft src/main.ts

wrangler deploy\nupload naar Cloudflare

pnpm run build voert vite build uit, gevolgd door het postbuild-script als NPM postbuild-hook. Daarna is src/main.ts de gegenereerde wrapper met fetch + scheduled().

Handmatig deployen

# Naar productie (main-branch workers) pnpm exec wrangler deploy # Naar development-omgeving pnpm exec wrangler deploy --env development

Vóór deployment: zorg dat D1-migraties zijn toegepast (zie CI-workflow hieronder).

CI-workflow

De GitHub Actions workflow in .github/workflows/Deployment-StatusPage-Worker.yml wordt getriggerd door:

  • Push naar develop of main met wijzigingen in Portals/StatusPage.Worker/**

  • Handmatige workflow_dispatch (kies development of production)

Stappen

  1. pnpm install (frozen lockfile)

  2. TypeScript type-check (pnpm run check)

  3. Tests (pnpm run test)

  4. SvelteKit build (pnpm run build)

  5. D1-migraties applyen — remote productie of development

  6. Wrangler deploy

Omgevingsbepaling

Branch / trigger

Omgeving

Push naar main

production

Push naar develop

development

workflow_dispatch

Keuze via input

Benodigde GitHub Secrets

Secret

Beschrijving

CLOUDFLARE_API_TOKEN

Wrangler API-token met deploy-rechten

CLOUDFLARE_ACCOUNT_ID

Cloudflare account-ID

Worker-secrets (AZURE_AD_CLIENT_SECRET, TWILIO_*, API_AUDIENCE) zijn geconfigureerd in Cloudflare via wrangler secret put en staan niet in GitHub Secrets.

Worker-secrets beheren

Secrets zijn opgeslagen in Cloudflare en worden nooit via wrangler.jsonc of CI meegegeven. Instellen of roteren:

# Instellen (interactief) wrangler secret put AZURE_AD_CLIENT_SECRET # Instellen in development-omgeving wrangler secret put AZURE_AD_CLIENT_SECRET --env development # Lijst van ingestelde secrets bekijken wrangler secret list

Overzicht secrets

Secret

Beschrijving

AZURE_AD_CLIENT_SECRET

Entra ID client secret voor OIDC-login en token-acquisitie

TWILIO_ACCOUNT_SID

Twilio account-ID (WhatsApp)

TWILIO_AUTH_TOKEN

Twilio auth-token (WhatsApp)

API_AUDIENCE

Entra App ID URI van AutoMate.API (bijv. api://<guid>)

Custom domain en DNS cutover

Het custom domain status.automate365.cloud is als custom_domain: true geconfigureerd in wrangler.jsonc. Bij de eerste deploy vervangt Wrangler automatisch een eventueel bestaand DNS-record (bijv. de Railway A/CNAME) door een proxied CNAME naar de Worker. Universal SSL is automatisch beschikbaar.

Als de DNS-cutover onsuccesvol is, check dan in het Cloudflare-dashboard of het record al proxied is (oranged).

Last modified: 25 June 2026