Part-DB-server/src/Services
Sebastian Almberg 42fe781ef8 Add Update Manager for automated Part-DB updates
This feature adds a comprehensive Update Manager similar to Mainsail's
update system, allowing administrators to update Part-DB directly from
the web interface.

Features:
- Web UI at /admin/update-manager showing current and available versions
- Support for Git-based installations with automatic update execution
- Maintenance mode during updates to prevent user access
- Automatic database backup before updates
- Git rollback points for recovery (tags created before each update)
- Progress tracking with real-time status updates
- Update history and log viewing
- Downgrade support with appropriate UI messaging
- CLI command `php bin/console partdb:update` for server-side updates

New files:
- UpdateManagerController: Handles all web UI routes
- UpdateCommand: CLI command for running updates
- UpdateExecutor: Core update execution logic with safety mechanisms
- UpdateChecker: GitHub API integration for version checking
- InstallationTypeDetector: Detects installation type (Git/Docker/ZIP)
- MaintenanceModeSubscriber: Blocks user access during maintenance
- UpdateExtension: Twig functions for update notifications

UI improvements:
- Update notification in navbar for admins when update available
- Confirmation dialogs for update/downgrade actions
- Downgrade-specific text throughout the interface
- Progress page with auto-refresh
2026-01-30 21:36:33 +01:00
..
Attachments Use xxh3 for generating hash keys instead of md5 as it offers better performance 2026-01-03 00:55:49 +01:00
Cache Do not use the wrong language for trees when no user is logged in 2026-01-18 23:44:11 +01:00
Doctrine Show in server info page which natural sorting method is used 2024-07-28 14:13:34 +02:00
EDA Set "Excluded from sim" to false by default for new categories to avoid annoying symbol at kicad parts. 2026-01-18 22:35:37 +01:00
EntityMergers Use AutowireIterator instead of deprecated TaggedIterator 2025-11-30 15:43:25 +01:00
Formatters Fixed warning on PHP8.5 2025-10-17 22:39:58 +02:00
ImportExportSystem Support dynamic supplier SPNs in BOM import comments (#1208) 2026-01-25 21:32:14 +01:00
InfoProviderSystem Update OEMSecretsProvider.php (#1187) 2026-01-13 12:53:22 +01:00
LabelSystem Added custom part status (#1053) 2025-10-27 21:58:16 +01:00
LogSystem Merge branch 'master' into settings-bundle 2025-01-17 22:06:18 +01:00
Misc Show in server info page which natural sorting method is used 2024-07-28 14:13:34 +02:00
OAuth Applied rector suggestions 2024-06-22 00:31:43 +02:00
Parameters Dont split up links when extracting parameters from notes and description 2024-01-06 15:14:07 +01:00
Parts Simple batch processing 2025-08-31 22:16:27 +02:00
ProjectSystem Use yellow alert box for notifying of empty bom on build, show infinite correclty and added translations 2025-10-18 23:32:20 +02:00
System Add Update Manager for automated Part-DB updates 2026-01-30 21:36:33 +01:00
Tools Use central banks of czechia, turkey and romania as a free provider for their currencies exchange rates 2025-09-05 19:56:01 +02:00
TranslationExtractor Applied rector with PHP8.1 migration rules 2023-06-11 14:17:19 +02:00
Trees Add Update Manager for automated Part-DB updates 2026-01-30 21:36:33 +01:00
UserSystem Added custom part status (#1053) 2025-10-27 21:58:16 +01:00
ElementTypeNameGenerator.php Implemented the ability to set user-defined synonyms/labels for internal element types 2025-11-12 21:35:02 +01:00
ElementTypes.php Implemented the ability to set user-defined synonyms/labels for internal element types 2025-11-12 21:35:02 +01:00
EntityURLGenerator.php Added custom part status (#1053) 2025-10-27 21:58:16 +01:00