Repository navigation
Equinet v0.3.0 – Customer Preview
Pre-releasev0.3.0
⚠️ Customer Preview / pre-release -- endast fiktiv testdata. Denna release är avsedd för demonstration och återkoppling, inte en fullskalig produktionslansering med skarpa användare. Ingen skarp kund-, häst-, boknings-, betalnings- eller kontaktinformation får läggas in i någon miljö som kör denna SHA förrän GDPR-arbetet nedan är slutfört. All data i staging/demo-miljön är fiktiva demo-personas och seed-data.
Mål-SHA: 4973f6e919339b022425063bd8a280fa2bbe9b41 (verifierad produktkandidat, grön Quality Gate Passed, rök-verifierad på staging -- se checkpoint-dokumentet för fullständiga detaljer)
Detta är den första release-kandidaten sedan v0.2.0 (2026-01-22) som förberetts för produktionsövervägande, efter en lång utvecklingsperiod (~506 sammanslagna PR:ar). Plattformen har under denna period vuxit från en tidig MVP till en fullständig bokningsplattform med native iOS-app, betalningar, RLS-säkrad databas, offline-stöd och admin-verktyg. Denna release representerar därför en bred, kumulativ sammanfattning snarare än en incrementell lista över enskilda commits -- se länken nedan för fullständig commit-historik.
Höjdpunkter
Autentisering & säkerhet
- Migrerad till Supabase Auth (hanterade lösenord, sessions, email-verifiering, Custom Access Token Hook)
- Row Level Security (RLS) på samtliga kärndomäner, med bevistester
- CSP, HSTS, rate limiting, admin-MFA, admin session-timeout, admin audit log
- IDOR- och auth-härdning genomförd över ett stort antal API-routes
Bokning
- Fast tid + flexibla beställningar, mobil-först stegvist bokningsflöde
- Självservice-ombokning, återkommande bokningar (serier), gruppbokningar för stallgemenskaper
- Atomiskt dubbelbokningsskydd, no-show-spårning, väntetids-/körtidsvalidering
Leverantörsverktyg
- Kalender (dag/vecka/månad), ruttplanering med kartvy och optimering, ruttannonsering
- Kundregister med anteckningar, kundinbjudan/kontoslagning, kundrecensioner
- Röstloggning med AI-tolkning, affärsinsikter, onboarding-wizard
Betalningar & integrationer
- Stripe-integrerat betalningsflöde och prenumerationer (feature flag-skyddat)
- Bokföringsintegration (Fortnox), bilduppladdning (Supabase Storage)
- GDPR-dataexport (JSON/CSV)
iOS-app (hybrid + native SwiftUI)
- Native vyer för dashboard, kalender, bokningar, kundhantering
- Push-notiser (APNs), EventKit-kalendersynk, WidgetKit-widget, native taligenkänning
- JWT-baserad mobiltoken-auth, offline-detektion, VoiceOver-stöd
Offline & PWA
- Installningsbar PWA med Serwist service worker, IndexedDB-cache
- Offline mutation queue med automatisk synk vid återanslutning
Admin
- Fullständig adminpanel: dashboard, användarhantering, bokningshantering, recensionsmoderation, verifieringsgranskning, bulk-notiser, systeminställningar
Demo-läge
- Fullt seedad demo-upplevelse (
NEXT_PUBLIC_DEMO_MODE) för staging/produktion-visning utan att exponera skarp data
Testning & driftsäkerhet
- ~4946 tester (~4612 Vitest unit/integration + 312 iOS XCTest + 22 E2E-specs), 70% coverage
- CI: migration-from-scratch-verifiering, RLS-täckning som guardrail, offline E2E-smoke
- Produktionsdeploy är numera
workflow_dispatch-gated: kräver explicit SHA-input, grönQuality Gate Passed, och en aktiv, mänskligt godkänd dispatch -- ingen automatisk deploy vid push, tagg eller release
Vad "Customer Preview" betyder för den här releasen
- Syfte: demonstration och strukturerad återkoppling från utvalda intressenter -- inte en bred, skarp lansering.
- Data: endast fiktiv testdata (demo-personas, seed-data). Ingen verklig kund, häst, bokning, betalning eller kontaktuppgift får registreras i någon miljö som kör denna release förrän GDPR-arbetet nedan är avslutat.
- Konsekvens av detta: GDPR-arbetet (se nedan) är INTE en blockerare för att dela ut v0.3.0 som Customer Preview med fiktiv data -- men det ÄR ett villkor som måste vara uppfyllt innan plattformen tas i bruk med riktiga personuppgifter.
Kända begränsningar och kvarvarande manuella kontroller
- Manuell rök-verifiering, inte fullautomatiserad produktionslik E2E: denna exakta SHA har rök-verifierats manuellt med Playwright (demo-läge, auth, en bokning end-to-end) på staging, utöver CI:ts egen automatiserade E2E-svit. Ingen fullständig regressionstestning av samtliga ~4946 tester har körts specifikt mot en produktionsdeploy av denna SHA (CI:s testsvit körs i CI-miljö, inte mot en riktig deploy).
- Produktionsdeploy kräver fortsatt manuellt, separat godkännande:
deploy-production.ymlärworkflow_dispatch-only och har hittills endast körts meddry_run=true. Ingen produktionsdeploy av denna release-kandidat har skett. - Delad databas mellan Preview och staging-target: upptäckt under denna releasesprint (
equinet-staging-appsDATABASE_URLhartarget: ["production","preview"]) -- gäller endast staging-miljön, inte produktion, men är värt att känna till vid framtida Preview-verifieringar. - Se
docs/operations/release-sprint-checkpoint.mdför fullständig, verifierad status kring denna release-kandidat (deployment-ID:n, hälsokontroller, rollback-planer).
Framtida krav före användning med riktiga personuppgifter (inte blockerande för denna Customer Preview)
Följande GDPR-relaterat arbete kvarstår som Johans/juridisk rådgivnings beslut och är INTE påbörjat av denna sprint. Det blockerar inte denna release-kandidat som Customer Preview med fiktiv data, men måste vara löst innan plattformen används med riktiga personuppgifter:
- Bolagsuppgifter (vem är personuppgiftsansvarig, organisationsform)
- DPO-bedömning (behövs ett dataskyddsombud?)
- Personuppgiftsbiträdesavtal med underleverantörer (Supabase, Vercel, Stripe, Resend, m.fl.)
- SCC-status (Standard Contractual Clauses) för amerikanska underleverantörer
Fullständig historik: v0.2.0...v0.3.0