[Feat]: Import connections from Navicat
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 65/100
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
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
.ncxfile. - 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: theForeignAppImportertrait andall_importers(), where the new importer is registered.src-tauri/src/connection_import/dbeaver.rsandtableplus.rs: complete importers to copy the structure from.src-tauri/src/connection_import/types.rs(ImportedConnection,ImportedSsh,ImportedSsl) anddriver_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 fromall_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_importandcargo check --no-default-featuresfromsrc-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
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TabularisDB/tabularis
-
[Feat]: Align the Web password login page with Tabularis designPossibly taken @Detoy claimed this 1 day ago. Openfeature request
TabularisDB/tabularis#1341 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
TabularisDB/tabularis#1328 ·
Maintainers usually reply within 1 day
-
[Bug]: OpenAI compatible provider requires API key, even when not actually required by providerPossibly taken @dyk1454683243-sudo claimed this 2 days ago. Openbug
Difficulty 3/5 1-2 days Newbie friendliness 58/100
TabularisDB/tabularis#1323 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
feature request good first issue
Difficulty 4/5 3-5 days Newbie friendliness 55/100
TabularisDB/tabularis#1314 ·
Maintainers usually reply within 1 day
-
[Feat]: Import connections from HeidiSQLPossibly taken @fixfon claimed this 1 day ago. Openfeature request good first issue
Difficulty 4/5 3-5 days Newbie friendliness 66/100
TabularisDB/tabularis#1311 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
area: triage theme: undefined
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
jhipster/generator-jhipster#35895 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
paperclipai/paperclip#18396 ·
Maintainers usually reply within 1 day
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 82/100
lingdojo/kana-dojo#33380 · 1 comment · 5 reactions ·
Maintainers usually reply within 1 day
-
chore other
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
alastair-smith/card-games#342 ·
Maintainers usually reply within 1 day