Skip to main content

Lightweight Python client for the Qualis Desk Roku machine API (connect, validate users, clear transactions).

Project description

qualis-roku

Python 3.9+ helper for automating Roku Developer Portal workflows when your organization exposes a compatible Qualis Desk–style HTTP API (portal sign-in, test-user validation, clearing channel transactions from CI or tooling).

Install

pip install qualis-roku

From source (development):

pip install -e "./packages/qualis_roku"

Use cases

  • Pre-flight checks — Confirm a QA email resolves to a portal test user for a given app (e.g. MAX / D+) before a test run.
  • Clean slate — Void test-user purchases / entitlements on a channel before functional or billing-related tests.
  • Pipelines — Drive the same flows from Jenkins, GitHub Actions, or internal runners without opening the browser UI.
  • Batch operations — Loop over emails or products using the simple (success, message) API.

Design

  • connect() — Start (or queue) server-side portal sign-in; no required arguments if your deployment defines default apps via configuration.
  • validate(email, product) — Resolve the email in the current portal context for that product slug.
  • clear_txn(email, product) — Clear transactions for that email and product.

Each returns (True, message) or (False, message) so callers can branch without exceptions for normal failures.

Lower-level methods (validate_users, clear_transactions, connect_and_wait, …) return full JSON envelopes when you need structured details.

Quick start

Configure the client using the base URL and credentials supplied by your platform team. Your organization’s runbook describes how to set those safely (environment variables, secret store, etc.—do not commit secrets).

from qualis_roku import QualisRokuClient

with QualisRokuClient(
    base_url="https://your-qualis-host.example/qualis-desk",
    api_token="...",  # or use your team’s recommended env/config pattern
) as client:
    ok, msg = client.connect()
    if not ok:
        raise SystemExit(msg)

    ok_v, msg_v = client.validate("qa.user@company.com", "max")
    if not ok_v:
        raise SystemExit(msg_v)

    ok_c, msg_c = client.clear_txn("qa.user@company.com", "max")
    if not ok_c:
        raise SystemExit(msg_c)

Command line

After install, the qualis-roku executable (or python -m qualis_roku) exposes the same flows without writing Python:

qualis-roku --help
qualis-roku connect
qualis-roku validate qa.user@company.com max
qualis-roku clear qa.user@company.com max
qualis-roku run qa.user@company.com max

Pass --base-url and --api-token or configure the environment variables described in your internal runbook. connect can write a small session file (default ./.qualis_roku_session) so validate / clear can reuse the session; use --print-session-id-only for scripting.

Requirements

  • Network: HTTPS access from the machine running the client to your Qualis deployment.
  • httpx (declared as a dependency).

Documentation

  • Operators and integrators using Qualis Desk should follow internal documentation (runbooks, machine API samples) provided by your organization—not everything is duplicated here on PyPI.

Security (general)

  • Prefer TLS end-to-end.
  • Keep credentials out of source control and logs; use your platform’s secret management.

License

MIT.

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

qualis_roku-0.4.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

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

qualis_roku-0.4.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file qualis_roku-0.4.0.tar.gz.

File metadata

  • Download URL: qualis_roku-0.4.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for qualis_roku-0.4.0.tar.gz
Algorithm Hash digest
SHA256 406aa6e312617b50c0fd90e29a8b3b8e5fbeaced9063640e4d1286aca93b0e06
MD5 e2a801bd18ad645d47362ecf775e9151
BLAKE2b-256 e060bdc16dec18cabd80661db947ed6b36edfa29dedff89ba24c6828e71aac37

See more details on using hashes here.

File details

Details for the file qualis_roku-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: qualis_roku-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for qualis_roku-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9674a7838c40d4d8fa2297435c8a52a50e5a09ba043bb4890400e462a35d65fe
MD5 fe31728b0ffdbfc97e744e6c31a49c1d
BLAKE2b-256 ebe3a0195eef3c6ba8069167b38654be1adbef8a014f6df021cd6445a054de9f

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