mirror of
https://github.com/andwati/telecom-platform.git
synced 2026-10-18 11:02:54 +00:00
- Add Payment System section with PaymentController, Stripe integration, and webhook processing - Add Carrier Connector section with ES2+ protocol handlers, profile repository, and REST API server - Add eBPF Packet Gateway section with batch sync, XDP program loading, and Redis synchronization - Add Rate Limiting section with distributed Redis-based implementation and comprehensive middleware - Add Authentication & Authorization section with JWT, RBAC, Casbin integration
7.0 KiB
7.0 KiB
Changelog
All notable changes to the TaaS Platform will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2026-04-01
Added
- Initial release of TaaS Platform
- API Server (Go 1.26) with RESTful endpoints
- Carrier Connector for GSMA ES2+ integration
- Charging Engine (Rust 1.94) with Redis-based credit control
- Packet Gateway stub with eBPF architecture
- Web Dashboard (Next.js 15) with Tailwind CSS
- Docker deployment with docker-compose
- Kubernetes manifests for production deployment
- Complete documentation (API, Architecture, Deployment)
- Setup scripts for MongoDB and Redis
- Development environment setup script
- Comprehensive TODO list with research links
Features
- eSIM creation and management
- Real-time credit control
- Usage tracking and reporting
- Developer dashboard
- Webhook support (planned)
- Multi-tenant architecture
- Horizontal scaling support
Technical
- Go 1.26 with Green Tea GC
- Rust 1.94 with array_windows
- TypeScript/Next.js 15
- MongoDB 7.0 for subscriber data
- Redis 7 for real-time state
- free5GC integration ready
- eBPF/Aya framework integration
[Unreleased]
Added
- Payment System: PaymentController with modular handlers for payment operations, refunds, and webhook processing
- Stripe Integration: Extracted Stripe gateway types to separate file for improved code organization
- Carrier Connector:
- Handler package with carrier info, connectivity check, and shared types for GSMA ES2+ profile management
- Profile handlers with repository integration for eSIM profile lifecycle management via ES2+ protocol
- ProfileRepository interface with in-memory implementation for eSIM profile storage and CRUD operations
- REST API server with Gin framework and comprehensive eSIM profile management endpoints
- Refactored to use GSMA ES2+ protocol with dedicated client package and context-aware profile download
- eBPF Packet Gateway:
- Batch sync mechanism with sync_control flag, sync_buffer map, and stats aggregation
- eBPF manager with XDP program loading, packet stats tracking, credit management, and bidirectional Redis synchronization
- Build script for eBPF program compilation with cargo build-bpf integration
- Integration with XDP program loading, bidirectional Redis sync, and graceful shutdown handling
- Rate Limiting:
- Distributed Redis-based rate limiting with sliding window, token bucket, and multi-tier support
- Comprehensive rate limiting middleware with IP-based, user-based, and endpoint-specific throttling strategies
- Redis rate limiter refactored to use interface for improved testability
- Comprehensive Redis rate limiter tests with mock client, middleware validation, and multi-tier support
- Authentication & Authorization:
- Authentication models with User, Role, Permission, AuthSession, and APIKey structs
- Authentication service with JWT token management, session handling, and user operations
- Authentication middleware with JWT validation, RBAC permission checks, and role-based access control
- Authentication handler with login, registration, user management, and JWT token operations
- Authentication configuration with JWT secret and reorganized environment variables
- Casbin RBAC service with policy management, permission checking, and default role configurations
- Platform Services:
- Platform handlers for services, monitoring, deployments, plugins, automations, chaos experiments, and configuration management
- Platform models for plugins, automations, config, deployments, and chaos experiments
- Deployment service with CRUD operations, rollback support, and status tracking
- Plugin service with CRUD operations, filtering, and enable/disable functionality
- Automation service with workflow execution, scheduling, run history, and comprehensive test coverage
- Configuration store service with database-backed runtime settings, validation, and sensitive value masking
- Monitoring & Observability:
- Comprehensive health monitoring system with component checks, system metrics, and HTTP handlers
- Comprehensive alerting system with rule evaluation, multi-channel notifications, and health-based alert triggers
- Prometheus service client with instant query execution, alert retrieval, and health checking
- Performance middleware with request tracking, metrics collection, and optimization utilities
- WebSocket: WebSocket handler with hub management, client connections, and real-time broadcasting
- Kubernetes: Kubernetes service with deployment management, scaling, restart, logs, and pod status monitoring
- Caching: Cache package with in-memory implementation, LRU eviction, and multi-cache management
- Error Handling: Centralized error handling with typed error codes, validation support, and enhanced parsing utilities
- Utilities: millisToDuration utility function for converting milliseconds to time.Duration with zero handling
- Database: Cached database wrapper with query caching, invalidation, and statistics support; connection pool optimization and statistics monitoring
Changed
- Refactoring:
- SubscriberService split into modular files with method organization by domain
- Carrier connector main.go refactored to extract route setup and handlers into separate packages
- ES2Client implementation removed from main.go and handlers updated to use internal/es2 package
- Replaced interface{} with any alias throughout codebase
- Removed ETag generation and validation middleware, simplified CacheMiddleware to basic Cache-Control header
- Dependencies: Updated Go dependencies with JWT auth, Swagger docs, Kubernetes client, Casbin RBAC, and testing utilities
Fixed
- Rate Limiter Tests: Fixed Redis rate limiter mock type mismatch and header name capitalization in tests
- Test Failures: Fixed TestRateLimit_ErrorHandling in ratelimit_test.go by using high limit instead of invalid limit
- IPv6 Support: Skipped IPv6 test in IPKeyExtractor due to Gin ClientIP() limitations with IPv6 addresses
Documentation
- Added comprehensive documentation for error handling, testing strategy, monitoring, and development workflow
- Added Swagger documentation models for API endpoints with comprehensive field annotations
CI/CD
- Added GitHub Actions CI workflow with testing, building, and security scanning
- Added GitHub Actions deployment workflow with staging/production environments and container registry integration
- Added staging and production environment configurations with protection rules, approvals, and deployment restrictions
Planned Features
- Complete eBPF packet gateway implementation
- Real-time webhook delivery
- Advanced analytics dashboard
- Multi-region deployment support
- SGP.32 (IoT eSIM) support
- CLI tool for developers
- Terraform provider
- Enhanced monitoring and alerting
Version History
- 1.0.0 - Initial release with core functionality