Repository navigation
Releases: nowo-tech/SiteBackupBundle
Releases · nowo-tech/SiteBackupBundle
Release list
Release v1.16.0
Release v1.16.0
Changelog
Added
setup.worker_memo(schema_probe_ttl, default60;progress_ddl_ttl, default3600): per-worker TTL memos (Setup\Memo\WorkerTtlMemo, deliberately notResetInterface) so FrankenPHP workers stop probinginformation_schemaand runningCREATE TABLE IF NOT EXISTSon every request.MemoizedSchemaExistenceCheckerwraps the cold-startMysqlSchemaExistenceChecker;DoctrineConnectDetector/DoctrineSchemaEmptyDetectorreuse a healthy answer;DoctrineDbalSetupProgressStorage/DoctrineDbalSetupStepJournalremember the DDL acrosskernel.reset. Only positive answers are cached; a dropped table is still re-created on the first failing query.0restores the previous behaviour.bump_time_limit(defaultfalse) +bump_time_limit_seconds(defaultnull=process_timeout;0= unlimited):LongRequestTimeLimitSubscribercallsset_time_limit()on main requests under the setup prefix (incl./{locale}variants) and the panel prefix, so migrate / dump / restore subprocesses are not killed mid-pipe by a short prodmax_execution_time.nowo:site-backup:db-dump: built-inbackup.database_dump_command—mysqldumpfromDATABASE_URL(or--url), password viaMYSQL_PWD(never argv),--single-transaction --no-tablespaces, no--routines(restore replays through PDO), optional--skip-ssl-verify-server-cert(MariaDB client),--binary, repeatable-ooptions. Pure argv builder:Database\MysqlDumpCommandFactory.security_guard(opt-in, defaultenabled: false):ProductionSecretsGuardSubscriberfails closed outsidelocal_environments(defaultdev,test) on HTTP requests and console commands when the setup token, panel password hash orAPP_SECRETare empty, listed placeholders or (APP_SECRET) shorter than 16 characters. Skipscache:clear,cache:warmup,assets:install,nowo:site-backup:hash-password.
Changed
- CSP: inline script and style tags in the restore page, setup and panel layouts, wizard and panel index carry
noncefrom the request attributecsp_noncewhen present (nowo-tech kit convention). Panel restore / delete confirms usedata-nowo-confirm+ one delegated nonce'd listener instead ofonsubmit="return confirm(…)". Inlinestyle=""attributes were replaced by classes (wizard progress bar is now a<progress class="bar">element). - Docs:
setup.reopen_when_detector_requiresdocuments its cost (one detector pass per request).
Full Changelog: v1.15.1...v1.16.0
Release v1.15.1
v1.15.1
Changelog
Fixed
- Tests:
DetectorsTestno longer uses an anonymousreadonlyclass (PHP 8.3+), so the suite parses on PHP 8.2.
Changed
- Dependencies (lock refresh): UiKitBundle 1.9.1; dev PHPStan 2.3.1 (+ phpunit/symfony extensions 2.1), PHPUnit 10.5.66, Rector 2.7.0,
nowo-tech/phpstan-frankenphp1.2.3. - Demo (Symfony 8): regenerated
config/reference.php.
Full Changelog: v1.15.0...v1.15.1
Release v1.15.0
Release v1.15.0
Add setup.reopen_when_detector_requires, SetupWizardReopener and DurableSetupDoneStoreInterface::clearDone().
Changelog
Added
setup.reopen_when_detector_requires(defaultfalse, BC): whentrue,short_circuit_when_doneno longer hides detectors. Ifsetup.doneor the durable store says complete but a taggedSetupNeedDetectorInterfacestill reports setup required (e.g. platform catalogs wiped),SetupNeedEvaluatorclearssetup.done, callsDurableSetupDoneStoreInterface::clearDone()and resets wizard progress so the wizard can run again. Costs one detector pass per request.SetupWizardReopener(public service): kit-side helper (reopen(),resetProgress()) so hosts no longer copy the clear-done / reset-progress logic into their own subscribers.DurableSetupDoneStoreInterface::clearDone(): void(SPI).NullDurableSetupDoneStoreimplements it as a no-op.
Changed
- BC note (SPI): custom
DurableSetupDoneStoreInterfaceimplementations must addclearDone()(no-op is acceptable if the host does not want the bundle to clear its durable flag).
Fixed
- Tests: avoid PHP 8.4-only
new Foo()->method()chaining inUnlocalizedDefaultLocaleSubscriberTestso PHP 8.2/8.3 CI jobs parse the suite.
What's Changed
- chore(deps): bump the symfony group with 2 updates by @dependabot[bot] in #24
- chore(deps): bump nowo-tech/ui-kit-bundle from 1.8.4 to 1.8.5 by @dependabot[bot] in #25
Full Changelog: v1.14.3...v1.15.0
Release v1.14.3
Release v1.14.3
Changelog
Fixed
setup.locale.unlocalized: serve:UnlocalizedDefaultLocaleSubscriberforcessetup.locale.defaultat request time on SiteBackup*_unlocalizedroutes (after SymfonyLocaleListener), so bare/setupstays correct when the compiled route_localedefault was warmed with a different value (Docker image build vs runtime env). Registered only when setup is enabled,in_path: both, andunlocalized: serve.
What's Changed
- chore(deps): bump nowo-tech/ui-kit-bundle from 1.8.3 to 1.8.4 by @dependabot[bot] in #22
- fix(locale): force setup.locale.default on *_unlocalized serve routes by @HecFranco in #23
Full Changelog: v1.14.2...v1.14.3
Release v1.14.2
Release v1.14.2
Changelog
Security
- Empty
security.access_rolesis fail-closed (deny) unlessallow_unauthenticatedor a customaccess_checkeris set.
Full Changelog: v1.14.1...v1.14.2
Release v1.14.1
v1.14.1
Changelog
Added
- REQ-CS-008:
igor-php/igor-php(require-dev only), rootigor.json, Composer/Makefileigortarget, andrelease-checkwiring for FrankenPHP worker-state audit.
Changed
- Worker safety (Igor): justified
// @igor-ignoreannotations and/orResetInterface/ request-scoped fixes somake igorpasses on packagesrc/.
Full Changelog: v1.14.0...v1.14.1
Release v1.13.5
v1.13.5
Changelog
Changed
- Tests: coverage-completion cases for schema checker, setup journal, DI, and panel forms (REQ-TEST-003).
- Tests: extract
FakeDbalConnection/FakeDbalResult/FakeDurableSetupDoneStoreso coverage tests can autoload and subclass them.
Full Changelog: v1.13.0...v1.13.5
Release v1.14.0
Release v1.14.0 - FrankenPHP worker mode (reset false) + worker restart signal
Changelog
Added
- Worker restart signal (FrankenPHP worker mode):
Worker\WorkerRestartSignalwritesvar/site-backup/worker-restart.requiredand dispatchesEvent\WorkerRestartRequiredEventafter a restore applied files, aftercache_clear, and afterdatabase_urlwrote.env.local. Commandnowo:site-backup:worker-restartshows the signal (exit code3when a restart is required) and clears it with--clear. ConditionalAnswerStep::getInner().- Audit document FRANKENPHP-WORKER-AUDIT.md (scenario B: kernel not reset between requests).
Fixed
- Worker mode (scenario B):
DoctrineDbalSetupProgressStorageandDoctrineDbalSetupStepJournalno longer trust a stale "schema ensured" flag for the life of the worker. When a query fails after the table was created earlier in the process (database dropped / recreated), the table is re-created and the query retried once. Both services implementResetInterface(kernel.reset); correctness does not depend on the resetter. - Cold-start PDO fallback sets
PDO::ATTR_TIMEOUT(5 s). - PHPStan findings cleared (level 8).
Documentation
- UPGRADING.md From 1.13.8 to 1.14.0; DEMO-FRANKENPHP.md links the worker audit.
What's Changed
- chore(deps): bump friendsofphp/php-cs-fixer from 3.95.22 to 3.95.23 by @dependabot[bot] in #18
- chore(deps): bump the symfony group with 2 updates by @dependabot[bot] in #19
- chore(deps): bump friendsofphp/php-cs-fixer from 3.95.23 to 3.95.24 by @dependabot[bot] in #20
- chore(deps): bump the symfony group with 2 updates by @dependabot[bot] in #21
Full Changelog: v1.13.8...v1.14.0
Release v1.13.8
Release 1.13.8
See docs/CHANGELOG.md for details.
Changelog
Changed
- Docs: PHP-FIG PSR evaluation (REQ-CS-007).
- Style: PHP CS Fixer alignment.
Notes
- No API or configuration changes for integrators unless noted above.
What's Changed
- chore(deps): bump friendsofphp/php-cs-fixer from 3.95.18 to 3.95.20 by @dependabot[bot] in #17
- chore(deps): bump nowo-tech/ui-kit-bundle from 1.7.0 to 1.8.2 by @dependabot[bot] in #16
Full Changelog: v1.13.7...v1.13.8
Release v1.13.7
Release v1.13.7
Changelog
Added
setup.short_circuit_when_done(defaulttrue):SetupNeedEvaluatorskips all need detectors when thesetup.donemarker exists orDurableSetupDoneStoreInterface::isDone()is true. Avoids repeated Doctrine / host catalog probes on every request after setup. Setfalseonly if a host detector must re-open the gate after done.
Full Changelog: v1.13.6...v1.13.7