Skip to main content

A tool for bulk river creation

Project description

Azure Blob Storage and Rivery CLI Tool

A command-line interface (CLI) tool to interact with Azure Blob Storage and manage rivers in Rivery. This tool allows you to configure Azure and Rivery credentials, generate river templates based on blob names, populate rivers, delete rivers, and list source configurations.

Table of Contents

Prerequisites

  • Python 3.6 or higher
  • Azure Blob Storage account
  • Rivery account and API token
  • Click library (pip install click)
  • Other dependencies as required by the code (e.g., rich for table display)
  • Virtual Environment: It is recommended to use a virtual environment to manage dependencies.

Installation

  1. Create a Virtual Environment

    It is recommended to create a virtual environment to isolate the dependencies.

    python3 -m venv venv
    source venv/bin/activate
    
  2. Install the CLI Tool

    Install the multiriver package using pip:

    pip install multiriver
    

    (Ensure that the package multiriver is available in the Python Package Index or replace this command with the appropriate installation method if installing from a local source.)

Configuration

Before using the CLI tool, you need to configure your Azure and Rivery credentials, as well as source settings.

Configure Credentials

Use the configure_creds command to set up your Azure Storage and Rivery API credentials.

multiriver configure_creds \
    --account-name YOUR_AZURE_ACCOUNT_NAME \
    --account-key YOUR_AZURE_ACCOUNT_KEY \
    --rivery-api-token YOUR_RIVERY_API_TOKEN

Options:

  • --account-name (optional): Azure Storage account name.
  • --account-key (optional): Azure Storage account key.
  • --connection-string (optional): Azure Storage connection string.
  • --sas-token (optional): Shared Access Signature (SAS) token.
  • --rivery-api-token (optional): Rivery API token.
  • --rivery-host (optional): Rivery host URL (default: https://console.rivery.io).

Note: You must provide at least one Azure credential and the Rivery API token.

Configure Source

Use the configure_source command to set up source settings for Azure Blob Storage.

multiriver configure_source \
    --container-name YOUR_CONTAINER_NAME \
    --prefix YOUR_BLOB_PREFIX \
    --template-river-id TEMPLATE_RIVER_ID \
    --filename-template FILENAME_TEMPLATE \
    --group-id GROUP_ID \
    --cron-schedule CRON_SCHEDULE

Options:

  • --container-name (optional): Name of the Azure Blob Storage container.
  • --prefix (optional): Prefix to filter blobs.
  • --template-river-id (optional): ID of the base template river in Rivery.
  • --filename-template (optional): Template used for generating river names.
  • --group-id (required): ID of the group to attach the rivers to in Rivery.
  • --cron-schedule (optional): Cron expression to schedule new rivers.

Note: You must provide the --group-id option. If --filename-template is provided, river templates will be generated based on the blob names.

Commands

populate_rivers

Populate rivers in Rivery based on the generated templates.

multiriver populate_rivers --group-id GROUP_ID

Options:

  • --group-id (required): ID of the group to attach the rivers to in Rivery.

delete_rivers

Delete all rivers associated with a specific group in Rivery.

multiriver delete_rivers --group-id GROUP_ID

Options:

  • --group-id (required): ID of the group whose rivers will be deleted.

list_source_configs

List all source configurations that have been set up.

multiriver list_source_configs

Usage Examples

Example Workflow

  1. Create a Virtual Environment

    python3 -m venv venv
    source venv/bin/activate
    
  2. Install the CLI Tool

    pip install multiriver
    
  3. Configure Credentials

    multiriver configure_creds \
        --account-name myazureaccount \
        --account-key myazurekey \
        --rivery-api-token myriverytoken
    
  4. Configure Source

    multiriver configure_source \
        --container-name mycontainer \
        --prefix data/ \
        --template-river-id 123456789 \
        --filename-template "{entity_name}_data_{date}.csv" \
        --group-id 987654321 \
        --cron-schedule "0 0 * * *"
    
  5. Populate Rivers

    multiriver populate_rivers --group-id 987654321
    

    This command will:

    • Generate river templates based on the blobs in the specified container and prefix.
    • Create new rivers in Rivery using the templates.
    • Schedule the rivers if a cron schedule was provided.
  6. Delete Rivers

    If you need to delete all rivers associated with the group:

    multiriver delete_rivers --group-id 987654321
    
  7. List Source Configurations

    To view all source configurations:

    multiriver list_source_configs
    

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For any questions or issues, please open an issue on the GitHub repository or contact the maintainer.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multiriver-1.1.4.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multiriver-1.1.4-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file multiriver-1.1.4.tar.gz.

File metadata

  • Download URL: multiriver-1.1.4.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.8

File hashes

Hashes for multiriver-1.1.4.tar.gz
Algorithm Hash digest
SHA256 80ca0b4d14dfe07d054a4842bcb9e608c6ce58952939d1a11145a0c0e3b43d91
MD5 cf51307e29df56566528684504f0f94b
BLAKE2b-256 65157866a0aacc614c91f299f9fd79d01e6b3ed6d3454d61f33cdccbdc1bd865

See more details on using hashes here.

File details

Details for the file multiriver-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: multiriver-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.8

File hashes

Hashes for multiriver-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7ed3762d58d2c1538c1064c4a6af560d53d0f5c045bb62c96b9cf5e3534089ab
MD5 4383fa0dadb13b14e5b59b8a6c94104c
BLAKE2b-256 5e8388d5955133899f2b8c3f043f4d17fa3314895b7940b471791e6e050f2fdb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page