Updater-System (OpenNIT-Modell) im isolierten updater/-Ordner
Zieht Quellcode + DB-Migrationen über einen HTTP-Update-Proxy nach. Vollständig isoliert: eigener Namespace Updater\, eigener Autoloader, eigene Settings (updater/storage/updater-settings.json), eigenes Migrations-System (_updater_migrations), eigener AuditLogger. Komponenten (alle in updater/): - UpdateManager: Version/.version, Maintenance, Progress, checkForUpdates, installUpdate (Staging + PROTECTED_PATHS + Migrationen + opcache + finally) - MigrationRunner: MySQL-Tracking, string-/kommentar-bewusster SQL-Splitter, isIgnorableSqlError, 60s-Lockfile-Cache - UpdateController + admin/update.php (dünner Entry-Shim), Inline-Admin-UI mit Channel-Selector, Update-Check, Progress-Bar, Migrations-Tab - UpdaterFactory (zentraler Channel-Fallback), AuditLogger (audit_log) - Templates: maintenance.html, update.php; routes.php (Doku) - README.md mit vollständiger Rückbau-Anleitung Einzige Bestandscode-Änderung: 4-Zeilen-Maintenance-Hook in index.php (markiert mit "// Updater maintenance hook"). Proxy: update.loheide.eu/openvouchertool[-development]
This commit is contained in:
parent
3483da274f
commit
43149074c9
14 changed files with 1374 additions and 0 deletions
29
updater/routes.php
Normal file
29
updater/routes.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/**
|
||||
* Routen-Registrierung fuer den Updater.
|
||||
*
|
||||
* Dieses Projekt besitzt KEIN zentrales Routing-System (Slim/FastRoute/o.ae.) –
|
||||
* die Auslieferung erfolgt datei-basiert ueber den Webserver. Die Updater-Route
|
||||
* `/admin/update` wird daher durch die reale Datei `admin/update.php`
|
||||
* bereitgestellt (duenner Shim -> \Updater\UpdateController).
|
||||
*
|
||||
* Diese Datei existiert, um die Routing-Konvention der Vorlage zu erfuellen und
|
||||
* dokumentiert die einzige Routing-Einklink-Stelle. Sollte das Projekt spaeter
|
||||
* einen echten Router erhalten, koennen hier die Routen registriert werden:
|
||||
*
|
||||
* $router->get('/admin/update', fn() => (new \Updater\UpdateController($db, $auth))->handle());
|
||||
* $router->post('/admin/update', fn() => (new \Updater\UpdateController($db, $auth))->handle());
|
||||
*
|
||||
* Aktuelle Endpunkte (alle ueber admin/update.php, Parameter `action`):
|
||||
* GET /admin/update.php -> Admin-UI
|
||||
* GET /admin/update.php?action=check -> Update-Pruefung (JSON)
|
||||
* GET /admin/update.php?action=progress -> Fortschritt (JSON)
|
||||
* GET /admin/update.php?action=migrations-> Migrations-Status (JSON)
|
||||
* POST /admin/update.php action=install (+csrf_token)
|
||||
* POST /admin/update.php action=set_channel (+csrf_token, channel)
|
||||
*/
|
||||
|
||||
return [
|
||||
['method' => 'GET', 'path' => '/admin/update', 'handler' => 'admin/update.php'],
|
||||
['method' => 'POST', 'path' => '/admin/update', 'handler' => 'admin/update.php'],
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue