From a13d2d44f472f929502a55b1405a3cf3a52f9b16 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Sun, 1 Mar 2026 08:07:46 +0100 Subject: [PATCH 1/2] fix: use standard TYPO3 XLF label keys for backend modules TYPO3's BaseModule resolves module labels by appending standard key suffixes (mlang_tabs_tab, mlang_labels_tabdescr, mlang_labels_tablabel) to the XLF path. The module XLF files used non-standard keys (title, description, short_description), causing empty labels that trigger DropDownButton validation errors (InvalidArgumentException 1667645426). Rename translation unit IDs in all 4 module XLF files to match the keys TYPO3 expects. Signed-off-by: Sebastian Mendel --- Resources/Private/Language/Modules/audit.xlf | 6 +++--- Resources/Private/Language/Modules/migration.xlf | 6 +++--- Resources/Private/Language/Modules/overview.xlf | 6 +++--- Resources/Private/Language/Modules/secrets.xlf | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Resources/Private/Language/Modules/audit.xlf b/Resources/Private/Language/Modules/audit.xlf index e899081..3d9447d 100644 --- a/Resources/Private/Language/Modules/audit.xlf +++ b/Resources/Private/Language/Modules/audit.xlf @@ -3,13 +3,13 @@
- + Audit Log - + Tamper-evident audit log - + View, filter, and export the complete audit trail with hash chain verification. All operations are logged with actor, timestamp, and cryptographic proof. diff --git a/Resources/Private/Language/Modules/migration.xlf b/Resources/Private/Language/Modules/migration.xlf index e481eeb..cf105ad 100644 --- a/Resources/Private/Language/Modules/migration.xlf +++ b/Resources/Private/Language/Modules/migration.xlf @@ -3,13 +3,13 @@
- + Migration Wizard - + Migrate plaintext secrets to the vault - + Scan your TYPO3 installation for hardcoded credentials and migrate them securely to the vault with automatic TCA field conversion. diff --git a/Resources/Private/Language/Modules/overview.xlf b/Resources/Private/Language/Modules/overview.xlf index 37cbcda..215ef7b 100644 --- a/Resources/Private/Language/Modules/overview.xlf +++ b/Resources/Private/Language/Modules/overview.xlf @@ -3,13 +3,13 @@
- + Vault - + Enterprise secrets management for TYPO3 - by Netresearch - + Securely store and manage application secrets with AES-256-GCM envelope encryption, role-based access control, and tamper-evident audit logging. Built by Netresearch DTT GmbH. diff --git a/Resources/Private/Language/Modules/secrets.xlf b/Resources/Private/Language/Modules/secrets.xlf index a73dcbf..830d308 100644 --- a/Resources/Private/Language/Modules/secrets.xlf +++ b/Resources/Private/Language/Modules/secrets.xlf @@ -3,13 +3,13 @@
- + Secrets - + Manage encrypted secrets - + Create, view, rotate, enable/disable, and delete secrets. All data is encrypted with AES-256-GCM using envelope encryption. From 04567a25eb99de58729d5be9fbc5c3d1044954a4 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Sun, 1 Mar 2026 08:21:26 +0100 Subject: [PATCH 2/2] fix: use 'tools' parent for v13 compatibility The 'admin' module group was introduced in TYPO3 v14. On v13, only 'tools' exists as the admin tools parent module. Using 'admin' causes the vault modules to silently fail to register on v13. Change to 'tools' which works on both versions: - v13: 'tools' exists natively - v14: 'tools' is an alias for 'admin' Signed-off-by: Sebastian Mendel --- Configuration/Backend/Modules.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Configuration/Backend/Modules.php b/Configuration/Backend/Modules.php index e8f6a0e..147d4ed 100644 --- a/Configuration/Backend/Modules.php +++ b/Configuration/Backend/Modules.php @@ -19,6 +19,10 @@ * - Parent shows submodule overview with cards * - Submodule selector appears in DocHeader * + * Uses 'tools' as parent for v13+v14 compatibility: + * - v13: 'tools' exists natively as the admin tools group + * - v14: 'tools' is an alias for the new 'admin' group + * * Uses LLL:EXT: label format (compatible with TYPO3 v13+v14) */ return [ @@ -26,7 +30,7 @@ // dependsOnSubmodules: true enables the submodule dropdown in DocHeader // showSubmoduleOverview: true prevents redirect to last-used submodule 'admin_vault' => [ - 'parent' => 'admin', + 'parent' => 'tools', 'position' => ['after' => 'admin_sites'], 'access' => 'admin', 'workspaces' => 'live',