mirror of
https://github.com/Rohithgilla12/data-peek
synced 2026-04-21 21:07:17 +00:00
* docs: add design spec for 6 new features
Column Statistics, Data Masking, CSV Import, Data Generator,
DB Notifications, and Connection Health Monitor.
* docs: update spec with review fixes
Resolve all 15 review issues: naming conflicts, preload layer,
batch insert interface, guard clauses, confirmation dialogs, etc.
* docs: add implementation plan for 6 features
Fix critical issues from review: adapter connection pattern,
preload event subscription pattern, tab interface definitions,
ColumnStatsRequest type, and implementation notes.
* feat: add column statistics panel (Tasks 1.1-1.8)
Implement the Column Statistics feature allowing users to right-click a
column header and view min/max/nulls/distinct/histogram in a right sidebar
panel. Supports PostgreSQL (full implementation with median + histogram),
MySQL (CASE WHEN histogram, no median), and MSSQL (NTILE histogram +
PERCENTILE_CONT median). Includes shared types, IPC handler, Zustand
store, stats panel UI, and DataTable integration via onColumnStatsClick.
* feat: add Data Masking feature (renderer-only)
Adds blur-based data masking so users can hide sensitive columns during
demos, screenshots, and pair programming. Entirely renderer-only — no
IPC or main process changes.
- masking-store: Zustand store with manual per-tab masking, auto-mask
rules (email/password/ssn/token etc.), hover-to-peek, and persist
middleware for rules/settings only (runtime maskedColumns not persisted)
- masking-toolbar: dropdown UI for toggling auto-mask, managing rules,
adding custom regex patterns, and unmasking all columns for a tab
- data-table: accepts optional tabId, shows lock icon on masked headers,
adds Mask/Unmask to column dropdown, applies blur(5px) + userSelect:none
to masked cells with alt-hover peek support
- editable-data-table: same masking UX; masked cells block editing
- tab-query-editor: wires tabId into DataTable, renders MaskingToolbar
near Export, intercepts exports when masked columns are present and
shows an AlertDialog to confirm exporting with [MASKED] values
* feat(csv-import): implement CSV import feature (Tasks 3.1-3.5)
- Add shared types: CsvColumnMapping, CsvImportOptions, CsvImportRequest,
CsvImportProgress, CsvImportResult, BatchInsertOptions, BatchInsertResult
- Install papaparse for CSV parsing in renderer
- Create batch-insert.ts: parameterized INSERT with per-dialect placeholder
syntax (pg: $1/$2, mysql: ?, mssql: @p1/@p2), ON CONFLICT handling, and
cancellation support
- Add import-handlers.ts IPC handler for db:import-csv and db:import-cancel;
progress events pushed via event.sender.send('db:import-progress')
- Add import-store.ts Zustand store with 5-step wizard state, type inference
for new tables (integer/numeric/timestamp/boolean/text), and auto-mapping
- Create csv-import-dialog.tsx Sheet dialog: file drop zone, target selection,
column mapping, options (batch size/conflict/truncate/transaction), and
progress/result step
- Add "Import CSV" to schema explorer table context menu (both virtualized
and non-virtualized paths)
* feat: add Data Generator feature (Tasks 4.1-4.5)
Adds schema-aware fake data generation using @faker-js/faker. Users can
open a data-generator tab from the schema explorer context menu on any
table, configure per-column generators (faker, random-int/float/bool/date,
uuid, auto-increment, fk-reference, fixed, null), preview 5 sample rows,
and insert up to 10 000 rows in configurable batches with live progress.
- packages/shared: GeneratorType, ColumnGenerator, DataGenConfig,
DataGenProgress, DataGenResult types
- main: data-generator.ts engine with heuristics + faker dispatch
- main: data-gen-handlers.ts IPC for generate, cancel, preview
- preload + preload d.ts: generateData, cancelGenerate, generatePreview,
onGenerateProgress on window.api.db
- stores: DataGeneratorTab type added to tab-store; data-gen-store for
per-tab generator state and actions
- renderer: data-generator.tsx UI; schema-explorer "Generate Data" menu
item; tab-query-editor dispatch for data-generator tab type
* feat: add PostgreSQL LISTEN/NOTIFY dashboard (Chunk 5)
Implements a full LISTEN/NOTIFY panel for PostgreSQL connections:
- Shared types: PgNotificationEvent, PgNotificationChannel, PgNotificationStats
- Main process: dedicated pg.Client listener per connection with SSH tunnel
support, auto-reconnect with exponential backoff, and SQLite event history
(capped at 10k events per connection)
- IPC handlers under pg-notify: prefix; cleanup on app quit
- Preload: pgNotify namespace exposing subscribe/unsubscribe/send/getChannels/
getHistory/clearHistory/onEvent
- Store: usePgNotificationStore with rolling 60s stats and in-memory event cap
- Tab type: pg-notifications added to TabType union with deduplication
- UI: channel subscription bar, scrollable event log with JSON highlighting,
collapsible send panel and stats; PostgreSQL-only guard
- Sidebar: Notifications entry visible only for PostgreSQL connections
* feat(shared): add health monitor types (Task 6.1)
Add ActiveQuery, TableSizeInfo, CacheStats, LockInfo, and
DatabaseSizeInfo types to the shared package for IPC contract.
* feat(adapters): implement health monitor queries (Task 6.2)
Add getActiveQueries, getTableSizes, getCacheStats, getLocks, and
killQuery to DatabaseAdapter interface with implementations for
PostgreSQL, MySQL, MSSQL, and SQLite stub.
* feat(ipc): add health monitor IPC handlers (Task 6.3)
Register IPC handlers for db:active-queries, db:table-sizes,
db:cache-stats, db:locks, and db:kill-query channels.
* feat(preload): expose health monitor API to renderer (Task 6.4)
Add health namespace to preload bridge with activeQueries, tableSizes,
cacheStats, locks, and killQuery methods plus type declarations.
* feat(store): add health monitor Zustand store (Task 6.5)
Create useHealthStore with polling, fetch actions for all health
metrics, and kill query support.
* feat(ui): add health monitor dashboard tab (Task 6.6)
Add HealthMonitor component with 4-panel dashboard: active queries
with kill support, table sizes with sorting, cache hit ratios with
color coding, and lock/blocking detection. Integrate into tab system
and sidebar navigation.
* chore: apply prettier formatting
* fix: resolve empty block statement lint errors
* fix: add column stats to editable table and fix masking infinite loop
Column statistics dropdown now available in table preview (editable)
mode. Fixed MaskingToolbar infinite re-render caused by creating a new
empty array reference on every store snapshot.
* docs: update README, features, roadmap, and marketing site for 6 new features
Add Column Statistics, Data Masking, CSV Import, Data Generator,
Connection Health Monitor, and PostgreSQL Notifications to all
documentation and the marketing website features grid.
* Apply suggestions from code review
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
---------
Co-authored-by: tembo[bot] <208362400+tembo[bot]@users.noreply.github.com>
4.2 KiB
4.2 KiB
| title | description |
|---|---|
| Roadmap | Planned features and future development direction for data-peek |
Roadmap
This document outlines planned features and future development priorities for data-peek. Features are organized by priority and scope.
Pending Features (from v1.1/v2.0 scope)
| Priority | Feature | Description | Scope |
|---|---|---|---|
| Medium | Connection groups/folders | Organize connections into folders/groups | v1.1 |
| Low | Database diff tool | Compare schemas between databases | v2.0 |
Suggested Features
High Priority
| Feature | Description |
|---|---|
| Query Snippets/Templates | Pre-built SQL templates for common operations (SELECT *, COUNT, JOINs, etc.) |
| Connection Cloning | Quickly duplicate existing connections with modifications |
| Query History Search | Filter and search through query history |
| Keyboard Shortcut Customization | Allow users to remap keyboard shortcuts |
Medium Priority
| Feature | Description |
|---|---|
| Query Scheduling | Run queries on a local schedule (cron-like) |
| Multiple Result Sets UI | Better UI for queries returning multiple result sets |
| Schema Comparison | Compare schemas between two connections |
| Query Profiler | More detailed execution stats beyond current telemetry |
Nice to Have
| Feature | Description |
|---|---|
| Stored Procedure Debugger | Step through stored procedures |
| SQL Linting | Highlight potential SQL issues (missing indexes, N+1 patterns) |
Pro Tier Features (Planned)
These features are planned for the commercial Pro tier:
| Feature | Description |
|---|---|
| Cloud Sync | Sync settings, connections, and saved queries across devices |
| Team Workspaces | Collaborate with team members on queries and connections |
| Shared Query Library | Share queries across your organization |
| SSO/SAML | Enterprise single sign-on support |
| Audit Logs | Track who ran what queries and when |
Technical Improvements
| Area | Description |
|---|---|
| Safe Storage | Investigate and fix safeStorage corruption issues for credential encryption |
| Offline Features | Expand offline functionality beyond current license grace period |
Current Feature Status
For reference, here's what's already implemented:
Core
- Multi-database support (PostgreSQL, MySQL, MSSQL, SQLite)
- SSH tunnel connections with password and key auth
- Encrypted credential storage using OS keychain
- SSL connection support
Query Editor
- Monaco editor with SQL syntax highlighting
- Schema-aware autocomplete with table alias support
- Multi-tab and multi-window support
- Saved queries with organization
- Command palette (
Cmd+K) - Query formatting/beautify
Performance Analysis
- Query telemetry with waterfall visualization
- Benchmark mode (p50/p90/p99 statistics)
- EXPLAIN viewer with interactive visualization
- Query cancellation
Data Management
- Schema explorer (tables, views, stored procedures, functions)
- Inline editing (INSERT/UPDATE/DELETE)
- Table designer with full DDL support
- JSON editor for JSON/JSONB columns
- Export to CSV, JSON, Excel
- Server-side pagination
- CSV import with column mapping, type inference, and conflict handling
- Data generator with Faker.js integration and FK awareness
- Column statistics (one-click profiling with histograms and top values)
- Data masking (blur sensitive columns with auto-mask rules)
Database Monitoring
- Connection health monitor (active queries, table sizes, cache stats, locks)
- PostgreSQL LISTEN/NOTIFY pub/sub dashboard
- Kill queries from health monitor
Visualization
- ERD diagrams with interactive visualization
- Foreign key navigation
AI Assistant
- Multi-provider support (OpenAI, Anthropic, Google, Groq, Ollama)
- Natural language to SQL
- Charts and insights generation
- Schema-aware responses
User Experience
- Dark/Light mode with system preference
- Keyboard-first design
- Auto-updates
- Multi-window support
Contributing
Want to help implement a feature? Check out our Contributing Guide and pick an item from this roadmap!