data-peek/docs/roadmap.md
Rohith Gilla a168975867
feat: add 6 new features — stats, masking, CSV import, data gen, notifications, health monitor (#119)
* 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>
2026-03-18 08:18:55 +05:30

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!