Skip to content

feat(import): import connections from DataGrip#1374

Merged
datlechin merged 5 commits into
mainfrom
feat/import-datagrip
May 22, 2026
Merged

feat(import): import connections from DataGrip#1374
datlechin merged 5 commits into
mainfrom
feat/import-datagrip

Conversation

@datlechin
Copy link
Copy Markdown
Member

Adds DataGrip to the connection import flow (alongside TablePlus, Sequel Ace, DBeaver, Beekeeper Studio).

What it does

  • Reads DataGrip's dataSources.xml / dataSources.local.xml and parses each data source, including the JDBC connection string, into a TablePro connection.
  • Recovers passwords from where DataGrip stores them:
    • the macOS Keychain (service IntelliJ Platform DB — <uuid>), and
    • the encrypted c.kdbx KeePass store DataGrip uses when the OS keychain isn't the chosen provider.
  • The source app does not need to be running.

Pieces

  • DataGripImporter — registered in ForeignAppImporterRegistry.
  • DataGrip/DataGripDataSourceParser — parses the data-source XML.
  • DataGrip/JDBCConnectionString — parses jdbc: URLs into host/port/db/params.
  • JetBrains/JetBrainsCredentialStore — locates and reads the credential store.
  • JetBrains/KdbxDatabase + KdbxInnerStreamCipher — decrypts the KeePass c.kdbx file (AES-KDF, AES-CBC, Salsa20 inner stream) using CommonCrypto.

Tests

DataGripImporterTests, JDBCConnectionStringTests, JetBrainsCredentialStoreTests, KdbxDatabaseTests, KdbxInnerStreamCipherTests, plus a KdbxTestFixture.

Docs: connection-sharing.mdx updated with the DataGrip row.

CHANGELOG entry intentionally omitted here (to be added under [Unreleased]).

@datlechin datlechin merged commit ea6f494 into main May 22, 2026
2 checks passed
@datlechin datlechin deleted the feat/import-datagrip branch May 22, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant