A high-performance, real-time log visualization application for Azion's GraphQL API featuring dual visualization modes, advanced security, and optimized performance with web workers and virtual scrolling.
- β Codebase Cleanup: Removed 11 unused files and 1 empty directory for improved performance
- β UI Components: Streamlined to only include actively used shadcn/ui components
- β Asset Optimization: Removed unused assets and fixed favicon references
- Revise licensing for making the project public;
-
Review NPM vulnerabilities since theres malware on NPM repos recently- Security audit completed - Create an Azion Template integrated with github so the user can connect their account easily
- Remove internal graphql proxying by solving official grapQL consumption issue with CORP, CORS and CSP;
- Create test suites and integrate to github actions;
-
Security hardening and vulnerability fixes- Comprehensive security fixes implemented
- Particle Animation: Interactive particle system with animated log entries flowing across the canvas
- World Map Visualization: SVG-based geographical visualization with country-specific log activity
- Seamless Mode Switching: Toggle between visualization modes with preserved state
- Real-time statistics with request counters and status monitoring
- Responsive design with cyberpunk-inspired UI themes (Azion Orange & Blue)
- Interactive World Map: SVG-based map with 60+ countries and continent paths
- Country Activity Blinking: Visual indicators when logs are received from specific countries
- Clickable Countries: Interactive country selection showing recent log details
- Coordinate Mapping: Precise positioning system for global log activity tracking
- Cryptographic token storage using Web Crypto API with AES-GCM encryption
- Device-specific encryption keys generated from browser fingerprinting
- PBKDF2 key derivation with 100,000 iterations for maximum security
- Automatic migration from legacy plain-text configurations
- Visual security indicators showing encryption status
- Comprehensive API configuration with retry policies and rate limiting
- GraphQL field selection for optimized queries
- Mock data generator with configurable frequency and randomness
- Export/import functionality (excludes sensitive data for security)
- Dual visualization modes with particle animation and world map views
- Advanced log table with virtual scrolling for high-performance rendering
- Log details modal with comprehensive request information
- Column customization with resizable columns and field selection
- Animation speed control for particle visualization
- Comprehensive clear functionality resetting all application state
- Theme switching between Azion and Blue themes
- Responsive sidebar with controls and statistics
- Custom Virtual Scrolling: Handles large datasets efficiently with optimized rendering
- Web Worker Processing: Offloads heavy computations from the main thread
- Zustand State Management: Centralized state with minimal re-renders
- Memoized Components: React.memo optimization with smart prop comparison
- Text Measurement Caching: LRU cache for optimized text calculations
- Change-based Updates: Hash-based change detection replacing constant intervals
- Node.js 18+ (recommended: 20+) and npm installed - install with nvm
- Azion CLI installed - install guide
# Clone the repository
git clone <YOUR_GIT_URL>
cd <YOUR_PROJECT_NAME>
# Install dependencies
npm install
# Start development server with Azion CLI (recommended)
azion dev
β οΈ Important: Useazion devfor optimal Azion Platform compatibility. This ensures proper edge function simulation and deployment compatibility.
# For standard development (without Azion edge simulation)
npm run devThe application will be available at http://localhost:3333
Using azion dev provides several advantages over standard npm commands:
- π Edge Simulation: Accurate local simulation of Azion Edge Platform behavior
- β‘ Optimized Build Process: Azion-specific optimizations and bundling
- π§ Automatic Configuration: Seamless integration with Azion services
- π¦ Edge Function Support: Test edge functions locally before deployment
- π Production Parity: Development environment matches production deployment
- π Hot Reload: Fast refresh with edge-aware updates
- Open the application and click the Config button
- Navigate to the GraphQL tab
- Configure your settings:
- GraphQL Endpoint:
https://alv.azion.app/api/v4/events/graphql(default) - Authentication Token: Your Azion API token (automatically encrypted)
- Query Parameters: Limit, time range, refresh interval
- Field Selection: Choose which GraphQL fields to fetch
- GraphQL Endpoint:
Note: The default endpoint has been updated to
https://alv.azion.app/api/v4/events/graphqlfor improved compatibility and performance.
The application automatically encrypts your API tokens using:
- AES-GCM encryption with 256-bit keys
- Device-specific passwords for enhanced security
- Visual indicators: Green shield (encrypted) or yellow shield (fallback)
- Mock Generator: Generates realistic log data for testing
- Azion GraphQL API: Live data from your Azion account
- Both: Combined streams for comprehensive testing
- Platform: Azion Edge Platform with CLI integration
- Frontend: React 19.1.1 with TypeScript
- Build Tool: Vite 7.1.5 with SWC + Azion CLI
- UI Framework: shadcn/ui components with Radix UI primitives
- Styling: Tailwind CSS with custom cyberpunk themes
- State Management: Zustand for centralized state + React hooks
- Performance: Web Workers for background processing
- Virtualization: Custom virtual scrolling for efficient large dataset rendering
- Security: Web Crypto API for encryption
- HTTP Client: Native Fetch API for GraphQL communication
src/
βββ components/ # React components
β βββ ui/ # shadcn/ui components
β βββ AzionLogo.tsx # Azion branding component
β βββ ConfigurationMenu.tsx # Settings interface
β βββ FilterConfiguration.tsx # Log filtering
β βββ LiveIndicator.tsx # Real-time status
β βββ LogCanvas.tsx # Particle visualization
β βββ LogControls.tsx # Animation controls
β βββ LogDetails.tsx # Log detail modal
β βββ LogStats.tsx # Statistics display
β βββ LogTaillogV2.tsx # Optimized log table
β βββ WorldMap.tsx # Geographic visualization
β βββ ...
βββ hooks/ # Custom React hooks
βββ lib/ # Utilities and secure storage
βββ services/ # API services and configuration
βββ stores/ # Zustand state management
βββ workers/ # Web Workers for background processing
βββ types/ # TypeScript type definitions
βββ pages/ # Application pages
- LogCanvas: WebGL-accelerated particle system for log visualization
- WorldMap: SVG-based geographic visualization with country activity
- LogTaillogV2: High-performance log table with virtual scrolling and web workers
- SecureStorage: Cryptographic storage utility
- ConfigurationMenu: Comprehensive settings interface
- AzionGraphQL Service: API integration with retry logic
- Log Store (Zustand): Centralized state management for log data
- Log Processor Worker: Background processing for heavy computations
- AES-GCM Encryption: API tokens encrypted with 256-bit keys and device-specific binding
- XSS Prevention: Comprehensive input sanitization and Content Security Policy
- GraphQL Injection Prevention: Input validation and query sanitization
- Rate Limiting: Client-side and server-side request throttling
- Security Headers: X-Frame-Options, X-XSS-Protection, and more
- Algorithm: AES-GCM with 256-bit keys
- Key Derivation: PBKDF2 with SHA-256, 100,000 iterations
- Device Binding: Browser fingerprinting for unique encryption keys
- Storage Separation: Sensitive data encrypted, public settings in plain text
- Modern Browsers: Full encryption support via Web Crypto API
- Legacy Browsers: Automatic fallback with security warnings
- Progressive Enhancement: Application works regardless of crypto support
π For detailed security information, see SECURITY.md
# Build with Azion CLI (recommended for Azion deployment)
azion build
# Alternative build method
npm run build# Deploy to Azion Edge Platform
azion deploy
# Deploy with custom domain
azion deploy --domain your-domain.com- Vercel/Netlify: Static hosting with automatic deployments
- Any CDN: Deploy the
distfolder to any static hosting service
- Production builds work directly with Azion's API (no proxy needed)
- CSP headers configured for Leaflet map tiles and Google Fonts
- All sensitive data remains client-side encrypted
- Web Workers supported in all modern browsers
azion dev- Start development server with Azion edge simulationazion build- Build for Azion Edge Platformazion deploy- Deploy to Azion Edge Platformazion init- Initialize Azion project configuration
npm run dev- Start development server with proxynpm run build- Build for productionnpm run build:dev- Build for development modenpm run preview- Preview production buildnpm run lint- Run ESLint
- Azion Edge Simulation with
azion devfor accurate local testing - Hot Module Replacement for instant updates
- TypeScript for type safety
- ESLint for code quality
- Edge Function Support when using Azion CLI
- Proxy Configuration for CORS handling
- Particle Mode: Physics-based log representation with configurable animation speed
- World Map Mode: Geographic visualization with country-specific activity indicators
- Color-coded status indicators (success, error, blocked)
- Interactive elements with click-to-view details
- Smooth mode transitions with preserved application state
- Custom Virtual Scrolling: Efficiently handles thousands of log entries with optimized rendering
- Web Worker Processing: Background computation without UI blocking
- Optimized Rendering: Memoized components with smart re-render logic
- Memory Management: LRU caches and efficient state updates
- Change Detection: Hash-based updates instead of constant polling
- Visual encryption status indicators
- Automatic token migration from legacy storage
- Export/import functionality with security preservation
- Device-specific encryption key generation
- Configurable GraphQL queries with field selection
- Advanced retry policies with exponential backoff
- Rate limiting and connection testing
- Real-time log streaming with WebSocket-like updates
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Check the configuration guide above
- Review the security implementation details
- Use
azion devfor optimal development experience - Ensure you're using compatible Azion CLI commands
- Verify your Azion API token has the necessary permissions
- Check Azion CLI documentation for troubleshooting