Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feat]: Import connections from HeidiSQL

Open
#1,311 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@fixfon is already working on this.

Since Oct 29, 2026.

  • #1345 by @fixfon — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
66/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust, typescript

Research direction

Start with the ForeignAppImporter trait and registration in src-tauri/src/connection_import/mod.rs, then read dbeaver.rs, tableplus.rs, types.rs and driver_map.rs to follow the existing importer patterns. Build a small fixture from a recent HeidiSQL export with fake values and add parser tests in importer_tests.rs; run the two Cargo commands listed in the issue. Done means the importer maps supported sessions and folders, skips unsupported types with a warning, imports SSH settings, and previews that passwords are omitted.

Written by the indexing model from the issue text.

Description

feature request good first issue
Prerequisites
  • I have written a descriptive issue title
  • I have searched existing issues to ensure the feature has not already been requested
🚀 Feature Proposal

I'd like to add HeidiSQL as a source in Import connections… → Import from App.

HeidiSQL can export all its settings to a text file (File → Export settings); the portable version keeps the same format in portable_settings.txt. Each line holds a key, a type and a value separated by <|||>, and session keys look like Servers\<session name>\Host. The importer reads the file picked by the user and maps each session to a connection: name, host, port, user, databases and the network type (MySQL/MariaDB, PostgreSQL, SQL Server, SQLite), plus SSH tunnel settings when present. Session folders become Tabularis groups.

Passwords are stored obfuscated in that file; decoding them can be a follow-up, so this first version imports connections without passwords.

Motivation

HeidiSQL is very popular on Windows for MySQL, MariaDB and SQL Server. Users with many sessions there are much more likely to try Tabularis if they can bring them over in one step.

Example

These lines from an exported settings file:

Servers\Customers\Production\Host<|||>1<|||>db.example.com
Servers\Customers\Production\Port<|||>1<|||>3306
Servers\Customers\Production\User<|||>1<|||>app

produce a connection Production in the group Customers, host db.example.com:3306, user app.

Acceptance criteria
  • HeidiSQL appears in the Import from App list and asks for the exported settings file.
  • Host, port, user and the selected databases are imported.
  • The network type is mapped to the matching Tabularis driver; unsupported types are skipped with a warning.
  • Session folders are mapped to Tabularis groups.
  • SSH tunnel settings are imported when present.
  • Passwords are not imported in this first version, and the preview says so.
  • Parser tests use a small fixture file.
Where to start
  • src-tauri/src/connection_import/mod.rs: the ForeignAppImporter trait and all_importers(), where the new importer is registered.
  • src-tauri/src/connection_import/dbeaver.rs and tableplus.rs: complete importers to copy the structure from.
  • src-tauri/src/connection_import/types.rs (ImportedConnection, ImportedSsh, ImportedSsl) and driver_map.rs (mapping external database types to Tabularis drivers).
  • src-tauri/src/connection_import/importer_tests.rs: fixture-based tests.
  • The import modal (packages/web-ui/src/components/modals/ImportFromAppModal.tsx) lists sources from the backend, so it should not need changes beyond an optional icon.
  • The file format described above is a summary: please check key names and value types against a real export from a recent version of the app, and build the test fixture from it (with fake hosts and users).
Contributor notes
  • Follow the repo rules in .rules/ (Rust, testing).
  • Keep the importer in src-tauri/src/connection_import/; it must not depend on Tauri. The import modal and the desktop/web commands already list importers from all_importers(), so no transport code should be needed.
  • Add parser tests with a small fixture next to the existing ones in src-tauri/src/connection_import/importer_tests.rs. Never commit real hosts or credentials.
  • Run cargo test connection_import and cargo check --no-default-features from src-tauri/.
  • Questions? Ask here or on Discord.
Dominant language
TypeScript
Stars
5.1k
Forks
335
Avg merge
1d 6h
Merged PRs (30d)
260

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TabularisDB/tabularis

All issues in TabularisDB/tabularis

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.