How luqmancypher001/sentinel works
Sentinel is a secure-authentication dashboard. Its main workflow takes sign-in credentials through rate and lockout checks, device/location context and risk scoring, then allows, blocks, or requires MFA before issuing a revocable session. Authenticated users can review activity, devices, alerts and security settings, and export audit data. The graph also includes registration, recovery, and dashboard capabilities documented in the README. Some route and UI connections are documented rather than visible in excerpts; unsampled implementation details are not inferred.
Main entry points: page.tsx Dashboard shell · login/route.ts Login decision · register/route.ts Registration · db.ts Prisma database client
Components 24
Web experience
- Dashboard shell
app/page.tsx - Sign-in and MFA
components/auth/AuthScreen.tsx - Overview
components/dashboard/Overview.tsx - Login activity
components/dashboard/ActivityPage.tsx - Security alerts
components/dashboard/AlertsPage.tsx - Trusted devices
components/dashboard/DevicesPage.tsx - Security settings
components/dashboard/SecuritySettings.tsx - Account settings
components/dashboard/AccountSettings.tsx
Authentication workflows
- Auth API routes
app/api/auth - Login decision
app/api/auth/login/route.ts - MFA verification
app/api/auth/verify-mfa/route.ts - Registration
app/api/auth/register/route.ts - Password recovery
app/api/auth - Credential and session services
lib/auth.ts - Security email
lib/email.ts
Risk and protection
- Rate limits and lockout
lib/rate-limiter.ts - Device fingerprinting
lib/fingerprint.ts - Location resolution
lib/geoip.ts - Anomaly scoring
lib/anomaly.ts - Impossible travel
lib/travel.ts
Persistence and audit
- Dashboard API routes
app/api/dashboard - Prisma database client
lib/db.ts - SQLite data model
prisma/schema.prisma
Other components
- User
Connections 37
- User → Dashboard shell: uses
README.md - Dashboard shell → Sign-in and MFA: renders
app/page.tsx - Dashboard shell → Overview: renders
app/page.tsx - Dashboard shell → Login activity: renders
app/page.tsx - Dashboard shell → Security alerts: renders
app/page.tsx - Dashboard shell → Trusted devices: renders
app/page.tsx - Dashboard shell → Security settings: renders
app/page.tsx - Dashboard shell → Account settings: renders
app/page.tsx - User → Sign-in and MFA: submits credentials
README.md - Sign-in and MFA → Auth API routes: uses auth flows
- Auth API routes → Login decision: routes login
README.md - Auth API routes → MFA verification: routes MFA
README.md - Auth API routes → Registration: routes registration
README.md - Auth API routes → Password recovery: routes recovery
README.md - Login decision → Rate limits and lockout: checks limits
app/api/auth/login/route.ts - Login decision → Device fingerprinting: parses device
app/api/auth/login/route.ts - Login decision → Location resolution: resolves location
app/api/auth/login/route.ts - Login decision → Anomaly scoring: scores login
app/api/auth/login/route.ts - Anomaly scoring → Impossible travel: checks travel
lib/anomaly.ts - Login decision → Credential and session services: creates session token
app/api/auth/login/route.ts - Login decision → Security email: sends alerts
app/api/auth/login/route.ts - Login decision → Prisma database client: reads and writes
app/api/auth/login/route.ts - MFA verification → Credential and session services: verifies MFA and issues session
app/api/auth/verify-mfa/route.ts - MFA verification → Rate limits and lockout: clears failures
app/api/auth/verify-mfa/route.ts - MFA verification → Prisma database client: updates recovery and session
app/api/auth/verify-mfa/route.ts - Registration → Rate limits and lockout: checks limits
app/api/auth/register/route.ts - Registration → Credential and session services: hashes and issues session
app/api/auth/register/route.ts - Registration → Device fingerprinting: parses device
app/api/auth/register/route.ts - Registration → Location resolution: resolves location
app/api/auth/register/route.ts - Registration → Prisma database client: creates account
app/api/auth/register/route.ts - Dashboard API routes → Prisma database client: reads dashboard data
app/api/dashboard/stats/route.ts - Dashboard API routes → Credential and session services: authenticates requests
app/api/dashboard/stats/route.ts - Login activity → Dashboard API routes: requests audit data
- Security alerts → Dashboard API routes: requests alerts
- Trusted devices → Dashboard API routes: requests devices
- Prisma database client → SQLite data model: persists model data
README.md - Rate limits and lockout → Prisma database client: persists buckets
lib/rate-limiter.ts