- Add State enum with Closed, Open, and HalfOpen states and String method
- Add CircuitBreaker struct with mutex, state tracking, failure/success counters, and timeout
- Add Config struct with FailureThreshold, SuccessThreshold, and Timeout fields
- Add NewCircuitBreaker constructor with Config parameter
- Add DefaultConfig with 5 failure threshold, 2 success threshold, and 60 second timeout
- Add ENFORCE_AUTH environment variable with true default to auth middleware
- Add early return when ENFORCE_AUTH=false for development/testing bypass
- Replace development comment with UNAUTHORIZED status code when no valid authentication found
- Move authentication bypass logic from end of function to environment-based check at start
- Add rate_limit module to lib.rs exports
- Add create_rate_limiter function with SmartIpKeyExtractor for IP-based limiting
- Add RATE_LIMIT_RPS environment variable with 10 requests/second default
- Add RATE_LIMIT_BURST environment variable with 20 burst size default
- Add RateLimitResponse struct with TOO_MANY_REQUESTS status code
- Add GovernorLayer with per_second quota and burst_size configuration to router
- Add CACHE_TTL environment variable with 30000ms default to API configuration
- Add DataCache class with Map-based storage, timestamp tracking, and TTL expiration
- Add cache methods for set, get, invalidate, invalidatePattern, clear, and size operations
- Add getCachedData helper function with fetcher callback and TTL override support
- Add apiFetch wrapper with optional cache parameter for GET
- Add "start-all" and "stop-all" cases to services command handler
- Add startAllServices function with table output for service name, status, and message
- Add stopAllServices function with reverse service order for graceful shutdown
- Add service list iteration with status display for api-server, charging-engine, carrier-connector, packet-gateway, and web-dashboard
- Add "start-all" and "stop-all" commands
- Replace ? operator with explicit error handling in sync_from_redis for credits and blocked users sync
- Add error logging before returning EbpfError::RedisFetchError in sync operations
- Replace generic map errors with EbpfError::MapNotFound and MapAccessError in trigger_sync
- Add match-based error handling with logging for sync_control map insert operation
- Replace generic map errors with EbpfError::MapNot
- Add EbpfError import to ebpf.rs module
- Replace generic error messages with EbpfError::LoadError in program load operations
- Replace generic error messages with EbpfError::AttachError in XDP attach operations with interface field
- Replace generic error messages with EbpfError::MapNotFound and MapAccessError in map access operations
- Add error logging with error! macro before returning errors in all
- Add PacketGatewayConfig struct with interface, redis_url, charging_engine_url, sync_interval, and health_port fields
- Add ConfigUpdateRequest struct with optional sync_interval and charging_engine_url fields
- Add ConfigResponse struct with config and status fields
- Add ConfigState wrapper with Arc<RwLock<PacketGatewayConfig>> for thread-safe config access
- Add create_config_
- Add CircuitState enum with Closed, Open, and HalfOpen states
- Add CircuitBreakerError enum wrapping Open state and inner errors
- Add CircuitBreaker struct with failure_count, failure_threshold, timeout, and last_failure_time fields
- Add execute method with async operation wrapper and state-based error handling
- Add check_state method with automatic Open to HalfOpen transition after timeout
- Add on_success method
- Add nil config check in validateConfig with error return
- Add config.Validate() call to get validation errors
- Replace validation table with field display table showing API endpoint, token (masked), profile, and theme
- Add success message for valid configuration and numbered error list for validation failures
- Return error when validation fails instead of nil
- Update placeholder invoice
- Add "check-all" case to monitoring command handler calling checkAllServices
- Add checkAllServices function with table output for service name, status, endpoint, and message
- Add health status aggregation with success/warning messages for overall system health
- Add "check-all" command to monitoring help table
- Update placeholder log timestamps from 2024-01-15 to 2026-05-30 in monitoring
- Add ServiceHealth struct with name, status, endpoint, and message fields
- Add CheckAllServices method to check health of all platform services
- Add service definitions for api-server, charging-engine, carrier-connector, packet-gateway, and web-dashboard
- Add HTTP health check with unreachable/healthy/unhealthy status determination
- Add fmt package import for status code formatting
- Add webhook package import to main.go and routes.go
- Add API_SERVER_WEBHOOK_URL and API_SERVER_WEBHOOK_API_KEY environment variable loading
- Add webhookClient initialization with NewWebhookClient in main function
- Add webhookClient parameter to setupRoutes function signature and comment
- Pass webhookClient to OrderProfileHandlerWithRepo and DeleteProfileHandlerWithRepo routes
- Add webhookClient parameter to OrderProfileHandlerWithRepo and DeleteProfileHandlerWithRepo
- Add SendDownloadFailed webhook notification on profile order failure with error details
- Add SendProfileDownloaded webhook notification on successful profile download with IMSI, profileType, and status
- Add SendProfileDeleted webhook notification on profile deletion with executionStatus and statusMessage
- Add webhook package import
- Add CachedProfileStore wrapper with configurable TTL and automatic cleanup
- Add cacheEntry struct with profile data and expiration timestamp
- Add Get method with cache-first lookup and automatic cache population on miss
- Add cache invalidation on Create, UpdateState, and Delete operations
- Add background cleanup goroutine with ticker running at TTL/2 interval
- Add manual Invalidate and InvalidateAll methods for cache
- Add maxRetries (3) and retryDelay (1s) fields to ES2Client struct
- Add retryableError helper to identify retryable errors (network errors, 5xx, 429)
- Add executeWithRetry method with exponential backoff and context cancellation support
- Replace direct httpClient.Do calls with executeWithRetry in all ES2 operations
- Update error messages to indicate retry attempts ("after retries")
- Add math package import for exponential backoff calculation
- Add CachedProfileStore wrapper around PostgresProfileStore with 5-minute TTL
- Add defer close for underlying postgresRepo to ensure proper cleanup
- Rename profileRepo variable to postgresRepo for clarity before wrapping
- Add caching layer to reduce database load for profile lookups
- Add rounding to monthly fee conversion to cents to prevent precision loss
- Replace direct subtraction with saturating_sub to prevent i64 underflow
- Add fee_cents variable for clearer monthly fee calculation in billing cycle
- Add current balance retrieval before credit increment operation
- Add checked_add validation to prevent u64 overflow when adding credits
- Add InvalidInput error return when credit addition would cause overflow
- Add overflow check between get and incr operations on Redis credit key
- Add SubscriberHandler to serverDeps with NewSubscriberService initialization
- Add subscriber routes to v1 API with GET (list, by id, by IMSI) and protected POST/PUT operations
- Add RBAC enforcement for subscriber creation, updates, suspension, and termination (admin, operator roles)
- Add registerSubscriberRoutes function with /subscribers endpoint group
- Add LoginPage component with toggle between login and registration modes
- Add form state management for username, password, email, first_name, last_name fields
- Add handleSubmit with api.auth.login/register integration and token storage (access_token, refresh_token)
- Add error handling with red alert banner display
- Add conditional rendering for registration fields (email, first_name, last_name)
- Add loading state with
- Add ChargingEngineClient struct with reqwest HTTP client and configurable base URL
- Add report_usage method for single usage event reporting with volume conversion (bytes to MB)
- Add report_batch_usage method for processing multiple usage events with error tolerance
- Add UsageEvent and UsageResponse types for API request/response serialization
- Add tracing integration (info, warn, error) for usage reporting
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Refactor TelecomSDK::Client to use modular API clients (SubscriberAPI, UsageAPI, PaymentAPI, RatingPlanAPI, SystemAPI, GraphQLAPI)
- Add AuthProvider class with API key and JWT token support (generate_jwt_token, validate_jwt_token methods)
- Add HTTPClient base class with retry
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Add AuthProvider class with API key and JWT token support (GenerateJWTToken, ValidateJWTToken, GetHeaders, ClearTokenCache methods)
- Add HTTPClient base class with retry logic, error handling, and timeout management
- Add GraphQLAPI, PaymentsAPI, RatingPlansAPI
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Refactor TelecomSDK main module to use modular API clients (SubscribersAPI, UsageAPI, PaymentAPI, RatingPlanAPI, SystemAPI, GraphQLAPI)
- Add AuthProvider class with API key and JWT token support (generate_jwt_token, validate_jwt_token methods)
- Add HTTPClient base
- Add hmac, sha2, and base64 dependencies to Cargo.toml for JWT support
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Add AuthProvider class with API key and JWT token support (generate_jwt_token, validate_jwt_token, get_headers, clear_token_cache methods)
- Add HTTPClient base class with retry logic, error handling, and timeout management
- Add SubscriberAPI module
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Add AuthProvider class with API key and JWT token support (generateJWTToken, validateJWTToken, getHeaders, clearTokenCache methods)
- Add HTTPClient base class with retry logic, error handling, and timeout management
- Add GraphQLAPI, PaymentAPI, RatingPlanAPI, SubscriberAPI, SystemAPI, and UsageAPI modules
- Add TelecomSDK main client integrating all API
- Add README.md with installation instructions, architecture overview, and API examples for all SDK modules
- Add AuthProvider class with API key and JWT token support (generateJWTToken, validateJWTToken, getHeaders, clearTokenCache methods)
- Add HTTPClient base class with retry logic, error handling, and timeout management
- Add GraphQLAPI, PaymentAPI, RatingPlanAPI, SubscriberAPI, System