Enterprise-grade database client with SAML authentication, advanced DBA tools, and comprehensive security features.
- Multi-Database Support: PostgreSQL, MySQL, Oracle
- SAML 2.0 Authentication: Enterprise SSO integration
- Advanced SQL Editor: Multi-tab editor with syntax highlighting, formatting, and EXPLAIN
- Object Browser: Browse tables, views, functions, indexes, sequences, triggers
- Results Management: Pagination, sorting, filtering, export (Excel, CSV, JSON, SQL)
- DBA Tools: Session/lock monitoring, performance analysis, maintenance tools
- Emergency Mode: One-click read-only mode and statement timeout
- Lock Graph Visualization: Visual blocking chain analysis
- Maintenance Tools: VACUUM, bloat analysis, autovacuum monitoring
- Performance Monitor: Top queries, unused indexes, query statistics
- Individual user credentials (no shared accounts)
- Session management with automatic timeouts
- Comprehensive audit logging (activity, security, errors)
- Destructive query confirmations
- Environment-specific safety controls (DEV/UAT/PROD)
- Export tracking for compliance
- Node.js 18+
- PostgreSQL/MySQL/Oracle database
- SAML 2.0 identity provider
# Clone repository
git clone https://github.com/deathrangerr/queryforge.git
cd queryforge
# Install dependencies
npm install
# Configure environment
cp .env.example .env
cp .env.server.example .env.server
# Edit .env and .env.server with your settings
# Configure SAML
cp saml-config.json.example saml-config.json
# Edit saml-config.json with your SAML settings
# Build frontend
npm run build
# Start server
node server.js# Terminal 1 - Backend
node server.js
# Terminal 2 - Frontend
npm run dev
# Access application
open http://localhost:5173-- Install pg_stat_statements extension
CREATE EXTENSION pg_stat_statements;
-- Grant monitoring privileges
GRANT pg_monitor TO your_dba_user;
-- Grant VACUUM privilege
GRANT VACUUM ON ALL TABLES IN SCHEMA public TO your_dba_user;
-- For emergency mode (requires elevated privileges)
ALTER USER your_dba_user WITH SUPERUSER;
-- OR
GRANT ALTER DATABASE TO your_dba_user;postgresql.conf:
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000Restart PostgreSQL after configuration changes.
- Quick Start Guide - Get up and running in 5 minutes
- User Guide - Complete end-user documentation
- Troubleshooting - Common issues and solutions
- Configuration Guide - Environment setup
- Deployment Guide - Production deployment
- Authentication Setup - SAML configuration
- Database Features - Feature documentation
- Phase A Features - Advanced DBA tools
- API Reference - Backend endpoints
- Architecture - System design
- Security Policy - Security best practices
- Logging & Compliance - Audit trails
- Security Audit - Security review
- Contributing Guide - How to contribute
- Code of Conduct - Community standards
- Documentation Index - Full documentation list
- SAML 2.0 enterprise SSO
- Individual user credentials
- Session-based authorization
- Automatic session timeouts (5 min inactivity, 60 min max)
- Database-native access control
- No privilege escalation
- User-level permissions enforced
- All queries logged with user and timestamp
- Security events tracked (login, logout, session kills)
- Export operations logged for compliance
- DBA actions logged (VACUUM, emergency mode, etc.)
- Credentials stored in session only (never persisted)
- No sensitive data in logs
- Secure session management
- HTTPS required in production
- React 18
- Vite 5.4
- CodeMirror (SQL editor)
- sql-formatter
- xlsx, papaparse (exports)
- Node.js + Express
- Passport-SAML
- Winston (logging)
- pg, mysql2, oracledb (database drivers)
queryforge/
├── src/ # Frontend source
│ ├── App.jsx # Main application
│ ├── SQLEditor.jsx # Multi-tab SQL editor
│ ├── ObjectBrowser.jsx # Database object browser
│ ├── ResultsViewer.jsx # Results with export
│ ├── DBATools.jsx # DBA tools (Phase A)
│ └── SearchEverywhere.jsx # Global search
├── docs/ # HTML documentation
│ ├── index.html # Documentation home
│ ├── user-guide.html # User guide
│ ├── api.html # API reference
│ └── ... # Other docs
├── documentation/ # Markdown documentation
│ ├── PHASE-A-COMPLETE.md # Phase A features
│ ├── ADVANCED-DBA-*.md # DBA documentation
│ └── ... # Technical docs
├── logs/ # Application logs
├── server.js # Backend server
├── package.json # Dependencies
├── .env # Environment config
├── .env.server # Server config
└── saml-config.json # SAML configuration
- SQL Editor with tabs
- Object Browser (6 types)
- Basic DBA tools
- Advanced results viewer
- Multiple export formats
- Row selection and filtering
- Session monitoring
- Lock monitoring
- User management
- Search Everywhere
- Global object search
- Emergency mode controls
- Lock graph visualization
- Maintenance tools (VACUUM, bloat)
- Performance monitoring
# Validate server
node --check server.js
# Build frontend
npm run build
# Run development server
npm run dev- Result limit: 10,000 rows per query
- Session timeout: 5 minutes inactivity
- Maximum session: 60 minutes
- Auto-refresh: 5 seconds (DBA tools)
- Follow existing code structure
- Add tests for new features
- Update documentation
- Follow security best practices
- Log all DBA operations
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE for details.
- Documentation: See
docs/folder - Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: See SECURITY.md
Version: 1.0.0
Status: Production Ready
Last Updated: February 2026
- ✅ Core Features: 100%
- ✅ DBA Tools: 100%
- ✅ Advanced Features: 100%
- ✅ Phase A: 100%
- ✅ Documentation: 100%
- ✅ Security: 100%
Built with ❤️ by the open-source community