Secure Authentication
NextAuth v5 with Okta provider, JWT strategy, automatic token refresh, and encrypted client-side token cache.
License Server Detail is a production-ready Next.js 15 application that provides a comprehensive web dashboard for monitoring and managing license servers. It integrates seamlessly with License Monitor to deliver real-time visibility into your license infrastructure.
The application serves as the frontend companion to License Monitor, providing:
┌─────────────────────────────────────────────────────────────────┐│ License Server Detail ││ (Next.js 15 Dashboard) │├─────────────────────────────────────────────────────────────────┤│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ ││ │ Dashboard │ │ Server │ │ Monitoring │ ││ │ Pages │ │ Management │ │ Pages │ ││ └──────┬──────┘ └──────┬──────┘ └───────────┬─────────────┘ ││ │ │ │ ││ ┌──────┴────────────────┴──────────────────────┴──────────┐ ││ │ tRPC API Layer │ ││ └──────────────────────────┬───────────────────────────────┘ ││ │ ││ ┌──────────────────────────┴───────────────────────────────┐ ││ │ Services Layer │ ││ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ ││ │ │ HTTP │ │ WebSocket│ │ SSE │ │ Alerting │ │ ││ │ │ Client │ │ Client │ │ Client │ │ Service │ │ ││ │ └────┬────┘ └────┬────┘ └────┬────┘ └──────┬──────┘ │ ││ └───────┴────────────┴────────────┴──────────────┴──────────┘ ││ │ ││ ┌──────────────────────────┴───────────────────────────────┐ ││ │ Convex Backend │ ││ │ (Servers, Health Checks, License Snapshots, Alerts) │ ││ └──────────────────────────────────────────────────────────┘ │└─────────────────────────────────────────────────────────────────┘ │ ▼┌─────────────────────────────────────────────────────────────────┐│ License Monitor API ││ (REST, WebSocket, SSE) │└─────────────────────────────────────────────────────────────────┘ │ ▼┌─────────────────────────────────────────────────────────────────┐│ License Servers ││ (FlexLM, RLM, sesinetd, etc.) │└─────────────────────────────────────────────────────────────────┘Secure Authentication
NextAuth v5 with Okta provider, JWT strategy, automatic token refresh, and encrypted client-side token cache.
Real-time Updates
WebSocket connection pooling with load balancing, SSE fallback, and graceful degradation between protocols.
License Tracking
Monitor license utilization, active sessions, feature availability, and expiration dates across all servers.
Alerting System
Configurable thresholds for low availability, high utilization, server downtime, and license expiration.
| Component | Technology |
|---|---|
| Framework | Next.js 15 (App Router, Turbopack) |
| Runtime | Bun 1.3+ (required) |
| Database | Convex (real-time backend) |
| Authentication | NextAuth v5 + Okta |
| API Layer | tRPC (type-safe procedures) |
| HTTP Client | Axios with interceptors |
| UI Components | Shadcn UI + Radix + Tailwind CSS |
| State Management | React Query (TanStack Query) |
| Real-time | WebSocket + Server-Sent Events |
Before installing License Server Detail, ensure you have:
# Clone the repositorygit clone https://github.com/keithce/license-server-detail.gitcd license-server-detail
# Install dependenciesbun install
# Configure environment variablescp .env.example .env
# Start Convex development environmentbun run convex:dev
# Start development serverbun run devThe application will be available at http://localhost:3000.
license-server-detail/├── app/ # Next.js App Router│ ├── api/ # API routes│ │ ├── auth/ # NextAuth endpoints│ │ ├── health/ # Health check endpoint│ │ └── trpc/ # tRPC handler│ ├── auth/ # Authentication pages│ └── dashboard/ # Protected dashboard pages├── components/ # React components│ ├── providers/ # Context providers│ └── ui/ # Shadcn UI components├── convex/ # Convex backend│ ├── schema.ts # Database schema│ └── *.ts # Server functions├── lib/ # Shared utilities│ ├── api/ # License Monitor client│ ├── http/ # HTTP client with interceptors│ ├── websocket/ # WebSocket client│ ├── sse/ # SSE client│ ├── security/ # Token store│ └── logging/ # Structured logging├── types/ # TypeScript definitions└── public/ # Static assets