ghostguild-org/server/api/admin/alerts
Jennie Robinson Faber 92e7dae74c
Some checks failed
Test / vitest (push) Successful in 11m48s
Test / playwright (push) Failing after 9m50s
Test / visual (push) Failing after 9m19s
Test / Notify on failure (push) Successful in 2s
feat(admin): add restore dismissed alerts flow
Admins can now surface dismissed alert types without waiting for the
underlying data to change. Adds a collapsible "Restore dismissed"
section below the active alerts with per-type checkboxes.

- ALERT_METADATA map in adminAlerts.js as the single source of truth
  for slug → title/severity; detectors refactored to reference it
- GET /api/admin/alerts/dismissed returns this admin's dismissals
  joined with metadata (title, severity, dismissedAt)
- POST /api/admin/alerts/restore deletes dismissals by alertType[],
  returns the deleted count
- AdminAlertsPanel fetches both active + dismissed; stays visible
  when either is non-empty; checkboxes + "Restore selected" button
- adminAlertRestoreSchema validates the POST body against the enum
- Auth guards test covers both new routes
2026-04-08 12:22:35 +01:00
..
dismiss.post.js feat(admin): add POST /api/admin/alerts/dismiss endpoint 2026-04-08 11:20:10 +01:00
dismissed.get.js feat(admin): add restore dismissed alerts flow 2026-04-08 12:22:35 +01:00
index.get.js feat(admin): add GET /api/admin/alerts endpoint 2026-04-08 11:17:50 +01:00
restore.post.js feat(admin): add restore dismissed alerts flow 2026-04-08 12:22:35 +01:00