Skip to main content

A simple Python library for creating an AWS Redshift connection using environment variables.

Project description

5X Redshift Auth Manager

A simple Python library for managing AWS Redshift connections using environment variables. This library provides an easy way to authenticate and connect to AWS Redshift clusters with comprehensive error handling and connection management.

🚀 Features

  • Streamlined AWS Redshift authentication with environment variables
  • Automatic credential validation and connection testing
  • Comprehensive error handling for production reliability
  • Built-in connection testing utilities
  • Context manager support for connection management
  • Secure credential handling with environment variables

📦 Installation

pip install 5x-redshift-auth-manager

🔧 Configuration

Set the following environment variables:

export FIVEX_REDSHIFT_HOST="your-redshift-cluster.region.redshift.amazonaws.com"
export FIVEX_REDSHIFT_PORT="5439"  # Optional, defaults to 5439
export FIVEX_REDSHIFT_DATABASE="your_database"
export FIVEX_REDSHIFT_USER="your_username"
export FIVEX_REDSHIFT_PASSWORD="your_password"

💻 Usage

Basic Usage

from redshift_auth import RedshiftConnectionManager

# Create connection manager
manager = RedshiftConnectionManager()

# Get connection
connection = manager.get_connection()

# Execute queries
with manager.get_cursor() as cursor:
    cursor.execute("SELECT * FROM your_table LIMIT 10")
    results = cursor.fetchall()
    print(results)

# Close connection when done
manager.close_connection()

Using Context Manager

from redshift_auth import RedshiftConnectionManager

# Use context manager for automatic connection cleanup
with RedshiftConnectionManager() as manager:
    connection = manager.get_connection()
    
    with manager.get_cursor() as cursor:
        cursor.execute("SELECT version()")
        version = cursor.fetchone()
        print(f"Redshift version: {version[0]}")

Error Handling

from redshift_auth import RedshiftConnectionManager

try:
    manager = RedshiftConnectionManager()
    connection = manager.get_connection()
    print("Successfully connected to Redshift!")
    
except ValueError as e:
    print(f"Configuration error: {e}")
except ConnectionError as e:
    print(f"Connection error: {e}")
except Exception as e:
    print(f"Unexpected error: {e}")

🔒 Environment Variables

Variable Required Default Description
FIVEX_REDSHIFT_HOST - Redshift cluster endpoint
FIVEX_REDSHIFT_PORT 5439 Redshift port number
FIVEX_REDSHIFT_DATABASE - Database name
FIVEX_REDSHIFT_USER - Database username
FIVEX_REDSHIFT_PASSWORD - Database password

🛠️ API Reference

RedshiftConnectionManager

Methods

  • __init__(): Initialize the connection manager
  • get_connection(): Get or create a Redshift connection
  • get_cursor(): Get a database cursor for executing queries
  • close_connection(): Close the connection
  • __enter__() / __exit__(): Context manager support

Error Handling

The library provides specific error handling for:

  • ValueError: Missing or invalid environment variables
  • ConnectionError: Network connectivity issues
  • psycopg2.OperationalError: Database connection issues
  • psycopg2.DatabaseError: Database-specific errors

🔍 Requirements

  • Python 3.8 or higher
  • psycopg2-binary >= 2.9.0

📝 License

This project is licensed under the MIT License.

🤝 Support


🚀 Developed by 5X | Powering Secure & Scalable Data Platforms

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

5x_redshift_auth_manager-0.1.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

5x_redshift_auth_manager-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file 5x_redshift_auth_manager-0.1.0.tar.gz.

File metadata

File hashes

Hashes for 5x_redshift_auth_manager-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e03421b5f38790c571d75ce36e68cc7ac2b13321b19f2fad9d682918a7ba8609
MD5 793c88ede48cbabd6ed3bd2f0970f428
BLAKE2b-256 4df3804752449f43366cc3aa7a3880f1579e2fde73c95a3a5ec370199928dfe1

See more details on using hashes here.

File details

Details for the file 5x_redshift_auth_manager-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for 5x_redshift_auth_manager-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce2388f38f80f6aef5052110336e56fcfd0d9f5310b1c83a6489df3dd415b98a
MD5 29907d26dab355091576fac201e0489a
BLAKE2b-256 95580f91a21ebe6a1cf0d07503c37b893e7841d31876bdd35c6b3900b5786794

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