Skip to content

feat: Add GizmoSQL microservice and end-to-end testing infrastructure#12

Merged
J0hnG4lt merged 12 commits intomainfrom
feat/add-gizmo-microservice-demo
Dec 24, 2025
Merged

feat: Add GizmoSQL microservice and end-to-end testing infrastructure#12
J0hnG4lt merged 12 commits intomainfrom
feat/add-gizmo-microservice-demo

Conversation

@J0hnG4lt
Copy link
Owner

@J0hnG4lt J0hnG4lt commented Dec 24, 2025

Summary

  • Add GizmoSQL as a test Flight SQL server (DuckDB-based) with comprehensive test data
  • Add automated setup script (scripts/metabase_setup.py) for end-to-end testing
  • Fix critical connection pooling bug that caused random query failures
  • Fix multi-catalog support (catalog filtering without SetSessionOptions RPC)
  • Add support for field filter aliases in JOIN queries
  • Upgrade Metabase to v0.57.7 and Spice AI to v1.10.2
  • Add Claude Code integration with CLAUDE.md and /e2e-test skill

Changes

New Features

  • GizmoSQL Integration: Added GizmoSQL container with multi-catalog test data:
    • memory catalog: sales, hr, analytics schemas (13 tables)
    • warehouse catalog: archive, reports schemas (2 tables)
    • staging catalog: imports, temp schemas (2 tables)
  • Automated Setup Script: Python script that performs initial Metabase setup, creates databases, and builds a comprehensive test dashboard with 32 cards and 5 field filters
  • Field Filter Aliases: Support for alias property in template tags for JOIN queries
  • Catalog Filtering: GizmoSQL connection defaults to memory catalog

Bug Fixes

  • Connection Pooling Fix: Moved anonymous cast function to a stable named function to prevent constant pool invalidation
  • Multi-Catalog Support Fix: Removed catalog parameter from JDBC URL (causes SetSessionOptions RPC error on servers that don't support it). Catalog is now used only for filtering during schema sync. (catalog support was originally added here)
  • Removed env_file requirement: docker-compose no longer requires .env file to start

Infrastructure

  • Organized config files into dedicated folders (spice/, gizmosql/)
  • Upgraded Spice AI to v1.10.2 (removed user: root as new image uses non-root user)
  • Added .claude/commands/e2e-test.md skill for guided testing
  • Updated CLAUDE.md with development learnings and best practices
  • Updated README with quick start guide and troubleshooting section

Test Plan

  • Clean start: podman compose down -v && podman compose up -d
  • Setup script completes successfully
  • GizmoSQL syncs 13 tables (memory catalog only)
  • Spice syncs 1 table
  • Dashboard loads with all 32 cards
  • Field filters work on single table queries
  • Field filters work on JOIN queries with aliases
  • Filtered query returns correct results (9 rows for status=Delivered)
  • No "Hash of database details changed" warnings in logs
  • Connection pool maintains active connections
  • Catalog-filtered connections work (warehouse, staging)

🤖 Generated with Claude Code

@J0hnG4lt J0hnG4lt self-assigned this Dec 24, 2025
@J0hnG4lt J0hnG4lt marked this pull request as draft December 24, 2025 19:34
@J0hnG4lt J0hnG4lt marked this pull request as ready for review December 24, 2025 20:37
@J0hnG4lt J0hnG4lt merged commit 89060fc into main Dec 24, 2025
2 checks passed
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.

1 participant