Skip to content

feat: alerts feed, notifications, onboarding and security hardening#39

Merged
WhiteMuush merged 5 commits into
mainfrom
feat/alerts-and-enterprise
Jun 15, 2026
Merged

feat: alerts feed, notifications, onboarding and security hardening#39
WhiteMuush merged 5 commits into
mainfrom
feat/alerts-and-enterprise

Conversation

@WhiteMuush

Copy link
Copy Markdown
Owner

Summary

Builds out Phase 4 (alerts and notifications) plus onboarding and
several enterprise hardening items.

Alerts

  • Alerts feed page with severity color coding, search, severity/status
    filters and inline acknowledge/resolve (company-scoped PATCH).
  • Open alert count badge in the sidebar.

Notifications

  • Email admins on a new breach exposure via Resend (gated on
    RESEND_API_KEY and EMAIL_FROM, failures never abort a scan).
  • Outbound webhooks: new Webhook model with AES-encrypted URLs, admin
    management on the Data API page (add, enable, test, delete) and a
    minimum severity filter.

Exports

  • Client-side CSV export of the filtered rows on Employees and Alerts.

Onboarding

  • Ephemeral /setup page with a guided checklist; the dashboard
    redirects there only when the workspace is empty (no employees and
    no API key) and /setup redirects back once it is no longer empty.

Performance

  • Background prefetch of the main routes after first paint for instant
    navigation, without blocking access.

Security / refactor

  • In-memory rate limiting on login (brute force) and scan (expensive).
  • Centralized route authorization in requireAuth/requireAdmin, removing
    duplicated guards. Behavior unchanged.

Database

  • Adds the Webhook model (migration 20260615200752_add_webhooks).

All commits pass lint (zero warnings), tsc and build.

WhiteMuush and others added 5 commits June 15, 2026 22:38
When the company has no employees or no breach API key, the
dashboard shows a guided checklist (add employees, add a key, run a
scan) instead of an empty dashboard, plus a short project note.
Dashboard redirects to /setup until the workspace has employees and
an API key; /setup redirects back to /dashboard once ready, so the
page only exists during onboarding.
Gating the dashboard on an API key locked out workspaces that have
employees but no stored key. Redirect to /setup only when there are
no employees and no API key.
After first paint, warm all main route bundles during browser idle
time so subsequent navigation is instant, without blocking access.
@WhiteMuush WhiteMuush merged commit 515f570 into main Jun 15, 2026
10 checks passed
@WhiteMuush WhiteMuush deleted the feat/alerts-and-enterprise branch June 15, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant