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,
|
||||
])
|
||||
->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,
|
||||
|
|
|
|||
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