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:
- extended-data-types - Foundation utilities
- lifecyclelogging - Structured logging
- directed-inputs-class - Input handling
Release trigger
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vendor_connectors-202511.12.0.tar.gz.
File metadata
- Download URL: vendor_connectors-202511.12.0.tar.gz
- Upload date:
- Size: 73.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4173f963810c36803ee1710d96d80ccc379fae8647a56a1fca6e0e65ae67753f
|
|
| MD5 |
dcb61bea8d6ce6021f360c1ce2168ac1
|
|
| BLAKE2b-256 |
a0de99131bb0ebb672b0e6eb885a98eba333578d27d7d101968c65af5e62cee1
|
File details
Details for the file vendor_connectors-202511.12.0-py3-none-any.whl.
File metadata
- Download URL: vendor_connectors-202511.12.0-py3-none-any.whl
- Upload date:
- Size: 67.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0382c04db1c639acab0a6451df5cef9e9d058466ee41b18b06867a3d28c6960e
|
|
| MD5 |
12ddfabb2aebbf7da7ccb48bde456250
|
|
| BLAKE2b-256 |
c29f874e611fc8eecb95c32c3f312b57711cdd526b77bcc2d24315e563bc56b4
|