Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 2, 2026

Comprehensive documentation for MySQL database backend support, completing the MySQL epic (#240). Adds MySQL alongside SQLite and PostgreSQL across all user-facing documentation with emphasis on production deployment best practices.

Core Changes

Database Selection & Configuration

  • database-selection.md: Added MySQL comparison table, connection string formats, TLS options, and cloud provider examples (Aurora, RDS, Cloud SQL, Azure)
  • configuration.md: MySQL environment variables, connection pool settings, and build tag requirements (-tags mysql)
  • README.md: MySQL in supported databases list and configuration examples

Getting Started

  • quickstart.md: Build options with MySQL support and startup examples
  • installation.md: Build-from-source instructions with database-specific tags

Deployment

  • helm.md: External and in-cluster MySQL deployment configurations
  • deployment/index.md: MySQL quick start examples for Kubernetes
  • architecture.md: Updated database layer and deployment diagrams

Production HA Guidance

Added warnings across all deployment docs:

⚠️ For production HA, use external managed MySQL:

  • Amazon Aurora MySQL / RDS
  • Google Cloud SQL
  • Azure Database for MySQL
  • Self-managed Group Replication or InnoDB Cluster

In-cluster MySQL StatefulSet is hardcoded to replicas: 1 (dev/test only).

Applied to:

  • deploy/helm/llm-proxy/README.md (MySQL and PostgreSQL sections)
  • docs/database/database-selection.md
  • docs/database/docker-compose-{mysql,postgres}.md
  • docs/deployment/helm.md

Build Tag Documentation

# SQLite only (default)
go build ./cmd/proxy

# With MySQL
go build -tags mysql ./cmd/proxy

# With PostgreSQL
go build -tags postgres ./cmd/proxy

# All databases
go build -tags "mysql,postgres" ./cmd/proxy

Connection String Examples

# MySQL with TLS
DATABASE_URL=user:pass@tcp(host:3306)/db?parseTime=true&tls=true

# PostgreSQL with SSL
DATABASE_URL=postgres://user:pass@host:5432/db?sslmode=require

Files changed: 14 (README, CHANGELOG, 8 docs/, 2 deploy/, 2 internal/)
Dependencies: Completes after #247 (driver), #248 (migrations), #253 (compose), #255 (helm), #256 (tests)

Original prompt

This section details on the original issue you should resolve

<issue_title>[MySQL] Documentation Updates</issue_title>
<issue_description>## Summary

Update all relevant documentation to include MySQL as a supported database backend, including configuration guides, deployment instructions, and architectural documentation.

Parent Epic

Part of #240 - Add MySQL as Optional Database Backend


🆕 Additional Items from PR Review

Single-Replica StatefulSet HA Guidance

During the review of PR sofatutor/llm-proxy#255 (Helm Chart MySQL Support), an important documentation item was identified:

The in-cluster MySQL StatefulSet is hardcoded to replicas: 1. The documentation must include clear guidance that:

⚠️ For production high-availability (HA) deployments, use an external managed MySQL service:

  • Amazon Aurora MySQL / Amazon RDS for MySQL
  • Google Cloud SQL for MySQL
  • Azure Database for MySQL
  • Self-managed MySQL Group Replication or InnoDB Cluster

Files requiring this note:

  • deploy/helm/llm-proxy/README.md - MySQL section
  • docs/database/database-selection.md - MySQL comparison
  • docs/deployment/kubernetes.md - MySQL deployment section

The in-cluster MySQL option should be clearly positioned as development/testing only.


Documentation Structure

flowchart TB
    subgraph CoreDocs["Core Documentation"]
        README["README.md"]
        DOCSIDX["docs/README.md"]
    end
    
    subgraph GettingStarted["Getting Started"]
        CONFIG["configuration.md"]
        QUICK["quickstart.md"]
    end
    
    subgraph DatabaseDocs["Database Documentation"]
        DBSEL["database-selection.md"]
        DCMYSQL["docker-compose-mysql.md (NEW)"]
        DBREADME["internal/database/README.md"]
    end
    
    subgraph DeployDocs["Deployment Documentation"]
        DOCKER["deployment/docker.md"]
        K8S["deployment/kubernetes.md"]
        HELMRM["helm/README.md"]
    end
    
    subgraph ArchDocs["Architecture Documentation"]
        ARCHIDX["architecture/index.md"]
        ARCHDB["architecture/database.md"]
    end
    
    subgraph ConfigDocs["Configuration"]
        ENVEX[".env.example"]
        ENVDOC["environment-variables.md"]
    end
    
    CoreDocs --> GettingStarted
    GettingStarted --> DatabaseDocs
    DatabaseDocs --> DeployDocs
    DeployDocs --> ArchDocs
    ConfigDocs --> DatabaseDocs
Loading

Detailed Task Breakdown

Phase 1: Core Documentation

Task Description Files
1.1 Add MySQL to supported databases list README.md
1.2 Update feature matrix README.md
1.3 Update quick start examples README.md
1.4 Update documentation index docs/README.md

Phase 2: Getting Started Guides

Task Description Files
2.1 Add MySQL configuration section docs/getting-started/configuration.md
2.2 Add MySQL quick start option docs/getting-started/quickstart.md
2.3 Document build tag requirements docs/getting-started/configuration.md

Phase 3: Database Documentation

Task Description Files
3.1 Add MySQL to comparison table docs/database/database-selection.md
3.2 Document MySQL pros/cons docs/database/database-selection.md
3.3 Create MySQL Docker guide docs/database/docker-compose-mysql.md
3.4 Update internal database README internal/database/README.md
3.5 Document connection string format Multiple files
3.6 Add HA guidance for production Multiple files (see above)

Phase 4: Deployment Documentation

Task Description Files
4.1 Add MySQL Docker Compose section docs/deployment/docker.md
4.2 Add MySQL Helm configuration docs/deployment/kubernetes.md
4.3 Update Helm chart README deploy/helm/llm-proxy/README.md
4.4 Document build arguments docs/deployment/docker.md
4.5 Add in-cluster MySQL limitations note deploy/helm/llm-proxy/README.md

Phase 5: Architecture Documentation

Task Description Files
5.1 Add MySQL to database layer docs/architecture/index.md
5.2 Document MySQL integration docs/architecture/database.md
5.3 Update architecture diagrams Multiple files

Phase 6: Configuration Documentation

Task Description Files
6.1 Add MySQL environment variables .env.example
6.2 Document MySQL variables docs/configuration/environment-variables.md
6.3 Add example configurations Multiple files

Phase 7: Changelog and Release Notes

Task Description Files
7.1 Add MySQL feature entry CHANGELOG.md
7.2 Document ...

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits January 2, 2026 21:56
- Updated README.md with MySQL support in features and config
- Expanded database-selection.md with MySQL comparison and production HA guidance
- Enhanced internal/database/README.md with MySQL references
- Updated getting-started/configuration.md with MySQL configuration
- Added MySQL to docs/README.md quick reference
- Updated Helm chart and deployment docs with MySQL and HA warnings
- Added CHANGELOG entry for MySQL documentation

Co-authored-by: mfittko <[email protected]>
- Updated quickstart.md with MySQL build options and setup
- Enhanced architecture.md with MySQL database support
- Added production HA warnings to docker-compose docs
- Updated deployment architecture diagrams to include MySQL

Co-authored-by: mfittko <[email protected]>
- Updated installation.md with MySQL build instructions
- Enhanced deployment/index.md with MySQL quick start examples
- Added database-specific build tag examples throughout
- Ensured all deployment paths mention MySQL support

Co-authored-by: mfittko <[email protected]>
Copilot AI changed the title [WIP] Update documentation for MySQL as a supported backend Add MySQL documentation with production HA guidance Jan 2, 2026
Copilot AI requested a review from mfittko January 2, 2026 22:05
@mfittko mfittko marked this pull request as ready for review January 2, 2026 22:31
Copilot AI review requested due to automatic review settings January 2, 2026 22:31
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive MySQL documentation to complete the MySQL epic (#240), integrating MySQL alongside SQLite and PostgreSQL across all user-facing documentation with a strong emphasis on production deployment best practices and high-availability guidance.

Key changes:

  • Added MySQL to all database comparison tables and configuration guides with consistent connection string formats and build tag documentation
  • Included production HA warnings across deployment documentation, clarifying that in-cluster MySQL/PostgreSQL StatefulSets are development/testing only
  • Provided cloud provider examples (Aurora, RDS, Cloud SQL, Azure) for production MySQL deployments

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
CHANGELOG.md Added entry documenting MySQL documentation updates
README.md Updated database support section to include MySQL with connection pool settings and build requirements
docs/README.md Added MySQL Docker Compose guide link and updated database selection guide description
docs/getting-started/quickstart.md Added MySQL build options and startup examples with Docker Compose profile
docs/getting-started/installation.md Added MySQL build instructions and startup commands with connection string examples
docs/getting-started/configuration.md Added comprehensive MySQL configuration section with connection string format, TLS options, and version compatibility
docs/deployment/index.md Added Helm quick start example for production MySQL deployment with external database
docs/deployment/helm.md Added MySQL external deployment section with HA warning and build requirements
docs/database/docker-compose-postgres.md Added production HA warning for PostgreSQL Docker Compose setup
docs/database/docker-compose-mysql.md Added production HA warning for MySQL Docker Compose setup
docs/database/database-selection.md Expanded comparison table to include MySQL, added comprehensive MySQL section with configuration, cloud examples, and production deployment guidance
docs/architecture/architecture.md Updated database layer description and deployment diagrams to include MySQL support and build tags
deploy/helm/llm-proxy/README.md Enhanced HA warnings for both PostgreSQL and MySQL in-cluster StatefulSets with specific managed service recommendations
internal/database/README.md Updated architecture diagrams, comparison table, and file structure to include MySQL support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MySQL] Documentation Updates

2 participants