Changelog

Last updated: 2026-04-12 11:25

UX

2026-04-09 11:41

Användarlistan skalar nu för stora volymer med live-sök och stegvis visning

Användarvyn visar nu 50 användare åt gången med en tydlig knapp för att visa nästa 50. Samtidigt fungerar sökfältet som live-sökning och filtrerar resultat när man skriver, så arbetsflödet blir snabbare när man hanterar flera hundra användare. Lösningen valdes för att ge bra överblick utan att överbelasta vyn.

2026-04-09 11:36

CSV-import flyttades till en diskret, utfällbar åtgärd ovanför listan

Bulkimport via CSV ligger nu bakom en tydlig knapp istället för att alltid ta plats i användarvyn. När knappen öppnas visas importpanelen med filval, importknapp och resultat. Detta minskar visuellt brus i vardagsarbetet men behåller snabb åtkomst till import när den behövs.

2026-04-09 11:33

Användarnavigering förenklades genom klickbart namn istället för separat Open-knapp

Tabellen visar nu Namn först, följt av e-post, och namnet fungerar som primär länk till användarens detaljsida. Den separata Open-knappen togs bort för att minska onödiga klick och göra listan mer naturlig att läsa och använda.

UI

2026-04-09 11:23

Adminpanelen fick en clean enterprise-design med tydlig informationshierarki

Layouten byggdes med sidomeny, tydliga tabeller, statusbadges, enhetliga formulär och responsivt beteende för desktop och mobil fallback. Den visuella riktningen fokuserar på läsbarhet, låg kognitiv belastning och snabb orientering i operativt adminarbete.

2026-04-09 11:23

Steg-1-vyerna för Users, User Detail och Redeem Codes blev sammanhängande och återanvändbara

Alla primära skärmar i steg 1 implementerades i samma designmönster med gemensamma komponenter och tillståndshantering. Detta gör att nya adminmoduler kan byggas vidare på samma mönster i nästa steg utan att skapa visuella eller interaktiva avvikelser.

TECH

2026-04-12 11:25

401-felsökning förbättrades med robustare signatur-normalisering och tydlig webhook-debugg

Webhook-valideringen uppdaterades för att hantera signaturvarianter där mellanslag kan ersätta plus-tecken, samt för att logga säker felsökningsmetadata vid invalid signature. Målet är snabbare isolering av Woo-headerproblem utan att exponera hemligheter.

2026-04-12 11:21

Webhook-signaturvalidering härdades för Woo-varianter

Signaturverifieringen uppdaterades för att hantera vanliga formatvariationer från WooCommerce, inklusive trim av header/secret, stöd för sha256-prefix och jämförelse av både base64- och hex-encoding. Syftet är att undvika falska 401-fel när payloaden i övrigt är korrekt signerad.

2026-04-12 11:18

500-fel i live-webhook löstes med ren produktion-build och tjänst-restart

Felet orsakades av korrupta/splittrade Next.js build-artefakter efter parallell dev- och prod-körning i samma projektmapp. Lösningen blev att stoppa dev-processen, rensa .next, bygga om för produktion och kickstarta launchd-tjänsten. Efter åtgärden svarar webhook-endpointen stabilt med 200 på korrekt signerad request.

2026-04-12 11:08

Publik domän verifierad för adminappen och webhook-endpoint

Efter Nginx- och certifikatsetup verifierades att jhmedia.duckdns.org svarar över HTTPS och proxar korrekt till appen. Webhook-endpointen testades externt och svarade med expected invalid_signature vid osignerad testpayload, vilket bekräftar att signaturkontrollen fungerar i live-miljön.

2026-04-12 11:06

Publik drift för jhmedia förbereddes parallellt med befintliga appar

Domänen jhmedia.duckdns.org uppdaterades till serverns aktuella IP, en separat launchd-tjänst (com.jhab.mediaadmin.server) sattes upp för produktion på port 3200 och en isolerad Nginx-konfig för jhmedia skapades utan att ändra befintliga appers portar eller tjänster. HTTPS-aktivering via Nginx/Certbot är förberedd och kräver endast lokala sudo-steg på servern för att slutföra reload och certifikatinstallation.

2026-04-11 13:12

Servermiljö för Woo-integrationen förbereddes med .env.local

Projektet fick en lokal miljöfil med nödvändiga nycklar för webhook-integrationen: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY och WOO_WEBHOOK_SECRET. Detta gör att webhook-endpointen kan konfigureras säkert server-side utan att exponera service role i klientkod.

2026-04-11 12:58

WooCommerce webhook och Supabase-integrationslager implementerades i projektet

Projektet fick en produktionsnära integration med ny Next.js endpoint för Woo-webhooks, HMAC-signaturverifiering, idempotent processning av orderrader, produktmappning till böcker och skapande av pending_entitlements. En SQL-migration lades till med alla relevanta tabeller/indexar samt RPC-funktionen claim_pending_entitlements för magic-link-claim efter inloggning. Dokumentation för env-variabler och webhook-setup lades också till för snabb driftstart.

2026-04-11 12:48

Integrationsserver låst till Next.js route handler med Woo-webhook via secret

Beslut togs att implementera webhook-mottagning i rekommenderad Next.js route handler på egen server. WooCommerce konfigureras med webhook och signerad payload där secret verifieras i backend innan data skrivs till Supabase. Detta ger en enkel och säker produktionsväg utan Supabase Edge Functions.

2026-04-11 12:41

Webhook-kontrakt låst till full WooCommerce-payload

Beslut togs att integrationsendpointen ska ta emot hela WooCommerce-orderpayloaden i stället för en reducerad variant. Detta förbättrar felsökning, möjliggör framtida regler utan att ändra Woo-klientkod och ger bättre spårbarhet genom att råpayload kan lagras i commerce_orders.

2026-04-11 12:33

Claim-strategi låst till full körning och enkel mismatch-loggning

Beslut togs att claim_pending_entitlements ska behandla alla claimbara pending-poster i ett kör för inloggad användare. Samtidigt låstes modell där saknad produktmappning loggas som ignored_unmapped i order-item-logg, utan att skapa pending_entitlement-rad. Detta förenklar datamodellen och håller claim-tabellen fokuserad på poster som faktiskt kan ge access.

2026-04-11 12:24

WooCommerce-webhookstrategi fastställd med ny dedikerad server-endpoint

Beslut togs att använda billing.email som canonical email, införa mismatch-vy även för saknad produktmappning och skapa en ny dedikerad integrationsroute för WooCommerce istället för att återanvända befintliga endpoints. Detta ger renare ansvar, enklare säkerhet och bättre felsökning i produktion.

2026-04-11 12:15

WooCommerce-integrationsmodell låstes för pending entitlements med strict email-claim

Integrationsstrategin fastställdes med WooCommerce-order på status processing som källa för access, explicit produkt-id till book_id-mappning och pending-entitlements som claimas efter magic-link-inloggning. Lösningen separerar tydligt köp, identitet och access samt undviker att WooCommerce skapar auth-användare. Beslutet inkluderar strict email-matchning och adminstöd för manuell hantering av mismatch-fall.

2026-04-09 12:03

Intermittenta mock-fel begränsades till skrivoperationer

Slumpmässiga mock-fel togs bort från läsflöden som användarsökning och listning eftersom de störde den dagliga administrationen. Felinjicering behölls i skrivoperationer för att fortsatt kunna testa robust felhantering där den är mest relevant. Resultatet är stabil live-sökning utan att förlora realism i kritiska uppdateringsflöden.

2026-04-09 11:58

Dev-miljön stabiliserades efter chunk-fel vid lokal körning

Ett återkommande Next.js-fel med saknade modulfiler i .next orsakade runtime-problem vid lokal utveckling. Lösningen blev att stoppa den hängande processen och starta om appen rent på samma port. Efter omstart verifierades sidan via localhost utan saknade chunk-resurser, vilket återställde stabil lokal utveckling.

2026-04-09 11:50

Filbaserad changelog infördes med automatisk rendering i adminappen

En central fil med namn 'changelog' fungerar nu som källa för historik under exakt tre kategorier: UX, UI och TECH. En dedikerad changelog-sida läser filen vid render och visar senaste poster överst i varje kategori. Detta gör dokumentationen konsekvent, lättläst och enkel att uppdatera löpande utan att blanda in mellaniterationer.

2026-04-09 11:30

Mock-first backendlager utökades med CSV-import av användare inklusive radresultat

Admin-API-kontraktet fick stöd för bulkimport av användare från CSV och returnerar sammanställd importstatus med created, updated och failed per rad. Mock-implementeringen validerar data och simulerar realistisk hantering av fel. Detta förbereder en trygg övergång till riktig backend med samma API-kontrakt.

2026-04-09 11:24

Projektet etablerades som Next.js-admin med provider-baserat API-byte

Applikationen byggdes med ett internt adminApi-lager där mock-provider är standard och real-provider är en tydlig stub för senare anslutning. Denna struktur valdes för att låta UI utvecklas och godkännas frikopplat från backend, utan att behöva skriva om klientlogik senare.

2026-04-09 11:24

Automatiserad verifiering säkrades med tester och byggkontroller

Mock-API-funktioner täcks av vitest med scenarier för permissions, konflikter, statuslogik och CSV-import. Byggprocessen verifieras med Next build för att säkerställa att appen håller ihop tekniskt när UI och mockflöden utvecklas iterativt.