feat: add filament-only cutover mode and checklist

This commit is contained in:
michele 2026-03-11 14:45:37 +00:00
parent dbbde9c4f4
commit 8fef3b2603
3 changed files with 91 additions and 0 deletions

View 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');
}
}

View File

@ -59,6 +59,8 @@
GoogleSyncFornitoriRubricaCommand::class,
])
->withMiddleware(function (Middleware $middleware) {
$middleware->append(\App\Http\Middleware\ForceFilamentUiMiddleware::class);
// Registra gli alias dei middleware di Spatie Permission (NAMESPACE CORRETTO)
$middleware->alias([
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,

View 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.