Feature

JWT-secured dashboard.

Per-user monitor isolation, by design.

Sessions are JWT-signed, passwords are salted, and every service-layer read/write checks row-level ownership before returning a byte. Optional Google OAuth, plus a superuser role for the admin overview — no surprises in who can see what.

JWT

Session

Salted

Password hash

Per row

Ownership check

Google

OAuth

Stateless JWT sessions

AuthService issues tokens signed with your JWT_SECRET; passport-jwt validates them on every request. No sticky sessions, no Redis-backed login state.

Row-level ownership enforcement

Every service method that reads or writes a monitor, incident or alert contact re-checks monitor.userId === req.user.sub and throws a ForbiddenException otherwise.

Salted password hashing

Passwords are stored as salted hashes — never in plain text — so even a compromised DB dump can’t leak credentials directly.

Optional Google sign-in

Connect a Google account to sign in without a password, plus a separate read-only Analytics scope for the SEO module — both managed independently.

Superuser role

Promote trusted teammates to superuser to manage all users from a dedicated admin screen, without giving them direct database access.

Cascade deletion

Removing a user removes their monitors, checks, incidents and alert contacts in one cascade — no leftover orphans, no ownership ambiguity.

Ready to start monitoring?

Free plan, no credit card required. Add your first monitor in under a minute.

Create a free account →