Unifi-Voucher-Tool/updater/routes.php
Claude 43149074c9
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]
2026-06-05 18:51:51 +00:00

29 lines
1.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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'],
];