Skip to content

Releases: iNethi/backend

v1.0.0

22 Aug 15:32
370fad2

Choose a tag to compare

iNethi Backend v1.0.0 Release Notes

Release Date: August 2025
Version: v1.0.0
Compatibility: Python 3.10+, Django 5.1+, Docker 20.10+
Author: Keegan White (keeganthoamswhite@gmail.com)

🎉 Overview

Welcome to the v1.0.0 release of the iNethi Backend! This release represents a major milestone in the development of our bespoke networking and blockchain integration platform. We've introduced comprehensive automation, enhanced API capabilities, improved performance, and streamlined deployment processes.

🚀 Major Features

🔧 Automated Production Setup

  • New setup.sh Script: Complete automation of production deployment including Docker container orchestration, database population, and superuser creation
  • Configuration Validation: Automatic validation of environment variables and JSON configuration files with user confirmation prompts
  • Health Checks: Intelligent monitoring of service startup with detailed progress reporting
  • Database Population: Automated execution of management commands to populate initial data

🔑 Key Generation Utility

  • New generate_keys.py Script: Automated generation of Django secret keys and encryption keys
  • Security Best Practices: Built-in fallback mechanisms and comprehensive error handling
  • User-Friendly Interface: Clear instructions and security warnings for production deployment

📊 Enhanced API Performance

  • Database-First Approach: Optimized voucher and transaction retrieval prioritizing local database queries
  • Pagination Implementation: Added pagination to all list endpoints with configurable page sizes (default: 20, max: 100)
  • Improved Search Efficiency: Enhanced voucher search functionality with direct queryset filtering
  • New Voucher Statistics Endpoints: Comprehensive voucher usage tracking with RADIUSdesk API integration

🔄 Management Commands

  • create_radiusdesk_from_json: Bulk import of RADIUSdesk instances, clouds, realms, and profiles from JSON
  • create_users_from_json: Automated user creation with wallet generation and blockchain integration
  • create_smart_contracts_from_json: Smart contract deployment and configuration from JSON files
  • create_superuser: Automated superuser creation using environment variables

🛠 Technical Improvements

🐳 Docker & Deployment

  • Flexible Traefik Configuration: Environment variable-driven Traefik setup for production deployments
  • Enhanced Docker Compose: Separate development and production configurations with optimized service definitions
  • TimescaleDB Integration: Time-series database support for network monitoring and analytics
  • Celery Task Management: Robust background task processing with Redis integration

🔐 Security Enhancements

  • Keycloak Integration: Comprehensive identity and access management
  • API Key Authentication: Flexible authentication supporting both Keycloak and API key methods
  • Encrypted Wallet Storage: Secure private key management with Fernet encryption
  • Environment Variable Security: Comprehensive validation and secure handling of sensitive configuration

📈 Performance Optimizations

  • Database Query Optimization: Reduced query complexity and improved response times
  • Caching Implementation: Redis-based caching for improved API performance
  • Connection Pooling: Optimized database connection management
  • Background Task Processing: Asynchronous task execution for improved user experience

🔌 API Enhancements

Voucher Management

  • /api/v1/vouchers/get_all_vouchers_stats_db/: Database-first voucher statistics with pagination
  • /api/v1/vouchers/get_voucher_stats_detailed/: Comprehensive voucher usage analytics
  • Enhanced Profile Information: Voucher responses now include profile type, data limits, and cost information
  • Improved Search: More efficient voucher search with direct database filtering

Transaction Management

  • Pagination Support: All transaction endpoints now support pagination
  • Enhanced Filtering: Improved transaction filtering and sorting capabilities
  • User-Specific Views: Optimized transaction retrieval for authenticated users

RADIUSdesk Integration

  • Enhanced API Communication: Improved RADIUSdesk API integration with better error handling
  • Voucher Statistics: Detailed voucher usage tracking with data consumption analytics
  • Profile Management: Comprehensive profile configuration and management capabilities

🏗 Infrastructure Improvements

Environment Configuration

  • Flexible Traefik Setup: Configurable domain names, entrypoints, and certificate resolvers
  • Network Bridge Configuration: Environment variable-driven network configuration
  • Comprehensive Validation: Automatic validation of all required environment variables

Database Management

  • TimescaleDB Support: Time-series data capabilities for network monitoring
  • Migration Automation: Automated database migration and setup processes
  • Data Population: Automated initial data loading from JSON configuration files

Monitoring & Logging

  • Enhanced Logging: Comprehensive logging configuration with structured output
  • Health Monitoring: Service health checks and status reporting
  • Error Tracking: Improved error handling and reporting throughout the application

📋 Configuration Files

Required JSON Files

  • sample_radiusdesk_config.json: RADIUSdesk instance, cloud, realm, and profile configurations
  • smart_contracts.json: Blockchain smart contract definitions and configurations
  • users.json: User account definitions with wallet and permission configurations

Environment Variables

  • Database Configuration: TimescaleDB connection and authentication settings
  • Traefik Configuration: Domain names, entrypoints, and certificate management
  • Keycloak Integration: Identity provider configuration and authentication settings
  • Blockchain Configuration: Smart contract addresses and network provider settings

🚀 Getting Started

Quick Start

  1. Generate Keys: Run python3 generate_keys.py to generate required encryption keys
  2. Configure Environment: Copy .env.example to .env and configure your settings
  3. Prepare JSON Files: Create the required JSON configuration files
  4. Run Setup: Execute ./setup.sh for automated production deployment

Development Setup

# Development environment
docker compose -f docker-compose-dev.yml up -d

# Run tests
docker compose -f docker-compose-dev.yml run --rm app sh -c "python manage.py test"
docker compose -f docker-compose-dev.yml run --rm app sh -c "flake8"

Production Deployment

# Automated production setup
./setup.sh

# Manual deployment
docker compose -f docker-compose-prod.yml up -d

🔧 Management Commands

Database Population

# Create users from JSON
python manage.py create_users_from_json users.json

# Create smart contracts from JSON
python manage.py create_smart_contracts_from_json smart_contracts.json

# Create RADIUSdesk instances from JSON
python manage.py create_radiusdesk_from_json sample_radiusdesk_config.json

# Create superuser
python manage.py create_superuser --noinput

Utility Commands

# Generate encryption keys
python3 generate_keys.py

# Wait for database
python manage.py wait_for_db

🐛 Bug Fixes

  • Fixed SSL Certificate Issues: Resolved Traefik certificate resolution problems
  • Corrected URL Routing: Fixed API endpoint URL configurations
  • Improved Error Handling: Enhanced error messages and debugging information
  • Fixed Pagination Issues: Resolved transaction and voucher pagination problems
  • Database Field Errors: Corrected model field references and queries

🔄 Breaking Changes

API Changes

  • Pagination: All list endpoints now return paginated responses by default
  • Voucher Endpoints: New database-first endpoints for improved performance
  • Authentication: Enhanced authentication flow with better error handling

Configuration Changes

  • Environment Variables: New Traefik configuration variables required
  • JSON Structure: Updated JSON file formats for management commands
  • Docker Labels: Modified Traefik label configuration

📚 Documentation

  • Comprehensive README: Updated with detailed setup and configuration instructions
  • API Documentation: Enhanced API documentation with new endpoints and examples
  • Troubleshooting: Common issues and solutions documentation
  • Advanced Analytics: Enhanced reporting and data visualization capabilities

📞 Support

For support, questions, or feedback, please refer to the documentation or contact keeganthomaswhite@gmail.com