ewebovky / status-bundle
Generátor a endpoint pro status.json v Symfony pro Ewebovky.
Package info
github.com/Ewebovky/status-bundle
Type:symfony-bundle
pkg:composer/ewebovky/status-bundle
Requires
- php: ^8.1
- symfony/framework-bundle: ^6.4 || ^7.0 || ^8.0
Requires (Dev)
- doctrine/persistence: ^3.0 || ^4.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^10.5 || ^11.0
- symfony/console: ^6.4 || ^7.0 || ^8.0
Suggests
- doctrine/persistence: Pro zobrazení informací o DB verzi.
- symfony/console: Pro příkaz bin/console ewebovky:status.
README
Lehký Symfony bundle, který poskytuje endpoint /status.json chráněný tokenem a vrací systémové informace (verze PHP, Symfony, DB aj.)
Instalace
composer config --json extra.symfony.endpoint '["flex://defaults","https://raw.githubusercontent.com/Ewebovky/recipes/main/index.json"]' composer config extra.symfony.allow-contrib true composer clear-cache composer require ewebovky/status-bundle:^1.0
Poté (pokud není auto-registrace) do config/bundles.php:
return [ Ewebovky\StatusBundle\EwebovkyStatusBundle::class => ['all' => true], ];
Konfigurace
Do .env zadejte token:
SITE_STATUS_TOKEN=xxxxxxx
A vytvořte config/packages/ewebovky_status.yaml:
ewebovky_status: token: '%env(string:SITE_STATUS_TOKEN)%'
Bez nastaveného tokenu se endpoint chová fail-closed: vrací 403 a zbytek webu nijak neovlivní.
Registrace routy
Routu přidá Flex recipe. Pokud recipe neproběhla, vytvořte config/routes/ewebovky_status.yaml:
ewebovky_status: resource: '@EwebovkyStatusBundle/Resources/config/routes.php'
Bez tohohle kroku endpoint neexistuje a vrací 404 — samotná instalace bundlu routu nezaregistruje.
Ověření: bin/console debug:router ewebovky_status_json.
Volání endpointu
GET /status.json
Authorization: Bearer xxxxxxx
– nebo –
GET /status.json
X-Status-Token: xxxxxxx
– nebo –
GET /status.json?token=xxxxxxx
Odpověď nese ETag, takže při opakovaném dotazu s If-None-Match vrátí 304 bez těla.
Výpis z příkazové řádky
Stejná data jde získat i bez HTTP a bez tokenu — hodí se do deploy skriptů a při ladění.
Vyžaduje symfony/console; bez ní se příkaz jen nezaregistruje.
bin/console ewebovky:status
bin/console ewebovky:status --json | jq .phpVersion
bin/console ewebovky:status --host=muj-web.cz
Vývoj
composer install composer test # PHPUnit composer phpstan # statická analýza
Autor
Václav Pavlů – Ewebovky, pavlu@ewebovky.cz
Zdrojový kód: github.com/Ewebovky/status-bundle
Licence
Vydáno pod licencí MIT.