Skip to content

License Server Detail Introduction

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:

  • Secure Authentication: Okta OAuth 2.0 integration with automatic token refresh
  • Real-time Monitoring: WebSocket and SSE streaming with graceful degradation
  • Comprehensive Dashboard: Server status, license utilization, and system metrics
  • Alerting System: Threshold-based and status-change notifications
  • Role-Based Access: Fine-grained permissions for users and operations
  • Historical Data: Convex database for trends and analytics
┌─────────────────────────────────────────────────────────────────┐
│ 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.

ComponentTechnology
FrameworkNext.js 15 (App Router, Turbopack)
RuntimeBun 1.3+ (required)
DatabaseConvex (real-time backend)
AuthenticationNextAuth v5 + Okta
API LayertRPC (type-safe procedures)
HTTP ClientAxios with interceptors
UI ComponentsShadcn UI + Radix + Tailwind CSS
State ManagementReact Query (TanStack Query)
Real-timeWebSocket + Server-Sent Events

Before installing License Server Detail, ensure you have:

  • Bun 1.3+ - Package manager and runtime
  • Node.js 20+ - For cryptographic operations
  • License Monitor - Running and accessible
  • Okta Account - For authentication configuration
  • Convex Account - For real-time database
Terminal window
# Clone the repository
git clone https://github.com/keithce/license-server-detail.git
cd license-server-detail
# Install dependencies
bun install
# Configure environment variables
cp .env.example .env
# Start Convex development environment
bun run convex:dev
# Start development server
bun run dev

The 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