Releaser & uppdateringar

En översikt av förändringar i Radix. För fullständig historik och taggar/versioner, se GitHub‑releaser.

v1.3.7 E-postblockering för kontaktformulär

App
Vi har lagt till stöd för att manuellt blockera e-postadresser från att skicka meddelanden via kontaktformuläret.
Moderatorer och administratörer kan nu hantera en blocklista i administrationsgränssnittet. Om ett meddelande skickas från en blockerad e-postadress stoppas utskicket, samtidigt som avsändaren får samma neutrala bekräftelse som vanligt.
Innehåller

Ny blocklista för e-postadresser

Adminvy för att lista, söka och ta bort blockerade adresser
Formulär för att lägga till ny blockerad e-postadress med valfri anledning
Koppling till användaren som skapade blockeringen

Sökstöd i administrationsvyn

Bekräftelsemodal vid borttagning
Kontaktformuläret kontrollerar blocklistan innan mail skickas
Funktionen är scaffold-anpassad och fungerar även om adminmodulen inte är installerad

Syfte

Detta ger ett extra skyddslager mot spam utöver befintligt honeypot-skydd. Funktionen är särskilt användbar när en spamadress har lyckats ta sig igenom formulärskyddet och behöver stoppas manuellt framöver.

v1.3.6 Fix CI-körningen

App
Fixar CI-körningen för schemalagd Infection genom att komplettera den genererade .env-filen
med saknade miljövariablerför geolocation och sessionscookies. Detta gör att appens env-
validering passerar innan scaffolds installeras i GitHub Actions.

v1.2.1 Underhåll

Framework
Uppdaterat GitHub Actions workflows för Node.js 24 kompatibilitet.
Uppdaterat actions/checkout från v4 to v5.
Uppdaterat actions/upload-artifact från v4 till v5.

v1.3.5 Fix: stabilisera mobilpaginering

App
Stabilisera mobilpaginering

- Förhindrar hopp/blink vid pagination på mobil när sökfält är fokuserat
- Behåller tidigare layout och horisontell scroll för många sidor
- Bevarar temastyrda pager-färger via CSS-variabler

v1.3.4 Updatering Radix App till Radix Framework v1.2.0.

App
Uppdaterat
Uppdaterat mattablues/radix-framework till ^1.2.
Synkat starter-applikationen med ramverkets förbättrade GeoLocator-stöd.
Uppdaterat Composer-låsningen så nya installationer använder Radix Framework 1.2.x.
GeoLocator
Appen använder nu ramverkets förbättrade GeoLocator-konfiguration.
Stöd för .env-styrning via:
GEOLOCATOR_ENABLED
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
LOCATOR_COUNTRY
LOCATOR_CITY
Säkerhet
Synkad med ramverkets förbättringar kring security headers och säkrare standardinställningar.
Fortsatt stöd för sessionsinställningar via .env.
Notering
Detta är en minor release inom 1.x-serien och är avsedd att vara bakåtkompatibel.

v1.2.0 Förbättrad säkerhet

Framework
Den här releasen fokuserar på förbättrad säkerhet, stabilare miljökonfiguration och hårdare testtäckning.

Nytt och förbättrat
Återställt och förbättrat stöd för .env-styrning i GeoLocator.
GeoLocator kan nu läsa:
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT

Lagt till timeout-stöd för HTTP-anrop i GeoLocator.
Förbättrad hantering av ogiltiga eller tomma miljövärden.
Konstruktorargument i GeoLocator prioriteras före .env-värden.
Förbättrad felhantering vid ogiltiga API-svar från geolocation-tjänsten.
Förbättrad JSON-hantering i felmeddelanden från GeoLocator.

Säkerhet
Förbättringar kring security headers.
Hårdare skydd och testning runt säkerhetsrelaterade standardvärden.
Förbättrad hantering av sessionssäkerhet via miljövariabler, inklusive cookie-inställningar som HttpOnly, SameSite och Secure.

Tester och kvalitet
GeoLocator-testerna använder nu fake/spy istället för riktiga externa HTTP-anrop.
Mutationstester har stärkts för GeoLocator.
Fler tester för edge cases kring .env, timeout och API-fel.
PHPStan-anpassningar för striktare typkontroll.
Stabilare testsvit utan beroende av externa geolocation-anrop.

För utvecklare
GeoLocator är fortsatt bakåtkompatibel för normal användning:
getLocation() fungerar som tidigare.
getLocation(null) använder fortsatt $_SERVER['REMOTE_ADDR'].
get($key) fungerar som tidigare.
Applikationer kan konfigurera geolocation via .env utan att behöva ändra kod.

v1.1.9 Säkerhetsuppdatering

Framework
Den här releasen härdar PHP-session cookies och gör cookie-säkerheten konfigurerbar via .env.
Nytt

Session cookies sätts nu med säkrare defaults.
Stöd för konfigurerbar Secure, HttpOnly och SameSite.
SameSite=None kräver SESSION_COOKIE_SECURE=true.
EnvValidator validerar nya session-cookie-inställningar.
Förbättrad hantering vid session destroy/delete.
Lägg till i befintliga projekt

SESSION_COOKIE_SECURE=auto SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax

För production rekommenderas
SESSION_COOKIE_SECURE=true SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax

CSP-rekommendation
Komplettera applikationens CSP med:
base-uri: self object-src: none

I PHP-konfigurationen motsvarar det:
'base-uri' => ["'self'"] 'object-src' => ["'none'"]
För API-profiler kan en striktare variant användas:
'base-uri' => ["'none'"] 'object-src' => ["'none'"]

Bakåtkompatibilitet
Session-hanteringen har säkra defaults om miljövariabler saknas, men applikationer som kör EnvValidator måste lägga till de nya SESSION_COOKIE_* variablerna i sin .env.
Teststatus

PHPUnit: grönt
PHPStan: grönt
Infection: 5019/5019 mutanter dödade
Mutation Code Coverage: 100%
Covered Code MSI: 100%

v1.3.3 Uppdatering för användning av radix-framework v1.1.8

App
Den här releasen förbättrar felhanteringen i Radix Framework genom att logga HTTP-undantag med mer korrekt allvarlighetsgrad.
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.

v1.1.8 Fixad loggnivå för HTTP-undantag

Framework
Den här releasen förbättrar felhanteringen i Radix Framework genom att logga HTTP-undantag med mer korrekt allvarlighetsgrad.
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.

Nytt beteende:
Serverfel, 5xx, loggas som error.
Klientfel, 4xx, loggas inte längre som error.
404 loggas inte som standard.
Andra 4xx-fel, exempelvis 400, 403 och 405, loggas som warning.
HTTP-svar och API-svar påverkas inte.
Det innebär att exempelvis en saknad route fortfarande ger 404, men inte längre skräpar ner error-loggen som ett serverfel.

Oförändrat beteende
Ändringen påverkar inte:
HTTP-statuskoder
felvyer
JSON/API-felsvar
publik API-yta
PageNotFoundException
vanliga serverfel/runtime exceptions
Riktiga serverfel fortsätter att loggas som error med stacktrace.

Kvalitetssäkring
Ändringen är verifierad med:
PHPUnit
PHPStan
Infection mutation testing

v1.3.2 Fix location middleware

App
Ändrat location middleware till att både controllera country och city.
Saknar du en detalj här? Se GitHub‑releaser för komplett historik.

Cookies & integritet

Vi använder nödvändiga cookies för grundfunktioner och säkerhet (t.ex. att komma ihåg ditt val här och skydda formulär). Om du använder administrativa delar kan sessionscookies även förekomma vid inloggning. Läs mer.