Skip to main content

Universal vendor connectors with transparent secret management

Project description

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

Using VendorConnectors (Recommended)

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:

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

vendor_connectors-202511.2.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

vendor_connectors-202511.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file vendor_connectors-202511.2.tar.gz.

File metadata

  • Download URL: vendor_connectors-202511.2.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vendor_connectors-202511.2.tar.gz
Algorithm Hash digest
SHA256 8faffa9ea4ee815d0f730b31dd17fdb63dc6f5a140e6e99350050e00790e8795
MD5 c7708719aaef12a49c58c0a0044ebb19
BLAKE2b-256 cca623d50acbca310bc361768036b57a41afd8c00b539883707738c2fe3debae

See more details on using hashes here.

File details

Details for the file vendor_connectors-202511.2-py3-none-any.whl.

File metadata

  • Download URL: vendor_connectors-202511.2-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vendor_connectors-202511.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b336c5805ea17bc2daf9e0982157b48d493ca1a8c860b838cfa6d20680a28535
MD5 9e7407be4aad3cb90497e6799c4b83f3
BLAKE2b-256 c15892b1d50d760434fb7a846b661582a39a3b513b9425d0674a97ac83e4ce24

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