Dataxi is a cross-DBMS server tool based on Polars with credential management that can help you centralize the data extraction and transfer from different data sources.
For detailed documentation, please refer to Dataxi Wiki Page.
- Supports multiple data sources: ClickHouse, MySQL, PostgreSQL, SQL Server, Splunk
- Supports data parsing from multiple formats: pandas, CSV, XLSX, and Parquet
- Offers credential management with easy access using
conn_id - Works on Linux/MacOS/Windows
The preferred way to install Dataxi is via pip
pip install dataxiThe creg_mgr CLI allows secure creation, retrieval, and deletion of credentials through simple and user-friendly commands, while also providing a built-in password generator and a burn-after-reading secret-sending feature via the Onetime Secret API.
Note: When entering string parameters (like
--conn_id/-idin cred_mgr) in the CLI, it is highly recommended to enclose the value in quotes (like-id 'test@id#1'), especially if it contains special characters (such as!,@,#,$,%,^,&, and*).
Use the add command to store new credential interactively. It requires a unique conn_id, and supports 3 credential types: Database, Secret and Token.
You will be prompted to choose among the 3 credential types. For each type, provide the following arguments in order:
Database
- db_type: one of
mysql,mssql(orsql_server),clickhouse(orch),postgresql(orpostgres) - username
- password
- host
- port
- database (optional)
Secret
- username
- password
Token
- token
cred_mgr add <conn_id>Display all saved conn_ids, similar to how pip list works. This is helpful for quickly identifying available credentials.
cred_mgr ls
# cred_mgr listEasily remove credentials you no longer need by specifying their conn_id.
cred_mgr D <conn_id>
# cred_mgr delete <conn_id>Print the details of a stored credential using its conn_id.
cred_mgr load -id <conn_id>
# Print all stored credentials
cred_mgr load -a
# cred_mgr load --allGenerate a random password with customizable options.
Options
--lengthor-len: Password length (default: 12, valid range: 6–50).--uppercaseor-up: Exclude uppercase letters.--lowercaseor-low: Exclude lowercase letters.--digitor-d: Exclude digits.--symbolor-sym: Exclude symbols.--specialor-s: Exclude user-specified special characters.--ambiguousor-a: Exclude ambiguous characters (l, I, 1, O, 0).
Note: Please enclose the value of
--special/-sin quotes (like-s '!@#$%^&*'), especially if it contains special characters (such as!,@,#,$,%,^,&, and*).
cred_mgr gen [options]
# e.g. cred_mgr gen -len 10 -s '!@#$%^&*' -aSend credentials or a custom secret securely via Onetime Secret API, and return a shareable, one-time viewable link.
Mutually Exclusive Options (choose one):
--conn_idor-id: Send the credential corresponding to the specified connection ID stored by Dataxi.--secretor-s: Directly send custom secret text.
Additional Options:
--passphraseor-p: Optionally secure the secret with a passphrase.--ttlor-t: Time-to-live in seconds for the secret (default: 3600).
Note: Please enclose the values of
--secret/-sand--passphrase/-pin quotes (like-s '!@#$%^&*'), especially if they contain special characters (such as!,@,#,$,%,^,&, and*).
Special thanks to Onetime Secret for their awesome work and excellent API, which powers the secure sharing feature of this tool.
cred_mgr send [options]
# e.g. cred_mgr send -s 'test' -p 'p_test'(Warning: This action is irreversible!) Use reset to clear all stored credentials in the .dataxi folder.
cred_mgr reset(Warning: This action is irreversible!) Use clean to completely remove the .dataxi folder.
cred_mgr cleanCopyright 2024-2025 Yuan Yuan.
Distributed under the terms of the MIT license.