DORA
Features
Multi-DatabasePostgreSQL, MySQL, SQLite & libSQLQuery HistorySearch, replay and analyze every querySchema VisualizationLive ER diagrams of your relationshipsDocker ContainersSpin up and manage local databasesSSH TunnelingReach private databases through secure tunnelsORM CockpitDiff Drizzle/Prisma schema, preview migrationsThemingCustom look and feel for your workspaceAnalyticsQuery PostHog with HogQL, build dashboards
All features
ChangelogDORADocumentationView web app
Dora docs
Dora docsGetting StartedInstallation

Connect a database

Connections

Features

Features

Guides

Working with data

Data StudioSQL ConsoleSchema VisualizerChartsExportLive change monitoring

ORMs

ORM CockpitORM Runners

Productivity

Command Palette & shortcutsAI AssistantDocker Manager

Reference & internals

Credentials & securityMock Data GuideBackend Features Integration

Reference

API ReferenceShared TypesDora runner (Go CLI/TUI)
Guides

Loading documentation…

Preparing this guide.

Loading page content

Credentials & security

How Dora stores connection credentials and AI keys, and how it secures private-network connections.

Backend Features Integration

Guide for integrating new backend capabilities.

Engineered by remco_stoeten
GitHub ProfileRepositoryFeaturesDocsChangelog
© 2026 Dora. All rights reserved.
Guides

Mock Data Guide

Implementing the Data Seeder UI.

This guide outlines how to build the frontend interface for the Data Seeding feature.

1. Trigger

Add a context menu item to the Sidebar Table node:

  • Label: "Generate Mock Data"
  • Icon: Wand2 (Lucide)
  • Action: Open <DataSeederModal />

2. Component State (DataSeederModal)

interface SeederState {
	rowCount: number // default 100
	preview: Record<string, any>[] // Fetched via 'preview_seed' command if available, or generated locally?
	isGenerating: boolean
}

Since the backend does the generation, we might just fire-and-forget for the MVP.

3. Backend Integration

Call the seed_table command (to be implemented).

import { invoke } from '@tauri-apps/api/core'
import { toast } from 'sonner'

async function handleSeed(connectionId: string, table: string, count: number) {
	try {
		await invoke('seed_table', {
			connection_id: connectionId,
			table_name: table,
			count
		})
		toast.success(`Successfully added ${count} rows to ${table}`)
	} catch (error) {
		toast.error('Failed to seed data')
		console.error(error)
	}
}

4. Improvements

For a better UX without a dedicated preview command:

  1. Fetch table schema using get_database_schema.
  2. Display column names that will be populated.
  3. Show a warning "This will insert data into [Table]".

Credentials & security

How Dora stores connection credentials and AI keys, and how it secures private-network connections.

Backend Features Integration

Guide for integrating new backend capabilities.

On this page

1. Trigger2. Component State (DataSeederModal)3. Backend Integration4. Improvements