Release v1.19.0
Release v1.19.0
Changelog
Added
- Optional device intelligence integration with
nowo-tech/device-intelligence-bundle(suggestonly — notrequire/require-dev; that package needs PHP 8.3+ while AuthKit CI stays on 8.2):- Profile keys
device_intelligence.enabled(defaultfalse),collect_on_auth_pages(defaulttrue),collect_endpoint(default/_device/collect),new_device_notify(defaultfalse),device_rate_limit(defaultfalse),qr_login.approve_require_trusted(defaultfalse). - Layout partial
_device_intelligence_assets.html.twigcallscollect()when enabled and Device Intelligence is installed. - After
LoginSuccess, optional session flagnowo_auth_kit.new_device+NewDeviceLoginNotifierInterface(default no-op) when the observed cluster is new. Does not auto-trust(). - Extra
AuthKitAttemptLimiterconsume keyed by device ULID on register / password-reset request / magic-login request whendevice_rate_limitis true. Missing observation is a no-op. - QR approve:
DeviceIntelligenceQrLoginStepUpdecoratesQrLoginStepUpInterface; whenapprove_require_trustedis true and the bundle is present, requires_device+isTrusted(). DefaultNullQrLoginStepUpis skipped so it does not throw; a custom inner still runs. Device ID is not a credential.
- Profile keys
Changed
- Spec Kit baseline inventory 149/149 (
122PHP +27Resources), including device-intelligence units.
Security
- REQ-SEC-004 re-audit of the 1.19.0 HTTP surface: overall Pass (conditional) / Medium; this delta Low (no new Critical/High). Device ID is not a credential. Login forms, CSRF, LoginThrottle, and remember-me are unchanged. AuthKit never auto-
trust()s after login.
Notes
- No application change unless you install the optional package (PHP 8.3+) and set
device_intelligence.enabled: true. Login forms and remember-me are unchanged.
Full Changelog: v1.18.0...v1.19.0