markenstuermer / t3adminer
Adminer as BE module to work with the database. Fork of jigal/t3adminer for TYPO3 13 and 14.
Package info
gitlab.com/msr-public/t3adminer
Type:typo3-cms-extension
pkg:composer/markenstuermer/t3adminer
Requires
- php: ^8.2 || ^8.3 || ^8.4 || ^8.5
- ext-phar: *
- typo3/cms-backend: ^13.4 || ^14.3
- typo3/cms-core: ^13.4 || ^14.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.90
- helmich/typo3-typoscript-lint: ^3.3
- overtrue/phplint: ^9.6
- phpmd/phpmd: ^2.15
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5 || ^11.0
- rector/rector: ^2.2
- squizlabs/php_codesniffer: ^4.0
- typo3/testing-framework: ^9.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
markenstuermer/t3adminer adds Adminer to the TYPO3 backend as a compact
database maintenance module. The extension is intended for trusted technical
users who need quick access to the TYPO3 database without adding a separate
database administration application to the project.
The TYPO3 extension key is markenstuermer_t3adminer.
Compatibility
| Component | Supported versions |
|---|---|
| TYPO3 CMS | 13.4 LTS, 14.3+ |
| PHP | 8.2, 8.3, 8.4, 8.5 |
| PHP extensions | phar |
Installation
Install the package in a TYPO3 project:
composer require markenstuermer/t3adminer
For local package development, add this repository as a Composer path repository in the host project and require the development version:
composer require markenstuermer/t3adminer:@dev
After installation, clear TYPO3 caches and open the Adminer backend module as a system maintainer.
Configuration
The extension configuration controls access and file locations:
IPaccess: optional comma-separated allowlist for client IP addresses.applyDevIpMask: additionally enforce TYPO3's globaldevIPmask.exportDirectory: private directory for server exports, outside the public web root. Leave empty forvar/adminer/exports. The formerfileadmindefault (also with a trailing slash or as an absolute public/fileadmin path) uses this private directory automatically. Existing settings and files are not modified. Other public export paths remain invalid and require explicit reconfiguration.uploadDir: readable directory containingadminer.sqlfor server-side imports. Browser file uploads continue to use PHP's upload handling.
Configured relative paths resolve from the public document root. Export files are created exclusively; existing files are never overwritten. Export and import directories must be available to the PHP process.
Security Notes
Adminer gives direct database access. Use this module only in projects where system maintainer access is tightly controlled. In staging or production contexts, configure IP restrictions and avoid leaving database export files in publicly reachable locations.
All Adminer requests use the TYPO3 backend authentication stack and require a
current system maintainer session. The old direct t3adminer.php URL returns 403.
Adminer login and permanent-login POSTs are disabled; modifying requests require
the Adminer session's CSRF token. Embedding is limited to the same origin.
The bundled engine is AdminerEvo 4.8.4 with local integration patches (controlled
exit handling, buffered responses and PHP compatibility adjustments). This is
not an upgrade to the current upstream Adminer release. The security changes
still require integration testing on TYPO3 13/14 before production deployment.
Responses are buffered before TYPO3 emits them; progressive query output and
in-response query-timeout cancellation are currently limited by this adapter.
Connections configured with unix_socket are currently rejected explicitly;
use a supported TCP connection when evaluating this version.
Development
Install dependencies:
composer install
Common checks:
composer lint
composer qa
composer refactoring
composer test
composer lint covers Composer metadata, PHP syntax (including the embedded
engine), PHP style, debug markers,
TypoScript files if present, and PHPCS checks. composer qa runs PHPStan and
PHPMD. composer refactoring runs Rector in dry-run mode. Unit regression tests
live in Tests/Unit; functional tests belong in Tests/Functional. Local tool
configuration lives in Build/QA/. CLI tests do not verify native response
headers or authenticated browser workflows. Full TYPO3 13/14 and PHP version
matrix testing remains necessary; source review is not release approval.
Releases
1.1.0
- Keeps the hardened TYPO3 backend routing, session binding and CSRF protection.
- Maps the former
fileadminexport default to privatevar/adminer/exportsat runtime without rewriting configuration or moving existing files. - Rejects other public export paths and symlinked public parent directories.
- Adds configuration diagnostics, storage regression tests and updated TYPO3 14 test fixtures.
On upgrade, review existing exports in fileadmin: they are not moved or
protected retroactively. Configure a private export directory or use the default.
Existing public custom export paths must be reconfigured before using the module.
Do not set a Composer version field. Package releases should be created with
Git tags. The TYPO3 ext_emconf.php version starts at 1.0.0 and is independent
from TYPO3 major versions.
Credits
This extension is based on the original jigal/t3adminer extension. Thanks to
Jigal van Hemert and all previous contributors for their work on the TYPO3
Adminer integration.