Skip to main content

Token-aware Python client for the Control-M/Helix Automation API

Project description

ceeteem

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

PyPI 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 GPL-3.0 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.4.tar.gz (28.8 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.4-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ceeteem-0.0.4.tar.gz
Algorithm Hash digest
SHA256 2981e458df0b81f2302a70f27c2c2793bc96d06fed530c4d73863679879ccc02
MD5 c9a150ef4f8f4963a348c0ea949c94c5
BLAKE2b-256 ce5c322a9e1439560b87d16f1c6c63a3f9d0499800f02e94bddfaa38f6e7664f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ceeteem-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f799568866dd09f31e56d9948af77a24fc4535c99b2cfc48d2d33d3f35077a68
MD5 2e0087cc3f2f02c96868f1e943e6c32d
BLAKE2b-256 ec4cf3a000a12313f9d1a1effd1b6311876c95d7637a6a1dbf64c82008eaf858

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