You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(frontend): asset inventory on the redesign layout #906
Subtitle with asset count, critical count and agent coverage.
"Voir la topologie" and "Lancer une découverte" actions.
Search field and type pills with counts.
Table: asset (name and slug), type with icon, criticality pill, owner, location, risk count, vulnerability count with KEV tag, last scan.
Rows open our existing asset drawer; import and schema features stay reachable.
Definition of done
The screen matches the design at 1440×900 in dark and light, checked side by side in a real browser; the comparison and any deliberate difference are written on this issue.
Loading skeleton, error with retry, and empty state exist for every block.
FR and EN strings, no hard-coded copy.
npx tsc -b --noEmit, npx vitest run on the touched features, and npx eslint on the touched files pass.
Backend changes, if any, come with TestXxx_Success, TestXxx_NotFound, TestXxx_Unauthorized, filter by tenant_id, and go test ./... passes.
Done — owner feedback on the pills: replaced by design-system tabs on schema categories (with counts, keyboard, keyline) and a "KEV seulement" toggle; toolbar is one line at 1440 and 1280. Commit 875cd22. Verified — npx vitest run 1054/1054, tsc clean, live at 1440 dark and 1280 light. Next — asset analysis in the drawer is its own issue (#937).
Activity
alex-dembele commentedon Oct 10, 2026
inventory redesign — 2026-10-10
Done — PR #936 on
feat/906-assets, stacked on #933. Backend:GET /assets/exposure(application/vulnerability/asset_exposure.go,ExposureByAssetinrepository/gorm_vulnerability_repository.go,handler/asset_exposure_handler.go, isolation decision, OpenAPI). Frontend:features/assets/InventoryPage.tsxrebuilt,inventoryRow.ts,useAssetExposure.ts,DiscoverButton.tsx, fr/eninventory.*; DataTable gains optionalsearchClassName.Verified —
go test ./...all ok ·npx tsc -b --noEmitclean · eslint + prettier clean on touched files ·npx vitest run1054/1054 · live on Postgres at 1440 dark/light, 1280 light, 600 px: no page overflow, drawer opens from a row, discovery routes correctly, no console errors.Criteria — 1 ✅ (coverage explicitly "non mesurée" until #910) · 2 ✅ (discovery runs a real scan) · 3 ✅ · 4 ✅ ("Dernière détection" instead of "Dernier scan", explained) · 5 ✅ (drawer; import, schemas, creation in the "…" menu)
Next — merge #932 → #933 → #936. Then #907 topology (owner notes D-069 D on that issue).
Blocked on — nothing.
refactor(assets): category tabs and a KEV toggle instead of type pills (
alex-dembele commentedon Oct 10, 2026
filters reworked — 2026-10-10
Done — owner feedback on the pills: replaced by design-system tabs on schema categories (with counts, keyboard, keyline) and a "KEV seulement" toggle; toolbar is one line at 1440 and 1280. Commit 875cd22.
Verified —
npx vitest run1054/1054, tsc clean, live at 1440 dark and 1280 light.Next — asset analysis in the drawer is its own issue (#937).
Merge pull request #936 from opendefender/feat/906-assets