klarsprak

Drift

Lokal utveckling

npm install
npm run dev

Repositoryt har inget package-lock.json, så npm ci är inte den verifierade installationsvägen.

Verifiering före PR/deploy

npm test
npx wrangler d1 migrations apply DB --local
npx wrangler deploy --dry-run

Verifiera dessutom berörda flöden manuellt när ändringen påverkar routing, submission eller admin.

D1

Produktionsmigrationer körs med:

npm run migrate:production

Regler:

D1 data locality och read replication

Produktionsdatabasen ska skapas med jurisdiction=eu. Cloudflare-jurisdiction är creation-time providerkonfiguration och kan inte läggas till på en befintlig D1-databas; replacement görs därför genom verifierad export/import till en ny EU-databas före binding-cutover.

Klarspråks D1-requestväg använder Sessions API. Read replication får därför vara auto på EU-databasen; replikerna hålls inom den konfigurerade EU-jurisdictionen.

Produktionsmigrationer ska gå via bindingen:

npm run migrate:production

Deployment

npm run deploy

Deploy använder wrangler deploy --strict. Vanlig PR-verifiering ska inte implicit deploya.

Efter avsedd produktiondeploy:

npm run verify:production

Verifieringsmatris

Host/routing

Kontrollera canonical host och IDN-alias, inklusive redirect och Worker-first-beteende.

Publik termläsning

Verifiera att API:t läser publicerad data från D1 och att frontend återger samma state.

Submission

Verifiera validering, Turnstile och att ett förslag hamnar i review-state utan automatisk publicering. Response-CSP ska explicit tillåta https://challenges.cloudflare.com för Turnstiles script/frame och ska inte återinföra 'unsafe-inline' för script-src. script-src ska innehålla en unik nonce-... per response; efter production deploy ska Cloudflares injicerade JavaScript Detection-script bära samma nonce så att det inte blockeras av CSP.

Admin/review

Verifiera behörighetsgräns och explicita stateövergångar för godkännande/publicering/arkivering.

SEO/cache

Verifiera att publika sidor har avsedd canonical/robots metadata och att adminytor inte blir indexerbara eller publikt cacheade.

Felsökning

Tom eller felaktig publik termlista

  1. host/route,
  2. Worker/API,
  3. D1-read/publicerad state,
  4. frontend.

Submission misslyckas

  1. requestdata,
  2. Turnstile,
  3. D1-write,
  4. serverlogg.

Adminproblem

Kontrollera auth/route före dataändringar. Försök inte lösa accessproblem genom att göra admin-API mer publikt.

Observability

Persistent logs/traces är aktiverade med sampling och query-string-redaction. Redaction ska behållas även under felsökning; lägg inte känsliga requestparametrar i loggar.