Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Vendor Connectors

Universal vendor connectors for the jbcom ecosystem, providing standardized access to cloud providers and third-party services.

Features

  • AWS Connector: Boto3-based client with role assumption and retry logic
  • Google Cloud Connector: Workspace and Cloud Platform APIs with lazy credential loading
  • GitHub Connector: Repository management, GraphQL queries, and file operations
  • Slack Connector: Bot and app integrations with rate limiting
  • Vault Connector: HashiCorp Vault with Token and AppRole auth
  • Zoom Connector: Meeting and user management
  • VendorConnectors: Cached public API with get_*_client() getters

Installation

pip install vendor-connectors

Usage

The VendorConnectors class provides cached access to all connectors:

from vendor_connectors import VendorConnectors

# Initialize once - reads credentials from environment
vc = VendorConnectors()

# Get cached clients
slack = vc.get_slack_client()
github = vc.get_github_client(github_owner="myorg")
s3 = vc.get_aws_client("s3")
vault = vc.get_vault_client()

Using Individual Connectors

from vendor_connectors import AWSConnector, GithubConnector, SlackConnector

# AWS with role assumption
aws = AWSConnector(execution_role_arn="arn:aws:iam::123456789012:role/MyRole")
s3 = aws.get_aws_client("s3")

# GitHub operations
github = GithubConnector(
    github_owner="myorg",
    github_repo="myrepo",
    github_token=os.getenv("GITHUB_TOKEN")
)

# Slack messaging
slack = SlackConnector(
    token=os.getenv("SLACK_TOKEN"),
    bot_token=os.getenv("SLACK_BOT_TOKEN")
)
slack.send_message("general", "Hello from vendor-connectors!")

Architecture

All connectors extend DirectedInputsClass from the jbcom ecosystem:

  • directed-inputs-class: Input handling from environment, stdin, config
  • lifecyclelogging: Structured logging with verbosity control
  • extended-data-types: Utilities like is_nothing, strtobool, wrap_raw_data_for_export

The VendorConnectors class provides:

  • Client caching (same parameters = same instance)
  • Automatic credential loading from environment
  • Consistent interface across all providers

Environment Variables

Variable Description
AWS_* Standard AWS credentials
EXECUTION_ROLE_ARN AWS role to assume
GITHUB_TOKEN GitHub personal access token
GITHUB_OWNER GitHub organization/user
GOOGLE_SERVICE_ACCOUNT Google service account JSON
SLACK_TOKEN Slack user token
SLACK_BOT_TOKEN Slack bot token
VAULT_ADDR Vault server URL
VAULT_TOKEN Vault authentication token
VAULT_ROLE_ID / VAULT_SECRET_ID AppRole credentials
ZOOM_CLIENT_ID / ZOOM_CLIENT_SECRET / ZOOM_ACCOUNT_ID Zoom OAuth

Part of jbcom Ecosystem

This package is part of the jbcom Python library ecosystem:

Release trigger

Metadata

Release files for vendor-connectors 202511.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vendor-connectors 202511.12.0
File Size Uploaded
vendor_connectors-202511.12.0.tar.gz 73.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vendor-connectors 202511.12.0
File Interpreter ABI Platform
vendor_connectors-202511.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 141.0 kB

Release files / vendor_connectors-202511.12.0.tar.gz

Download URL vendor_connectors-202511.12.0.tar.gz
Size 73.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4173f963810c36803ee1710d96d80ccc379fae8647a56a1fca6e0e65ae67753f
BLAKE2b-256 checksum
How to use checksums
a0de99131bb0ebb672b0e6eb885a98eba333578d27d7d101968c65af5e62cee1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / vendor_connectors-202511.12.0-py3-none-any.whl

Download URL vendor_connectors-202511.12.0-py3-none-any.whl
Size 67.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0382c04db1c639acab0a6451df5cef9e9d058466ee41b18b06867a3d28c6960e
BLAKE2b-256 checksum
How to use checksums
c29f874e611fc8eecb95c32c3f312b57711cdd526b77bcc2d24315e563bc56b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page