073-unified-managed-tenant-onboarding-wizard
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 971105daa9 |
057-filament-v5-upgrade (#66)
Summary: Upgrade Filament to v5 (Livewire v4), replace Filament v4-only plugins, add first-party JSON renderer, and harden Monitoring/Ops UX guardrails. What I changed: Composer: upgraded filament/filament → v5, removed pepperfm/filament-json and lara-zeus/torch-filament, added torchlight/engine. Views: replaced JSON viewer with json-viewer.blade.php and updated snapshot display. Tests: added DB-only + tenant-isolation guard tests under Monitoring and OpsUx, plus Filament smoke tests. Specs: added/updated specs/057-filament-v5-upgrade/* (spec, tasks, plan, quickstart, research). Formatting: ran Pint; ran full test suite (641 passed, 5 skipped). Validation: Ran ./vendor/bin/sail artisan test (full suite) — all tests passed. Ran ./vendor/bin/sail pint --dirty — formatting applied. Ran npm run build locally (Vite) — assets generated. Notes / Rollback: Rollback: revert composer.json/composer.lock and build assets; documented in quickstart.md. One pending app migration was noted during validation; ensure migrations are applied in staging before deploy. Reviewers: @frontend, @backend (adjust as needed) Spec links: spec.md tasks.md quickstart.md Co-authored-by: Ahmed Darrazi <ahmeddarrazi@adsmac.local> Reviewed-on: #66 |
|||
| bd6df1f343 |
055-ops-ux-rollout (#64)
Kurzbeschreibung Implementiert Feature 055 — Ops‑UX Constitution Rollout v1.3.0. Behebt: globales BulkOperationProgress-Widget benötigt keinen manuellen Refresh mehr; ETA/Elapsed aktualisieren korrekt; Widget verschwindet automatisch. Verbesserungen: zuverlässiges polling (Alpine factory + Livewire fallback), sofortiger Enqueue‑Signal-Dispatch, Failure‑Message‑Sanitization, neue Guard‑ und Regressionstests, Specs/Tasks aktualisiert. Was geändert wurde (Auszug) InventoryLanding.php bulk-operation-progress.blade.php OperationUxPresenter.php SyncRestoreRunToOperationRun.php PolicyResource.php PolicyVersionResource.php RestoreRunResource.php tests/Feature/OpsUx/* (PollerRegistration, TerminalNotificationFailureMessageTest, CanonicalViewRunLinksTest, OperationCatalogCoverageTest, UnknownOperationTypeLabelTest) InventorySyncButtonTest.php tasks.md Tests Neue Tests hinzugefügt; php artisan test --group=ops-ux lokal grün (alle relevanten Tests laufen). How to verify manually Auf Branch wechseln: 055-ops-ux-rollout In Filament: Inventory → Sync (oder relevante Bulk‑Aktion) auslösen. Beobachten: Progress‑Widget erscheint sofort, ETA/Elapsed aktualisiert, Widget verschwindet nach Fertigstellung ohne Browser‑Refresh. Optional: ./vendor/bin/sail exec app php artisan test --filter=OpsUx oder php artisan test --group=ops-ux Besonderheiten / Hinweise Einzelne, synchrone Policy‑Actions (ignore/restore/PolicyVersion single archive/restore/forceDelete) sind absichtlich inline und erzeugen kein OperationRun. Bulk‑Aktionen und restore.execute werden als Runs modelliert. Wenn gewünscht, kann ich die inline‑Actions auf OperationRunService umstellen, damit sie in Monitoring → Operations sichtbar werden. Remote: Branch ist bereits gepusht (origin/055-ops-ux-rollout). PR kann in Gitea erstellt werden. Links Specs & tasks: tasks.md Monitoring page: Operations.php Co-authored-by: Ahmed Darrazi <ahmeddarrazi@adsmac.local> Reviewed-on: #64 |
|||
| 060a82a1ed |
feat/048-backup-restore-ui-graph-safety (#55)
Feature 048: Backup/Restore UI Graph-Safety (Phase 1) Dieses PR entfernt Microsoft Graph Calls aus UI-Renderpfaden (Filament/Livewire mount/render/options/typeahead/labels) in den kritischen Backup/Restore Screens und fügt Fail-Hard Guard Tests hinzu, die regressionssicher verhindern, dass UI-Rendering wieder Graph aufruft. ⸻ Motivation Backup/Restore UI wurde teilweise “fragil”, weil UI-Komponenten (z.B. Group Typeahead/Option Labels) Graph/Entra direkt beim Rendern triggern konnten. Das führt zu: • langsamen/unstabilen Seiten (429/Timeout/Permissions) • schwer reproduzierbaren UI-Fehlern im MSP-Scale • unnötiger Kopplung von “Page render” an Graph-Verfügbarkeit Ziel: UI muss DB-only rendern; Graph darf nur in Jobs/Run-Execution stattfinden. ⸻ Scope / Changes 1) Restore Wizard: Entfernt Graph-Typeahead & Label-Resolution • Group Mapping ist jetzt DB-only: • manuelle GUID Eingabe / Skip • GUID Validation • Helper Text, wo die Object ID zu finden ist • Keine Graph calls mehr in options() / getOptionLabelUsing() / typeahead beim Rendern. 2) Fail-Hard Guard Tests (Graph-Safety) • Neue Test-Infrastruktur: FailHardGraphClient (GraphClientInterface darf nicht aufgerufen werden) • Guard Tests als Pest Feature Tests (HTTP GET): • Backup Sets Index rendert mit fail-hard Graph client • Restore Wizard Route rendert mit fail-hard Graph client • Assertions: • 200 OK • plus stable UI marker string • Masking/Fallback Format ist deterministisch: Unresolved (…<last8>) 3) Spec/Plan/Tasks/Checklist • Spec 048 aktualisiert, Tasks abgehakt • requirements.md Checklist Gate: PASS ⸻ Out of Scope / Non-Goals • Kein Umbau der “Execution”-Actions zu Jobs (Capture snapshot, Restore rerun, Dry-Run execution etc.) → eigener Folge-Spec (Phase 2). • Keine Entra Group Name Resolution (separates Group-Inventory/Cache Feature). • Keine neuen Tabellen/Migrations in Phase 1. ⸻ How to verify (manual) Mit absichtlich kaputtem Tenant/Auth (Graph failt): 1. Öffne Backups & Restore → Backup Sets ✅ muss laden (UI render DB-only) 2. Öffne Restore Runs → Create Restore Run (Wizard) ✅ muss laden, kein Group-Typeahead mehr 3. Starte eine Restore Operation ❌ darf fehlschlagen (Graph kaputt) – wichtig ist: Render bleibt stabil, Run zeigt Fehler sauber pro Item. ⸻ Tests / Validation Executed: • ./vendor/bin/pint --dirty ✅ • ./vendor/bin/sail artisan test tests/Feature/Filament/BackupSetGraphSafetyTest.php tests/Feature/Filament/RestoreWizardGraphSafetyTest.php ✅ • (optional) Combined targeted suite ✅ ⸻ Notes • This PR intentionally focuses on UI Graph-Safety only. • Any future reintroduction of Graph search/typeahead in UI must go through contracts first and be executed asynchronously, never in UI render paths. Co-authored-by: Ahmed Darrazi <ahmeddarrazi@adsmac.local> Reviewed-on: #55 |