feat: add filament-only cutover mode and checklist
This commit is contained in:
parent
dbbde9c4f4
commit
8fef3b2603
32
app/Http/Middleware/ForceFilamentUiMiddleware.php
Normal file
32
app/Http/Middleware/ForceFilamentUiMiddleware.php
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
class ForceFilamentUiMiddleware
|
||||||
|
{
|
||||||
|
public function handle(Request $request, Closure $next): Response
|
||||||
|
{
|
||||||
|
if (! (bool) config('netgescon.ui.force_filament', false)) {
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keep Filament panel and non-admin paths untouched.
|
||||||
|
$isLegacyAdminPath = $request->is('admin') || $request->is('admin/*');
|
||||||
|
$isFilamentPath = $request->is('admin-filament') || $request->is('admin-filament/*');
|
||||||
|
|
||||||
|
if (! $isLegacyAdminPath || $isFilamentPath) {
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redirect only navigational requests. Non-GET calls are left as-is.
|
||||||
|
if (! $request->isMethod('GET') && ! $request->isMethod('HEAD')) {
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('/admin-filament');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -59,6 +59,8 @@
|
||||||
GoogleSyncFornitoriRubricaCommand::class,
|
GoogleSyncFornitoriRubricaCommand::class,
|
||||||
])
|
])
|
||||||
->withMiddleware(function (Middleware $middleware) {
|
->withMiddleware(function (Middleware $middleware) {
|
||||||
|
$middleware->append(\App\Http\Middleware\ForceFilamentUiMiddleware::class);
|
||||||
|
|
||||||
// Registra gli alias dei middleware di Spatie Permission (NAMESPACE CORRETTO)
|
// Registra gli alias dei middleware di Spatie Permission (NAMESPACE CORRETTO)
|
||||||
$middleware->alias([
|
$middleware->alias([
|
||||||
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
|
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
|
||||||
|
|
|
||||||
57
docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md
Normal file
57
docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
# Filament-Only Cutover Checklist
|
||||||
|
|
||||||
|
Data aggiornamento: 11-03-2026
|
||||||
|
|
||||||
|
## Obiettivo
|
||||||
|
|
||||||
|
Usare Day-0 in modalita solo Filament, mettendo la UI legacy in archivio operativo senza perdere funzionalita.
|
||||||
|
|
||||||
|
## Impostazione
|
||||||
|
|
||||||
|
1. In `.env` del nodo Day-0/staging:
|
||||||
|
|
||||||
|
```env
|
||||||
|
NETGESCON_FORCE_FILAMENT=true
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Pulizia cache config/route:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php artisan optimize:clear
|
||||||
|
php artisan config:clear
|
||||||
|
php artisan route:clear
|
||||||
|
```
|
||||||
|
|
||||||
|
## Comportamento atteso
|
||||||
|
|
||||||
|
Con flag attivo:
|
||||||
|
|
||||||
|
- richieste `GET /admin/*` vengono redirette a `/admin-filament`
|
||||||
|
- pannello Filament resta operativo
|
||||||
|
- chiamate non GET su `/admin/*` non vengono forzate, per evitare rotture di endpoint tecnici
|
||||||
|
|
||||||
|
Middleware coinvolto:
|
||||||
|
|
||||||
|
- `app/Http/Middleware/ForceFilamentUiMiddleware.php`
|
||||||
|
|
||||||
|
## Verifica rapida
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -I -sS https://staging.netgescon.it/admin | head -n 1
|
||||||
|
curl -I -sS https://staging.netgescon.it/admin/stabili | head -n 1
|
||||||
|
curl -I -sS https://staging.netgescon.it/admin-filament | head -n 1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scope funzionale da verificare in Filament
|
||||||
|
|
||||||
|
1. Ticket mobile e allegati
|
||||||
|
2. Rubrica/nominativi e anagrafica unica
|
||||||
|
3. Calendario e sync Google
|
||||||
|
4. Fornitori e moduli import
|
||||||
|
5. Pagine supporto/QA e collegamenti dashboard
|
||||||
|
|
||||||
|
## Strategia anti-perdita
|
||||||
|
|
||||||
|
1. Legacy materiale resta nel vault locale `_legacy-vault/`.
|
||||||
|
2. Funzioni da migrare al 100% in Filament vanno tracciate con check list "Legacy -> Filament".
|
||||||
|
3. Solo quando una funzione e verificata in Filament si dismette il relativo percorso legacy.
|
||||||
Loading…
Reference in New Issue
Block a user