Skip to content

v1.0.0 - Prod Release

Choose a tag to compare

@chalabi2 chalabi2 released this 26 Aug 19:28
· 7 commits to main since this release
9573931

Release v1.0.0

Major Architecture Overhaul

This release is a complete rewrite based on code review feedback, implementing standard libraries and improving reliability.

Major Features

CLI Management

  • Cobra CLI Framework: Command-line interface with help, subcommands, and flag management
  • Viper Configuration: Configuration management with environment variable support and multiple config formats
  • Help Documentation: Help text and usage examples

Proxy Implementation

  • mwitkow/grpc-proxy Integration: Replaced custom proxy logic with established library
  • Reliability: Eliminates custom stream handling bugs and edge cases
  • Performance: Optimized request forwarding and resource management

gRPC Connection Management

  • Keep Alive Parameters: Prevents connection drops with configurable keep-alive settings
    • 10-second ping intervals
    • 1-second timeout for ping responses
    • Pings without active streams
  • TLS Configuration: Session caching and minimum TLS version enforcement
  • Connection Pooling: Reuses upstream connections for better performance

Operations

  • Signal Handling: SIGINT/SIGTERM handling for graceful shutdown
  • Resource Cleanup: Connection and listener management
  • Logging: Startup/shutdown logging

Technical Improvements

  • JWT Authentication: JWT token forwarding with test coverage
  • Error Handling: Descriptive error messages and failure recovery
  • Code Quality: Improved code structure and documentation
  • Test Coverage: Unit, integration, and authentication tests

Usage

# Show help
./grpc-proxy --help

# Use default config (./config.yaml)
./grpc-proxy

# Use custom config file
./grpc-proxy --config /path/to/your/config.yaml

# Graceful shutdown with Ctrl+C or SIGTERM

Migration Guide

No breaking changes - existing config.yaml files work unchanged.

  1. Binary name changed: grpc-auth-proxy → grpc-proxy
  2. CLI flags updated: -config → --config (old format still works)
  3. Functionality: All existing functionality preserved with improvements

Testing

  • Test Suite: Unit tests, integration tests, and JWT authentication tests
  • Mock gRPC Testing: Proxy behavior testing with mock upstream servers
  • CI/CD: Tests designed for automated testing environments

Architecture Changes

  • Dependencies: Added Cobra, Viper, and grpc-proxy libraries
  • Module Updates: Updated to latest gRPC and protobuf versions
  • Code Organization: Separation of concerns and maintainability improvements

Performance Improvements

  • Connection Reuse: Single upstream connection per endpoint with lifecycle management
  • Keep Alive: Prevents unnecessary connection re-establishment
  • Memory Efficiency: Resource management and cleanup

Security Enhancements

  • TLS 1.2 Minimum: Enforced minimum TLS version for secure connections
  • Session Caching: TLS session reuse for performance
  • JWT Security: Token handling and validation

Release Summary

This version provides a stable gRPC proxy with:

  • Standard libraries and patterns
  • Error handling and logging
  • Graceful startup and shutdown procedures
  • Test coverage including edge cases
  • CLI interface

Previous Releases

v0.0.2 - Configuration Path Enhancement

  • Custom config path support
  • Better error messages
  • Flexible file paths