Skip to content

Refocus the UI on core database workflows - #2

Merged
gopalmani merged 1 commit into
mainfrom
feat/concise-product-ui
Aug 20, 2026
Merged

Refocus the UI on core database workflows#2
gopalmani merged 1 commit into
mainfrom
feat/concise-product-ui

Conversation

@gopalmani

@gopalmani gopalmani commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the generated multi-page frontend with a concise, API-backed product flow built around the three actions QueryMindAI actually supports:

  1. Connect and inspect a PostgreSQL database
  2. Generate, review, and explicitly run safe SQL
  3. Review approved query executions in history

It also moves production application storage from the suspended Render PostgreSQL resource to an externally supplied Supabase connection and hardens the merge-to-deploy path.

What changed

Product UI

  • Reduced primary navigation to Connections, Query, and History
  • Rebuilt Connections with structured fields and connection URL input
  • Kept connection creation, testing, encrypted storage, schema refresh, schema inspection, and deletion functional through the existing BYOD API
  • Folded Schema Explorer into each saved connection
  • Preserved the explicit Generate SQL → review → Run query approval boundary
  • Added real result states, CSV export, warnings, assumptions, explanations, and verified-example saving
  • Rebuilt Query History from real API executions and connection metadata
  • Removed fake login, metrics, charts, activities, sample connections, and generated editor components
  • Added redirects from legacy URLs

Deployment and repository controls

  • Removed the suspended Render PostgreSQL resource from render.yaml
  • Made backend DATABASE_URL a non-synced secret suitable for a Supabase session-pooler URL
  • Removed Render root-directory and build-filter restrictions so every main commit can deploy both services
  • Set both services to deploy automatically after CI checks pass
  • Made backend and frontend CI run for every pull request and every push to main
  • Added CODEOWNERS for @gopalmani
  • Added Supabase, secret handling, migration, and automatic deployment documentation

Data integrity and safety

  • No connection, schema, result, metric, or history data is fabricated in the UI
  • Credentials are submitted only to the backend and are never rendered back to the browser
  • SQL generation and execution remain separate API operations
  • Execution history is created only after explicit user approval
  • No Supabase password or connection string is committed

Validation

  • Backend tests: 58 passed
  • Frontend lint: npm run lint
  • Frontend type-check: npm run type-check
  • Frontend production build: npm run build
  • Production route and legacy redirect checks
  • Compose, Render, and workflow YAML syntax validation
  • Docker image build was not rerun because Docker is unavailable locally
  • Live Supabase migration requires DATABASE_URL to be entered directly in Render

Required deployment steps after merge

  1. Rotate the Supabase database password if it has been shared outside a secret manager.
  2. Copy the Supabase Session pooler URL on port 5432.
  3. Change its prefix to postgresql+psycopg2://, append ?sslmode=require, and set it as the API DATABASE_URL secret in Render.
  4. Confirm the Blueprint is linked to main with Auto Sync enabled.
  5. The API startup command runs alembic upgrade head; verify /health and /ready after deployment.
  6. Delete the suspended Render database only after Supabase is ready or after exporting any data that must be retained.

Automatic deployment

After merge to main, both GitHub Actions suites run. When they pass, Render automatically deploys both querymind-api and querymind-web.

@gopalmani
gopalmani marked this pull request as ready for review August 20, 2026 19:02
@gopalmani
gopalmani merged commit 4869ee7 into main Aug 20, 2026
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