Release v1.1.0
Release v1.1.0
Ops CLI (enable/disable/status/hash-password), soft bypass, IP exclusions,
JSON 503, calm + idea page templates, and panel UX improvements.
See docs/CHANGELOG.md and docs/UPGRADING.md.
Changelog
Added
- Dev preview route
/_maintenance_preview(on whenkernel.debugby default) to render the configured public maintenance page like Symfony/_error/503. - Console commands
nowo:maintenance-mode:enable,disable,status(exit2when effectively on;--untilon enable), andhash-password. - Soft QA bypass:
security.bypass_tokenvia query parameter and optional HttpOnly cookie. - IP / CIDR exclusions (
exclusions.ips) viaIpUtils(setframework.trusted_proxiesbehind proxies). - PHP attribute
#[ExcludeFromMaintenance]and route default_maintenance_exclude. - Domain events:
MaintenanceEnabledEvent,MaintenanceDisabledEvent,MaintenanceUpdatedEvent. - Twig helpers
nowo_maintenance_is_enabled()andnowo_maintenance_state(). - Panel: clear-schedule action, flash messages, manual vs effectively-on status, logout only when password is required.
- JSON 503 when the client prefers
application/json; dynamicRetry-AfterfromscheduledDisableAt;Cache-Control: no-store. - Six calm framework examples (Bootstrap 5.3, Foundation 6.9, Tailwind CSS 4) plus six “idea” patterns (short, compassionate, playful, brand, countdown, updates) in en / es / it / fr / pt / de / nl; demo gallery at
/examples. - Demo exclusion smoke endpoints +
/examples/bypassguide; docs clarify that the public 503 page must not link to panel login and thatsecurity.password_protectiontoggles the login section.
Changed
- Default 503 page and
default_messageuse friendlier, low-anxiety wording (maintenance.page.*keys). - Listener registered as
kernel.event_listenersosubscriber_priorityis honoured (default 31, after the router; was 32 in 1.0.0). MaintenanceManager::schedule()supportsclearMissing; addedclearSchedule()andisEffectivelyEnabled().
Compatibility
- Unchanged: PHP
>=8.2,<8.6; Symfony^7.0 || ^8.0(CI minors 7.4, 8.0, 8.1).
Full Changelog: v1.0.0...v1.1.0