Fix Review Pack generation UX + notifications #133

Merged
ahmido merged 13 commits from 109-review-pack-export into dev 2026-02-23 19:42:53 +00:00

13 Commits

Author SHA1 Message Date
Ahmed Darrazi
cd23adda1a merge: origin/dev into 109-review-pack-export 2026-02-23 20:39:14 +01:00
Ahmed Darrazi
dc112664df fix: review pack generation UX + notifications 2026-02-23 17:57:29 +01:00
Ahmed Darrazi
58f5519e94 fix: register review_pack.generate in OperationCatalog
Adds label 'Review pack generation' and expected duration (60s) for
the tenant.review_pack.generate operation type so it no longer shows
as 'Unknown operation' in the Operations UI.
2026-02-23 16:43:33 +01:00
Ahmed Darrazi
6c3bfb79dd fix: nav architecture — Review Packs to Reporting group, fix duplicate Inventory, normalize header CTA colors
- Move ReviewPackResource from 'Monitoring' to new 'Reporting' nav group
- Fix duplicate 'Inventory' sidebar entries: set $navigationGroup + $navigationLabel on InventoryCluster so it renders inside 'Inventory' group as 'Items'
- Change header CTA button color from warning to primary on ListInventoryItems and ListEntraGroups
2026-02-23 16:29:54 +01:00
Ahmed Darrazi
ec12c5b7a5 merge: agent session work — spec 109 complete 2026-02-23 15:59:19 +01:00
Ahmed Darrazi
a3fcfd23f3 fix(109): declare missing ActionSurface slots for ReviewPackResource
- ListRowMoreMenu: exempt (only 2 primary row actions)
- ListBulkMoreGroup: exempt (no bulk operations)
- DetailHeader: satisfied (Download + Regenerate actions)
2026-02-23 15:58:23 +01:00
Ahmed Darrazi
2a1a708716 feat(109): complete Review Pack Export v1 — Phases 3-8
- ReviewPackService: generate, fingerprint dedupe, signed download URL
- GenerateReviewPackJob: 12-step pipeline, ZIP assembly, failure handling
- ReviewPackDownloadController: signed URL streaming with SHA-256 header
- ReviewPackResource: list/view pages, generate/expire/download actions
- TenantReviewPackCard: dashboard widget with 5 display states
- ReviewPackPolicy: RBAC via REVIEW_PACK_VIEW/MANAGE capabilities
- PruneReviewPacksCommand: retention automation + hard-delete option
- ReviewPackStatusNotification: database channel, ready/failed payloads
- Schedule: daily prune + entra admin roles, posture:dispatch deferred
- AlertRuleResource: hide sla_due from dropdown (backward compat kept)
- 59 passing tests across 7 test files (1 skipped: posture deferred)
- All 36 tasks completed per tasks.md
2026-02-23 11:00:47 +01:00
Ahmed Darrazi
99081b3938 feat: 109 Phase 1+2 — migration, model, factory, enums, badges, config 2026-02-23 10:13:40 +01:00
Ahmed Darrazi
80f96df3d2 fix: 109 remediate 12 consistency findings from project analysis 2026-02-23 09:38:43 +01:00
Ahmed Darrazi
fb87a0e177 tasks: 109 review pack export - implementation task breakdown
36 tasks across 8 phases organized by user story (US1-US5).
Phase 1-2: Setup + Foundational (migration, model, enums, config, badge).
Phase 3: US1 Generate+Download (P1 MVP) - service, job, controller, resource, widget.
Phase 4: US2 Fingerprint Dedupe (P2) - dedupe edge case tests.
Phase 5: US3 RBAC Enforcement (P2) - policy + authorization tests.
Phase 6: US4 Retention+Prune (P3) - command, schedule, AlertRule cleanup.
Phase 7: US5 Schedule Wiring (P3) - scan dispatch verification.
Phase 8: Polish - pint, test suite, e2e validation.
2026-02-23 09:20:22 +01:00
Ahmed Darrazi
ce8aa1c54b plan: 109 review pack export - research, data model, contracts, quickstart 2026-02-23 03:12:33 +01:00
Ahmed Darrazi
d4cbe7b722 spec: 109 clarify — 5 decisions (download URL, RBAC expire, stale data, prune grace, storage backend) 2026-02-23 02:50:21 +01:00
Ahmed Darrazi
67e72012fb spec: 109 Tenant Review Pack Export v1 (CSV + ZIP) 2026-02-23 02:41:10 +01:00