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

[Feat]: Import connections from Navicat

Open
#1,312 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.

  • #1346 by @fixfon — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
65/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
mysql, postgresql, rust, sqlite, xml
Domain
database

Research direction

Start with src-tauri/src/connection_import/mod.rs and the DBeaver or TablePlus importer, then inspect types.rs, driver_map.rs, and the fixture tests in importer_tests.rs. Verify the XML keys and value types against a recent Navicat .ncx export before building a small sanitized fixture. Done means supported connections and SSH settings import correctly, unsupported types warn and skip, and the preview explains that passwords are omitted; run the listed Rust checks.

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 Navicat as a source in Import connections… → Import from App.

Navicat exports connections to an .ncx file (File → Export Connections). It is an XML file with one <Connection> element per connection, whose attributes include the name, the connection type (MYSQL, MARIADB, POSTGRESQL, SQLITE, SQLSERVER, ...), host, port, user name, database and SSH settings. The importer reads the file picked by the user and maps every supported type to the matching Tabularis driver.

Passwords in the export are encrypted; decrypting them can be a follow-up, so this first version imports connections without passwords.

Motivation

Navicat is widely used, especially in teams that manage many MySQL and PostgreSQL servers. An .ncx export is the natural way for those users to move their connections to another client.

Example

This .ncx fragment:

<Connections Ver="1.5">
  <Connection ConnectionName="Orders DB" ConnType="POSTGRESQL"
              Host="10.0.0.5" Port="5432" UserName="orders"
              Database="orders" SSH="false" />
</Connections>

is shown in the import preview as Orders DB, PostgreSQL, [email protected]:5432/orders.

Acceptance criteria
  • Navicat appears in the Import from App list and asks for an .ncx file.
  • Name, host, port, user and database are imported for every supported connection type.
  • SSH settings are imported when enabled.
  • Unsupported connection types are skipped with a warning instead of failing the whole import.
  • 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 7h
Merged PRs (30d)
255

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.