d2d.emegrendeles.hu/config/deployment.php
E98Developer 09eed3eeb3 ADD Deployment csomagoló phase1 védelem, git olvasó és read-only commit/diff felület
Két commit közötti fájlok összegyűjtését előkészítő felület első fázisa: célkörnyezet
választás (e2e/d2d), commitlista, diff-előnézet figyelmeztetésekkel. Ez a fázis még
semmit nem ír a fájlrendszerre, a csomagolás a phase2-ben érkezik.

- DeploymentGuard: .env kapcsoló + hardkódolt stage whitelist + developer szerep +
  feature flag; a flag szándékosan nem biztonsági réteg, csak láthatóság-vezérlés
- GitRepository: csak olvasó wrapper, argumentum-tömbös Symfony Process (nincs shell),
  hash- és referencia-validáció, core.quotePath=false az ékezetes útvonalakhoz
- ChangeSetAnalyzer: kizárási lista, törlendő/másolandó szétválasztás (átnevezésnél
  mindkettő), figyelmeztetések migrációra, composer.lock-ra és a nem verziókövetett
  fordított assetekre

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 06:45:09 +02:00

128 lines
3.9 KiB
PHP

<?php
return [
/*
|--------------------------------------------------------------------------
| Fő kapcsoló (1. védelmi réteg)
|--------------------------------------------------------------------------
|
| A deployment csomagoló KIZÁRÓLAG fejlesztői gépen futhat. Mivel az
| alkalmazás kódja manuális fájlmásolással kerül a szerverekre, ez az
| oldal fizikailag ott lesz minden környezeten - ezért a bekapcsolás
| .env-ből történik, ami viszont nincs verziókövetve és nem másoljuk.
|
*/
'enabled' => env('DEPLOYMENT_PACKAGE_ENABLED', false),
/*
|--------------------------------------------------------------------------
| Stage whitelist (2. védelmi réteg)
|--------------------------------------------------------------------------
|
| Szándékosan hardkódolt lista, nem env-ből jön: ez fogja meg azt az esetet,
| ha valaki a fenti kapcsolót tévedésből bemásolja egy szerver .env-jébe.
|
*/
'stages' => ['local'],
/*
|--------------------------------------------------------------------------
| Jogosultság (3. réteg) és láthatóság (4. réteg)
|--------------------------------------------------------------------------
|
| A feature flag NEM biztonsági réteg - a védelmet a fenti kettő és a
| szerepkör adja. A flag a menü-láthatóságot vezérli, illetve deploy nélküli
| kikapcsolást és név szerinti átadást tesz lehetővé (feature_flag_overrides).
|
*/
'role' => 'developer',
'feature_flag' => 'DeploymentPackage',
/*
|--------------------------------------------------------------------------
| Git
|--------------------------------------------------------------------------
*/
'repo_path' => base_path(),
'git_binary' => env('DEPLOYMENT_GIT_BINARY', 'git'),
'timeout' => 60,
/*
|--------------------------------------------------------------------------
| Csomagolás
|--------------------------------------------------------------------------
*/
'output_path' => env('DEPLOYMENT_OUTPUT_PATH', storage_path('app/private/deployments')),
'max_files' => 500,
'commit_limits' => [50, 100, 200],
/*
| Ezek soha nem kerülnek csomagba, akkor sem, ha a diffben szerepelnének.
| A minták Str::is() szintaxisúak, a repo gyökeréhez képest relatív úton.
*/
'exclude' => [
'.env',
'.env.*',
'auth.json',
'.git*',
'storage/*',
'vendor/*',
'node_modules/*',
],
/*
| Fájlok, amik csomagolhatók, de külön figyelmeztetést érdemelnek, mert
| önmagukban nem elegendők (kell melléjük egy parancs a célgépen).
*/
'attention' => [
'migration' => ['database/migrations/*'],
'composer' => ['composer.json', 'composer.lock'],
'asset' => [
'resources/js/*',
'resources/css/*',
'resources/modern/*',
'vite.config.js',
'webpack.mix.js',
'package.json',
'package-lock.json',
],
],
/*
|--------------------------------------------------------------------------
| Célkörnyezetek
|--------------------------------------------------------------------------
|
| Az expected_branch csak figyelmeztetést vezérel, nem tiltást.
| A remote_path a shared storage útvonala (ld. docs/cicd-context.md).
|
*/
'targets' => [
'e2e' => [
'label' => 'e2e — t2t éles',
'domain' => 'e2e.emegrendeles.hu',
'remote_path' => '/delirest/test.t2t.emegrendeles.hu/app/',
'expected_branch' => 'main',
],
'd2d' => [
'label' => 'd2d — fejlesztői',
'domain' => 'd2d.emegrendeles.hu',
'remote_path' => '/delirest/d2d.emegrendeles.hu/app/',
'expected_branch' => 'test',
],
],
];