This document outlines all potential features, improvements, and technical debt items identified for the dbfordevs project.
- High Priority
- Medium Priority
- Low Priority
- Database Drivers
- Testing & Quality
- Technical Debt
- UI/UX Enhancements
- AI Assistant Improvements
- Performance Optimizations
- Documentation
Status: Not Implemented Impact: High Effort: Medium
Currently, the application supports export only (JSON, CSV, INSERT SQL). Import is a fundamental feature for any database tool.
Implementation Tasks:
- CSV import with delimiter detection
- Column mapping UI (source column → target column)
- Data type validation and conversion
- JSON import for structured data
- SQL file execution (batch INSERT statements)
- Import preview with first N rows
- Error handling with row-level error reporting
- Progress indicator for large imports
- Duplicate handling options (skip, replace, fail)
- Transaction support (rollback on error)
Files to modify:
src-tauri/src/commands/queries.rs- New import commandssrc/components/data-grid/- Import UI componentssrc/hooks/useDatabase.ts- Import hook methods
Status: Not Implemented Impact: High Effort: Medium
Users cannot analyze query performance. EXPLAIN support would help optimize slow queries.
Implementation Tasks:
- Add EXPLAIN/EXPLAIN ANALYZE execution command
- Parse execution plan output per database type
- Visual tree view for query plan nodes
- Cost breakdown display
- Index usage highlighting
- Sequential scan warnings
- Row estimate vs actual comparison
- Query plan comparison (before/after optimization)
- Save execution plans for reference
Database-specific considerations:
- PostgreSQL:
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) - MySQL:
EXPLAIN FORMAT=JSON - SQLite:
EXPLAIN QUERY PLAN - MSSQL:
SET SHOWPLAN_XML ON
Status: Implemented Impact: High Effort: Low
The Monaco editor now includes SQL formatting capabilities.
Implementation Tasks:
- Integrate SQL formatting library (sql-formatter or similar)
- Format document command (Shift+Alt+F)
- Format selection command
- Auto-format on paste option
- Configurable formatting options:
- Keyword case (UPPER, lower, Preserve)
- Indentation style (spaces/tabs, size)
- Comma position (before/after)
- Line width limit
- Per-database dialect support
- Add to editor toolbar
- Add to right-click context menu
Library used: sql-formatter (npm package)
Status: Implemented Impact: High Effort: Medium
Users can create new tables via a wizard-style GUI with full column, constraint, and index support.
Implementation Tasks:
- Create Table dialog/wizard
- Column definition editor:
- Name, data type, length/precision
- Nullable checkbox
- Default value input
- Primary key checkbox
- Auto-increment option
- Constraint editor:
- Primary key (single/composite)
- Foreign keys with reference picker
- Unique constraints
- Check constraints
- Index creation
- Preview generated DDL
- Execute with confirmation
- Template tables (common patterns)
Status: Implemented Impact: Medium Effort: Low
Implementation Tasks:
- Save query as bookmark
- Bookmark manager UI
- Organize bookmarks in folders
- Quick access panel/dropdown
- Search within bookmarks
- Share bookmarks between connections
- Built-in query templates:
- Basic SELECT with JOIN
- INSERT template
- UPDATE template
- DELETE with WHERE
- Common aggregations
- Index creation
- Custom template creation
- Template variables/placeholders
Storage: Zustand store with localStorage persistence (dbfordevs-bookmarks)
Status: Implemented Impact: Medium Effort: Low
Implementation Tasks:
- Search panel accessible via Ctrl+Shift+F in right activity bar
- Search across:
- Table names
- Column names
- View names
- Stored procedures
- Functions
- Index names
- Triggers
- Sequences
- MongoDB collections and databases
- Redis keys
- Cassandra keyspaces and tables
- Fuzzy matching support with scoring
- Highlight matches in results
- Navigate to result on click (opens appropriate query/view)
- Search history (types defined but not active)
- Filter by object type
Files created:
src/components/schema-search/SchemaSearchPanel.tsx- Main search panelsrc/components/schema-search/SchemaSearchFilters.tsx- Object type filterssrc/components/schema-search/SchemaSearchResults.tsx- Grouped results displaysrc/components/schema-search/SchemaSearchResultItem.tsx- Individual result renderingsrc/stores/schema-search.ts- Zustand store with persistencesrc/lib/fuzzy-search.ts- Fuzzy matching algorithmsrc/types/schema-search.ts- Type definitions
Status: Display only Impact: Medium Effort: Low
Settings show keybindings but they cannot be changed.
Implementation Tasks:
- Keybinding configuration UI
- Conflict detection
- Reset to defaults
- Import/export keybindings
- Per-context bindings (editor, grid, global)
- Search keybindings
- Visual key recorder
Commands to make configurable:
- Execute query
- New tab
- Close tab
- Save query
- Format SQL
- Toggle sidebar
- Focus search
- Navigate tables
Status: Implemented Impact: Medium Effort: Low
Implementation Tasks:
- Search within history
- Filter by:
- Date range
- Connection (per-connection history)
- Success/failure
- Execution time
- Star/favorite queries
- History cleanup settings:
- Max history items
- Auto-delete after N days
- Clear all button
- Export history (JSON, CSV)
- Query execution statistics
- Duplicate detection
Files modified:
src/types/index.ts- Added QueryHistorySettings, QueryHistoryFilters, QueryHistoryStats typessrc/stores/query.ts- Added history settings, cleanup, favorites, export, and statisticssrc/components/query-history/QueryHistoryPanel.tsx- Complete rewrite with filters, stats, exportsrc/components/query-history/QueryHistoryItem.tsx- Added favorites supportsrc/components/query-history/QueryHistoryDropdownItem.tsx- Added favorites indicatorsrc/components/settings/SettingsDialog.tsx- Added Query History settings in Advanced tabsrc/App.tsx- Added auto-cleanup on startup
Status: Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Column reordering (via header menu)
- Column hiding/showing (ColumnVisibilityPopover)
- Column pinning (freeze left/right)
- Row height configuration (compact/default/comfortable/spacious)
- Cell value formatting options:
- Date/time formats (ISO, locale, relative, custom)
- Number formats (compact, percentage, decimal places)
- JSON pretty-print (collapsed, inline, pretty)
- Conditional formatting (highlight cells with rule builder)
- Column statistics (count, sum, avg, min, max, stdDev)
- Copy cell/row/column (JSON, CSV, INSERT)
- Find & replace in results (Ctrl+F, regex support)
- NULL value display customization (text, style, color)
- Binary data preview (hex view, base64, text)
- Image preview for BLOB/BYTEA (auto-detect PNG/JPEG/GIF/WebP/BMP)
Files created:
src/types/grid.ts- Type definitionssrc/stores/grid.ts- Zustand store with persistencesrc/lib/format-utils.ts- Date/number/JSON formattingsrc/lib/binary-utils.ts- Binary detection and hex viewsrc/components/data-grid/ColumnVisibilityPopover.tsxsrc/components/data-grid/ColumnHeaderMenu.tsxsrc/components/data-grid/CellContextMenu.tsxsrc/components/data-grid/ColumnStatisticsDialog.tsxsrc/components/data-grid/FindReplaceBar.tsxsrc/components/data-grid/BinaryPreviewDialog.tsxsrc/components/data-grid/ConditionalFormatDialog.tsxsrc/components/settings/GridSettingsTab.tsx
Status: Not Implemented Impact: Low Effort: Medium
Support queries returning multiple result sets.
Implementation Tasks:
- Tab per result set
- Result set navigation
- Stored procedure output parameters
- PRINT/RAISERROR message capture (MSSQL)
Status: Implemented Impact: Low Effort: High
Implementation Tasks:
- Create/Edit/Drop Views
- Create/Edit/Drop Indexes
- Create/Edit/Drop Stored Procedures
- Create/Edit/Drop Functions
- Create/Edit/Drop Triggers
- Create/Edit/Drop Sequences
- User/Role management
- Permission management
Files created:
src-tauri/src/commands/views.rs- View management commandssrc-tauri/src/commands/indexes.rs- Index management commandssrc/stores/views.ts- Views Zustand storesrc/stores/indexes.ts- Indexes Zustand storesrc/stores/users.ts- Users/Roles Zustand storesrc/components/users/- User management UI components
Status: Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Compare two query results
- Schema diff between connections
- Data diff between tables
- Generate migration scripts
- Side-by-side view
- Visual diff with change categorization
Files created:
src-tauri/src/db/diff.rs- Diff engine (1,859 lines) with database-specific migration SQL generationsrc-tauri/src/commands/diff.rs- Tauri commands (compare, snapshot, list, delete)src-tauri/src/models/diff.rs- Data modelssrc-tauri/src/storage/snapshots.rs- Snapshot persistencesrc/components/diff/SchemaDiffDialog.tsx- 3-step wizard UIsrc/components/diff/SourceSelectionStep.tsx- Connection/table/snapshot selectionsrc/components/diff/DiffVisualizationStep.tsx- Visual diff displaysrc/components/diff/MigrationPreviewStep.tsx- Migration script preview and exportsrc/stores/diff.ts- Zustand storesrc/types/diff.ts- TypeScript types
Features:
- Compare schemas across connections, tables, or vs snapshots
- Point-in-time schema snapshots
- Color-coded diff (green=added, red=removed, blue=modified)
- Database-specific migration SQL (PostgreSQL, MySQL, SQLite, Oracle, MSSQL)
- Destructive operation warnings
- Copy/download migration scripts
- 8 unit tests for diff logic
Status: Implemented Impact: Low Effort: Low
Implementation Tasks:
- Group connections by environment (dev/staging/prod)
- Custom tags/labels
- Color coding
- Collapse/expand groups
- Filter by group/tag
- Bulk operations on groups
Files created:
src/components/ui/color-picker.tsx- Color palette pickersrc/components/ui/tag-badge.tsx- Colored tag badge componentsrc/components/connections/ConnectionFilterBar.tsx- Search and filter UIsrc/components/connections/GroupManagerDialog.tsx- Group CRUD dialogsrc/components/connections/AssignGroupDialog.tsx- Assign group/tags to connectionsrc/components/layout/ConnectionGroupItem.tsx- Collapsible group container
Files modified:
src/types/index.ts- Added ConnectionGroup, ConnectionTag interfacessrc/stores/connections.ts- Extended with groups, tags, filters, migrationsrc/stores/ui.ts- Added dialog state managementsrc/components/layout/Sidebar.tsx- Integrated grouped rendering
Status: Not Implemented Impact: Low Effort: High
Implementation Tasks:
- Schedule query execution
- Cron-like scheduling
- Export results automatically
- Email notifications
- Execution history
- Error alerting
Status: Implemented Impact: High Effort: High
Implementation Tasks:
- Add
mongodbRust crate dependency - Implement
DatabaseDrivertrait for MongoDB - Collection listing (equivalent to tables)
- Document querying with MongoDB query syntax
- Document CRUD operations
- Index management
- Aggregation pipeline support
- Schema inference for documents
- Connection string parsing (standard and Atlas SRV)
- Authentication (SCRAM-SHA-256)
Files Created:
src-tauri/src/db/mongodb.rs- Core MongoDB driver (~1100 lines)src-tauri/src/commands/mongodb.rs- 25+ Tauri commandssrc/types/mongodb.ts- TypeScript interfacessrc/stores/mongodb.ts- Zustand storesrc/hooks/useMongoDB.ts- React hook wrappersrc/components/mongodb/- UI components (MongoConnectionContent, MongoBrowser, MongoDocumentViewer, MongoDocumentEditor, MongoShell, MongoServerInfo)
Features Implemented:
- Database and collection browsing with tree view
- Document browser with filter, sort, and pagination
- Document CRUD operations (view, insert, edit, delete)
- Index management (list, create, drop)
- Aggregation pipeline support
- MongoDB Shell for raw command execution
- Server info dashboard with connection and storage stats
- Support for both
mongodb://andmongodb+srv://(Atlas) connection strings
Status: Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Add
redisRust crate dependency - Key listing with pattern matching
- Key type detection
- Value viewing/editing per type:
- Strings
- Lists
- Sets
- Sorted Sets
- Hashes
- Streams
- TTL management
- Key deletion
- Redis CLI mode
- Pub/Sub viewer
- Memory usage statistics
Status: Implemented Impact: Medium Effort: High
Implementation Tasks:
- Evaluate Rust Oracle crates (oracle, sibyl)
- Implement
DatabaseDrivertrait - Handle Oracle-specific types (NUMBER, VARCHAR2, CLOB, BLOB)
- PL/SQL execution support
- Package/procedure browsing
- TNS connection string support (Easy Connect format)
- Oracle Wallet authentication
Files: src-tauri/src/db/oracle.rs
Features Implemented:
- Full Oracle driver using
oraclecrate with deadpool connection pooling - Easy Connect format support (
//host:port/service_name) - All core operations: queries, tables, schemas, indexes, constraints, foreign keys
- Oracle-specific type handling (NUMBER, VARCHAR2, CHAR, CLOB, BLOB, DATE, TIMESTAMP)
- EXPLAIN PLAN visualization with DBMS_XPLAN
- DDL generation using DBMS_METADATA
- System schema filtering (SYS, SYSTEM, APEX_*, etc.)
Status: Implemented Impact: Medium Effort: High
Implementation Tasks:
- Add
scyllacrate - Keyspace/table listing
- CQL query execution
- Partition key awareness
- Cluster topology view (server info with nodes, datacenters)
- Consistency level configuration
- Keyspace management (create, drop)
- Table management (describe, drop, truncate)
- Index listing
- CQL Shell with history
- SSH tunnel support
Files created:
src-tauri/src/db/cassandra.rs- Core driver (~1,200 lines) usingscyllacratesrc-tauri/src/commands/cassandra.rs- 10 Tauri commandssrc/types/cassandra.ts- TypeScript interfaces (148 lines)src/stores/cassandra.ts- Zustand store (339 lines)src/hooks/useCassandra.ts- React hook (474 lines)src/components/cassandra/CassandraShell.tsx- CQL editorsrc/components/cassandra/CassandraBrowser.tsx- Schema browsersrc/components/cassandra/CassandraConnectionContent.tsx- Main interfacesrc/components/cassandra/CassandraServerInfo.tsx- Cluster info
Status: Not Implemented Impact: High Effort: High
Implementation Tasks:
- Set up Playwright or Cypress
- Connection creation flow test
- Query execution flow test
- Export functionality test
- Theme switching test
- AI assistant interaction test
- Error handling scenarios
- CI/CD integration
Status: Not Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Unit tests for
commands/connections.rs - Unit tests for
commands/queries.rs - Unit tests for
commands/tables.rs - Mock database connections
- Error case coverage
Status: Partial Impact: Medium Effort: Medium
Implementation Tasks:
- Data grid component tests
- Connection form tests
- Settings dialog tests
- AI panel tests
- Query editor tests
- Increase coverage to 80%+
Status: Completed Impact: Critical (Security) Effort: Medium
Location: src-tauri/src/commands/queries.rs, src-tauri/src/db/connection.rs
Implementation Tasks:
- Replace string interpolation with parameterized queries
- Update
insert_rowcommand - Update
update_rowcommand - Update
delete_rowcommand - Add input validation
- SQL injection test cases
- Implement
execute_parameterizedfor PostgreSQL, MySQL, SQLite, MSSQL, Oracle - Unit tests for placeholder generation and WHERE condition formatting
Status: Inconsistent Impact: Medium Effort: Low
Implementation Tasks:
- Standardize error types across all commands
- User-friendly error messages
- Error codes for programmatic handling
- Logging improvements
- Error tracking/reporting
Status: Basic Impact: Medium Effort: Medium
Implementation Tasks:
- Connection pool statistics UI
- Pool size configuration
- Connection timeout settings
- Idle connection cleanup
- Connection health checks
- Reconnection strategies
Status: Implemented Impact: Low Effort: Low
Implementation Tasks:
- More theme variants (Solarized Dark/Light, One Dark, High Contrast)
- Custom theme creator UI with live preview
- Theme import/export (JSON format)
- Syntax highlighting theme sync (Monaco editor)
- High contrast mode (WCAG AAA compliant)
Files created:
src/types/theme.ts- Theme type definitions and default color constantssrc/stores/themes.ts- Custom themes Zustand store with persistencesrc/lib/themes/utils.ts- Theme application utilities (CSS injection)src/lib/themes/validation.ts- Theme validation functionssrc/lib/themes/monaco-generator.ts- Monaco theme generationsrc/components/themes/ThemeManagerDialog.tsx- Theme management dialogsrc/components/themes/ThemeEditor.tsx- Color editing panel with collapsible sectionssrc/components/themes/ThemePreview.tsx- Live theme preview componentsrc/components/ui/hsl-color-picker.tsx- HSL color picker with hex support
Files modified:
src/index.css- Added 4 new theme CSS classes (~300 lines)src/stores/ui.ts- Extended Theme type to supportcustom:${id}formatsrc/components/editor/monaco-themes.ts- Added 4 Monaco themessrc/components/settings/SettingsDialog.tsx- Theme manager integration
Status: Basic Impact: Medium Effort: Medium
Implementation Tasks:
- Keyboard navigation audit
- Screen reader support
- ARIA labels
- Focus indicators
- Color contrast compliance
- Reduced motion support
Status: Desktop only Impact: Low Effort: Medium
Implementation Tasks:
- Tablet layout optimization
- Collapsible panels for small screens
- Touch-friendly controls
- Mobile companion app (future)
Status: Not Implemented Impact: Medium Effort: Low
Implementation Tasks:
- First-run welcome wizard
- Feature tour/highlights
- Sample database option
- Quick start guide
- Contextual help tooltips
- Video tutorial links
Status: Basic toasts Impact: Low Effort: Low
Implementation Tasks:
- Notification center
- Notification history
- Query completion notifications
- Error notifications with actions
- Desktop notifications (optional)
Status: Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Include foreign key relationships in context
- Include indexes in context
- Include sample data option
- Context size indicator
- Manual context editing
- Context templates
Files created:
src/lib/ai/context-builder.ts- Context building with relationships, indexes, sample datasrc/lib/ai/types.ts- Type definitions for context entriessrc/components/ai/AIContextPanel.tsx- Context UI with size indicator and manual editingsrc/components/ai/ContextConfigDialog.tsx- Template management UI
Status: Implemented Impact: Medium Effort: Medium
Implementation Tasks:
- Syntax validation before execution
- Semantic validation (table/column existence)
- Performance warnings
- Security warnings (DROP, TRUNCATE, etc.)
- Suggested improvements
Files created:
src/lib/ai/validation.ts- Full validation engine with syntax, semantic, performance, and security checkssrc/components/ai/QueryValidationBadge.tsx- Interactive validation UI with issue popover
Status: Partial Impact: Low Effort: Low
Implementation Tasks:
- Export chat history to Markdown
- Export to PDF
- Share chat sessions
- Chat templates
Files created:
src/lib/ai/export.ts- Markdown and JSON export with timestamps, usage stats, SQL-only modesrc/components/ai/ChatExportDialog.tsx- Export UI with preview, copy, and downloadsrc/components/ai/ChatTemplateSelector.tsx- Chat template selection UI
Status: Not Implemented Impact: Medium Effort: High
Implementation Tasks:
- Stream large result sets
- Progressive loading
- Cancel long-running queries
- Memory usage optimization
- Result set pagination
Status: Basic Impact: Low Effort: Low
Implementation Tasks:
- Schema metadata caching
- Table list caching
- Cache invalidation strategies
- Cache size limits
- Manual cache refresh
Status: Partial Impact: Low Effort: Low
Implementation Tasks:
- Lazy load schema tree
- Lazy load large tables
- Code splitting optimization
- Bundle size reduction
Status: Minimal Impact: Medium Effort: Medium
Implementation Tasks:
- User guide
- Feature documentation
- Keyboard shortcuts reference
- FAQ section
- Troubleshooting guide
- Video tutorials
Status: CLAUDE.md exists Impact: Low Effort: Low
Implementation Tasks:
- Architecture documentation
- API documentation
- Contributing guidelines expansion
- Code style guide
| Priority | Feature | Impact | Effort | Status |
|---|---|---|---|---|
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| P3 | Customizable Keybindings | Medium | Low | Not Started |
| P3 | E2E Tests | High | High | Not Started |
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| Implemented | ||||
| P4 | AI Chat Export | Low | Low | Partial |
- ✅ Data Import (CSV, JSON, SQL)
- ✅ SQL Formatter
- ✅ Query Bookmarks
- ✅ Query Execution Plans
- ✅ Table Creation UI
- ✅ Oracle Driver
- ✅ View Management (Create/Drop/DDL)
- ✅ Index Management (Create/Drop/DDL)
- ✅ User/Role Management
- ✅ Permission Controls
- ✅ Query History Enhancements
- ✅ Data Grid Enhancements
- ✅ MongoDB Driver (full implementation)
- ✅ Redis Driver (full implementation)
- ✅ Document Viewer/Editor
- ✅ MongoDB Shell & Aggregation Pipeline
- ✅ Redis CLI & Pub/Sub
- ✅ Query Validation (AI-powered)
- ✅ Performance Warnings
- ✅ AI Context Enhancements (relationships, indexes, sample data)
- ✅ Global Schema Search (full implementation with fuzzy search)
- ✅ Schema Diff (3-step wizard with migration script generation)
- ✅ Cassandra Driver (full implementation)
- ✅ MSSQL Named Instance Support
- ✅ Parameterized CRUD Queries (security improvement)
- Table Truncate
- Customizable Keybindings
- Command Palette
- E2E Test Infrastructure
- Full Test Coverage
- Backup/Restore
- Accessibility Compliance
- Data Visualization basics
Last updated: February 1, 2026 Updated from codebase analysis - v0.5.3