Skip to main content

Webex BYODS Python SDK

Reusable Python utilities for managing Webex Bring Your Own Data Source (BYODS) data sources. The SDK supports registration, retrieval, updates, schema discovery, JWT claim inspection, service-app authentication, and data source token extension.

The SDK does not read credentials from files, environment variables, or cloud secret managers. The host application owns secret retrieval and provides an explicit token provider to the SDK.

Install

Until publication, install from a local checkout:

python3 -m pip install -e .

Quick start with a service-app token

  1. Create and authorize a Webex Service App.
  2. Select spark-admin:datasource_read to list data sources and spark-admin:datasource_write to register, update, or extend them. See the Data Sources API reference for the required permissions.
  3. Retrieve the authorized service app's access token and pass it directly to the SDK from your application's secret source. Do not commit it or embed it in source code.
from webex_byods import StaticAccessTokenProvider, WebexDataSourceClient

client = WebexDataSourceClient(
    token_provider=StaticAccessTokenProvider(service_app_access_token)
)
data_sources = client.list_all_data_sources()

Refresh service-app tokens

For automatic service-app token acquisition, the host application supplies credentials and a personal-token provider. It can obtain those values from its own configuration, AWS Secrets Manager, or another secret system.

from webex_byods import (
    ServiceAppCredentials,
    StaticAccessTokenProvider,
    WebexDataSourceClient,
    WebexServiceAppTokenProvider,
)

credentials = ServiceAppCredentials(
    app_id="service-app-id",
    client_id="service-app-client-id",
    client_secret="service-app-client-secret",
    target_org_id="target-org-id",
)
service_token_provider = WebexServiceAppTokenProvider(
    credentials,
    StaticAccessTokenProvider("personal-access-token"),
)
client = WebexDataSourceClient(token_provider=service_token_provider)

OAuthRefreshTokenProvider is available when the host application manages an OAuth refresh token. Providers use InMemoryTokenStore by default; applications that need persistence can supply their own TokenStore implementation.

Use the client

data_sources = client.list_all_data_sources()
schemas = client.get_data_source_schemas()

result = client.extend_data_source_token(
    data_source_id="data-source-id",
    token_lifetime_minutes=1440,
)

BYODS API operations return dictionaries containing success, data or error, and status_code. A 401 response causes one retry with token_provider.get_access_token(force_refresh=True).

WebexDataSourceManager remains an alias for WebexDataSourceClient during the transition. TokenManager is deprecated; use WebexServiceAppTokenProvider instead.

Development

python3 -m pip install -e ".[dev]"
python3 -m pytest -q
ruff check .

License

Cisco Sample Code License

Metadata

Release files for webex-byods-sdk 0.2.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 webex-byods-sdk 0.2.0
File Size Uploaded Provenance Actions
webex_byods_sdk-0.2.0.tar.gz 11.9 kB With provenance Details for webex_byods_sdk-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for webex-byods-sdk 0.2.0
File Interpreter ABI Platform Actions
webex_byods_sdk-0.2.0-py3-none-any.whl Python 3 none any Details for webex_byods_sdk-0.2.0-py3-none-any.whl

Total release size: 22.1 kB

Release files / webex_byods_sdk-0.2.0.tar.gz

Download URL webex_byods_sdk-0.2.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d22d3b85732a83844f01a8edcbee8c30da5517514616328bee8a657f4086b6f3
BLAKE2b-256 checksum
How to use checksums
fd2139339aa5858be855b66af5a57e66c1160d66b9b9f080a7524d8476c6acf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.

Transparency log

Release files / webex_byods_sdk-0.2.0-py3-none-any.whl

Download URL webex_byods_sdk-0.2.0-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c27d2dfad367dbd84ec73dbb85c87b1a4d3eae24aa2825a6bde1762ba3fe0ab0
BLAKE2b-256 checksum
How to use checksums
16662add83dadb8a30147264fe17fcefbc57f7710bf4d78ebc574abce1cdd81a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.

Transparency log

Security for webex-byods-sdk 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for webex_byods_sdk-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

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