Skip to main content

Token-aware Python lient for the Control-M Automation API

Project description

ceeteem

Token‑aware Python client for the Control‑M Automation API

PyPI Python License


ceeteem lets you talk to Control‑M Workbench or a real Control‑M server with three lines of code:

from ceeteem import ControlMSession

s = ControlMSession(
    base_url="https://workbench:8443",        # host or agent port
    creds={"username": "admin", "password": "secret"},
    ca_file="certs/controlm_root.pem",        # or verify=False in dev
)

for srv in s.get_servers():
    print(srv["name"], srv.get("runAs"))

Behind the scenes ceeteem:

  • Logs in once (/session/login) and caches the bearer token.
  • Refreshes automatically when the token expires or on 401.
  • Re‑uses a single requests.Session so TLS handshakes are cheap.
  • Lets you keep TLS on for self‑signed Workbench certs with a one‑liner.

Installation

pip install ceeteem        # or: uv pip install ceeteem

Supported on Python 3.10 +.


Key Features

Feature Why it’s handy
ControlMSession Thin wrapper around requests.Session; base‑URL aware; typed helpers for common Automation API endpoints.
BearerTokenAuth Drop‑in AuthBase subclass that handles login, expiry, retry.
Custom CA bundle Works with Workbench’s self‑signed root CA without disabling TLS.
Convenience helpers get_servers(), job_status(), agents_using("admin"), … add your own easily.

Quick‑start

from ceeteem import ControlMSession

creds = {"username": "admin", "password": "secret"}
s = ControlMSession("https://localhost:8443", creds, verify=False)

print(s.job_status("JOB123"))

Using a custom CA instead of verify=False

s = ControlMSession(
    "https://workbench:8443",
    creds,
    ca_file="certs/controlm_root.pem",
)

Generate the PEM once:

openssl s_client -showcerts -connect workbench:8443 </dev/null \
  | awk '/BEGIN/,/END/{print}' > certs/controlm_root.pem

Roadmap

  • Add async variant (aiohttp)
  • Coverage for more Automation API endpoints
  • Built‑in retry + backoff helpers
  • CLI chat demo powered by LLM (see /examples)

Contributing

Pull requests welcome — see CONTRIBUTING.md for a quick guide.

  1. git clone & uv sync --dev
  2. pytest -q
  3. pre‑commit run ‑‑all‑files

License

Licensed under the MIT License. See LICENSE for details.


Acknowledgements

  • BMC for the Control‑M Workbench container.
  • The requests maintainers for rock‑solid HTTP.
  • The OpenAI & Mistral teams for making language models fun to hack with.

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

ceeteem-0.0.3.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

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

ceeteem-0.0.3-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file ceeteem-0.0.3.tar.gz.

File metadata

  • Download URL: ceeteem-0.0.3.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for ceeteem-0.0.3.tar.gz
Algorithm Hash digest
SHA256 f8649704d472641160978a0e910171064562483ecf72805c632a87f861a40431
MD5 b76ae4be03ea39cceb513581e9405743
BLAKE2b-256 e71a1792cb45e1bf4f5a99c977a2104066f7eff57f18f57d974acf9731735b98

See more details on using hashes here.

File details

Details for the file ceeteem-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ceeteem-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for ceeteem-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 387dd4fe42cbf7476986392b55506d8d63f96a28253bc4727482b0683b41ca3e
MD5 4b3b90e7a56f270d0509d59075d9bc6a
BLAKE2b-256 2cb9b7b4957840c743f6fc262ff660419fac722c7630d131db1eed0cdc70b87a

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