dataxi


Namedataxi JSON
Version 0.0.9 PyPI version JSON
download
home_pageNone
SummaryDataxi is a cross-DBMS server tool that can help you centralize the data extraction and transfer from different data sources.
upload_time2025-02-12 22:13:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseMIT License
keywords etl
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Dataxi

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](https://github.com/yyccPhil/dataxi/wiki).

## Highlights

* 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

## Install

The preferred way to install Dataxi is via pip

```sh
pip install dataxi
```

## Basic Usage

### Credential Management

#### Command Line

The `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](https://docs.onetimesecret.com/docs/rest-api) API.

> Note: When entering string parameters (like `--conn_id`/`-id` in 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 `*`).

<details>

<summary>
Use the <code>add</code> command to store new credential interactively. It requires a unique <code>conn_id</code>, and supports 3 credential types: Database, Secret and Token.
</summary>

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` (or `sql_server`), `clickhouse` (or `ch`), `postgresql` (or `postgres`)
- **username**
- **password**
- **host**
- **port**
- **database** (optional)

**Secret**

- **username**
- **password**

**Token**

- **token**

</details>

```sh
cred_mgr add <conn_id>
```

Display all saved conn_ids, similar to how pip list works. This is helpful for quickly identifying available credentials.

```sh
cred_mgr ls
# cred_mgr list
```

Easily remove credentials you no longer need by specifying their conn_id.

```sh
cred_mgr D <conn_id>
# cred_mgr delete <conn_id>
```

Print the details of a stored credential using its conn_id.

```sh
cred_mgr load -id <conn_id>

# Print all stored credentials
cred_mgr load -a
# cred_mgr load --all
```

<details>

<summary>
Generate a random password with customizable options.
</summary>

**Options**

- `--length` or `-len`: Password length (default: 12, valid range: 6–50).
- `--uppercase` or `-up`: Exclude uppercase letters.
- `--lowercase` or `-low`: Exclude lowercase letters.
- `--digit` or `-d`: Exclude digits.
- `--symbol` or `-sym`: Exclude symbols.
- `--special` or `-s`: Exclude user-specified special characters.
- `--ambiguous` or `-a`: Exclude ambiguous characters (l, I, 1, O, 0).

> Note: Please enclose the value of `--special`/`-s` in **quotes** (like `-s '!@#$%^&*'`), especially if it contains special characters (such as `!`, `@`, `#`, `$`, `%`, `^`, `&`, and `*`).

</details>

```sh
cred_mgr gen [options]
# e.g. cred_mgr gen -len 10 -s '!@#$%^&*' -a
```

<details>

<summary>
Send credentials or a custom secret securely via Onetime Secret API, and return a shareable, one-time viewable link.
</summary>

**Mutually Exclusive Options (choose one):**

- `--conn_id` or `-id`: Send the credential corresponding to the specified connection ID stored by Dataxi.
- `--secret` or `-s`: Directly send custom secret text.

**Additional Options:**

- `--passphrase` or `-p`: Optionally secure the secret with a passphrase.
- `--ttl` or `-t`: Time-to-live in seconds for the secret (default: 3600).

> Note: Please enclose the values of `--secret`/`-s` and `--passphrase`/`-p` in **quotes** (like `-s '!@#$%^&*'`), especially if they contain special characters (such as `!`, `@`, `#`, `$`, `%`, `^`, `&`, and `*`).

> Special thanks to [Onetime Secret](https://onetimesecret.com/) for their awesome work and excellent API, which powers the secure sharing feature of this tool.

</details>

```sh
cred_mgr send [options]
# e.g. cred_mgr send -s 'test' -p 'p_test'
```

**(Warning: This action is irreversible!)** Use <code>reset</code> to clear all stored credentials in the .dataxi folder.

```sh
cred_mgr reset
```

**(Warning: This action is irreversible!)** Use <code>clean</code> to completely remove the .dataxi folder.

```sh
cred_mgr clean
```

## License

Copyright 2024-2025 Yuan Yuan.

Distributed under the terms of the  [MIT license](https://github.com/yyccPhil/dataxi/blob/main/LICENSE).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dataxi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "ETL",
    "author": null,
    "author_email": "Yuan Yuan <yyccphil@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/87/ec/8eefa5515d0a8ec6497ca35d3e0355c5778b89039b126f392d4f04b58f29/dataxi-0.0.9.tar.gz",
    "platform": null,
    "description": "# Dataxi\n\nDataxi 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.\n\nFor detailed documentation, please refer to [Dataxi Wiki Page](https://github.com/yyccPhil/dataxi/wiki).\n\n## Highlights\n\n* Supports multiple data sources: ClickHouse, MySQL, PostgreSQL, SQL Server, Splunk\n* Supports data parsing from multiple formats: pandas, CSV, XLSX, and Parquet\n* Offers credential management with easy access using `conn_id`\n* Works on Linux/MacOS/Windows\n\n## Install\n\nThe preferred way to install Dataxi is via pip\n\n```sh\npip install dataxi\n```\n\n## Basic Usage\n\n### Credential Management\n\n#### Command Line\n\nThe `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](https://docs.onetimesecret.com/docs/rest-api) API.\n\n> Note: When entering string parameters (like `--conn_id`/`-id` in 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 `*`).\n\n<details>\n\n<summary>\nUse the <code>add</code> command to store new credential interactively. It requires a unique <code>conn_id</code>, and supports 3 credential types: Database, Secret and Token.\n</summary>\n\nYou will be prompted to choose among the 3 credential types. For each type, provide the following arguments in order:\n\n**Database**\n\n- **db_type**: one of `mysql`, `mssql` (or `sql_server`), `clickhouse` (or `ch`), `postgresql` (or `postgres`)\n- **username**\n- **password**\n- **host**\n- **port**\n- **database** (optional)\n\n**Secret**\n\n- **username**\n- **password**\n\n**Token**\n\n- **token**\n\n</details>\n\n```sh\ncred_mgr add <conn_id>\n```\n\nDisplay all saved conn_ids, similar to how pip list works. This is helpful for quickly identifying available credentials.\n\n```sh\ncred_mgr ls\n# cred_mgr list\n```\n\nEasily remove credentials you no longer need by specifying their conn_id.\n\n```sh\ncred_mgr D <conn_id>\n# cred_mgr delete <conn_id>\n```\n\nPrint the details of a stored credential using its conn_id.\n\n```sh\ncred_mgr load -id <conn_id>\n\n# Print all stored credentials\ncred_mgr load -a\n# cred_mgr load --all\n```\n\n<details>\n\n<summary>\nGenerate a random password with customizable options.\n</summary>\n\n**Options**\n\n- `--length` or `-len`: Password length (default: 12, valid range: 6\u201350).\n- `--uppercase` or `-up`: Exclude uppercase letters.\n- `--lowercase` or `-low`: Exclude lowercase letters.\n- `--digit` or `-d`: Exclude digits.\n- `--symbol` or `-sym`: Exclude symbols.\n- `--special` or `-s`: Exclude user-specified special characters.\n- `--ambiguous` or `-a`: Exclude ambiguous characters (l, I, 1, O, 0).\n\n> Note: Please enclose the value of `--special`/`-s` in **quotes** (like `-s '!@#$%^&*'`), especially if it contains special characters (such as `!`, `@`, `#`, `$`, `%`, `^`, `&`, and `*`).\n\n</details>\n\n```sh\ncred_mgr gen [options]\n# e.g. cred_mgr gen -len 10 -s '!@#$%^&*' -a\n```\n\n<details>\n\n<summary>\nSend credentials or a custom secret securely via Onetime Secret API, and return a shareable, one-time viewable link.\n</summary>\n\n**Mutually Exclusive Options (choose one):**\n\n- `--conn_id` or `-id`: Send the credential corresponding to the specified connection ID stored by Dataxi.\n- `--secret` or `-s`: Directly send custom secret text.\n\n**Additional Options:**\n\n- `--passphrase` or `-p`: Optionally secure the secret with a passphrase.\n- `--ttl` or `-t`: Time-to-live in seconds for the secret (default: 3600).\n\n> Note: Please enclose the values of `--secret`/`-s` and `--passphrase`/`-p` in **quotes** (like `-s '!@#$%^&*'`), especially if they contain special characters (such as `!`, `@`, `#`, `$`, `%`, `^`, `&`, and `*`).\n\n> Special thanks to [Onetime Secret](https://onetimesecret.com/) for their awesome work and excellent API, which powers the secure sharing feature of this tool.\n\n</details>\n\n```sh\ncred_mgr send [options]\n# e.g. cred_mgr send -s 'test' -p 'p_test'\n```\n\n**(Warning: This action is irreversible!)** Use <code>reset</code> to clear all stored credentials in the .dataxi folder.\n\n```sh\ncred_mgr reset\n```\n\n**(Warning: This action is irreversible!)** Use <code>clean</code> to completely remove the .dataxi folder.\n\n```sh\ncred_mgr clean\n```\n\n## License\n\nCopyright 2024-2025 Yuan Yuan.\n\nDistributed under the terms of the  [MIT license](https://github.com/yyccPhil/dataxi/blob/main/LICENSE).\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Dataxi is a cross-DBMS server tool that can help you centralize the data extraction and transfer from different data sources.",
    "version": "0.0.9",
    "project_urls": {
        "Project": "https://github.com/yyccPhil/dataxi"
    },
    "split_keywords": [
        "etl"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "56e0acb8e17619caf83bc93549cb6a393a3f374ec86a667ae7d30f2c367ef96b",
                "md5": "c0630026c7a9c8e2b005dc3231e4f09f",
                "sha256": "0f5f8c9aa6a7db727d399fb7f8b2214a76a488b94f717dd124e3dba14a80c806"
            },
            "downloads": -1,
            "filename": "dataxi-0.0.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c0630026c7a9c8e2b005dc3231e4f09f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 13687,
            "upload_time": "2025-02-12T22:13:08",
            "upload_time_iso_8601": "2025-02-12T22:13:08.825457Z",
            "url": "https://files.pythonhosted.org/packages/56/e0/acb8e17619caf83bc93549cb6a393a3f374ec86a667ae7d30f2c367ef96b/dataxi-0.0.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "87ec8eefa5515d0a8ec6497ca35d3e0355c5778b89039b126f392d4f04b58f29",
                "md5": "5c9bf73687fc5c84589ddb6bafc29f7c",
                "sha256": "14dddc0d9c66c25fc8e23e55f3a7dba4202be36e501f66361f574b450ece04bc"
            },
            "downloads": -1,
            "filename": "dataxi-0.0.9.tar.gz",
            "has_sig": false,
            "md5_digest": "5c9bf73687fc5c84589ddb6bafc29f7c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 13883,
            "upload_time": "2025-02-12T22:13:09",
            "upload_time_iso_8601": "2025-02-12T22:13:09.819343Z",
            "url": "https://files.pythonhosted.org/packages/87/ec/8eefa5515d0a8ec6497ca35d3e0355c5778b89039b126f392d4f04b58f29/dataxi-0.0.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-12 22:13:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yyccPhil",
    "github_project": "dataxi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "dataxi"
}
        
Elapsed time: 1.14744s