Skip to main content

Questra Automation Python Package

Project description

seven2one-questra-automation

Type-safe Python client for the Questra Automation GraphQL API.

Features

  • Type-safe: All GraphQL types, queries, and mutations are fully typed with Python dataclasses
  • Authentication: Integrates with questra-authentication for seamless authentication
  • Comprehensive: Supports all Automation API operations (workspaces, repositories, schedules, executions)
  • Modern: Uses latest Python 3.10+ features (native type hints, dataclasses)
  • Well-documented: Extensive docstrings

Installation

Using uv (recommended):

uv add seven2one-questra-automation

Using pip:

pip install seven2one-questra-automation

Requirements

  • Python >= 3.10
  • seven2one-questra-authentication >= 0.2.1
  • gql[all] >= 3.5.0
  • loguru

Setup

Basic Client Initialization

from questra_authentication import QuestraAuthentication
from questra_automation import QuestraAutomation

# Create authentication client
auth_client = QuestraAuthentication(
    url="https://authentik.dev.example.com",
    username="ServiceUser",
    password="secret_password",
    oidc_discovery_paths=["/application/o/automation"],
)

# Initialize Automation client
client = QuestraAutomation(
    graphql_url="https://automation.dev.example.com/graphql",
    auth_client=auth_client,
)

Available API Groups

The client provides access to API operations through namespaces:

  • client.queries: GraphQL queries (get_workspaces, get_executions, get_service_info, etc.)
  • client.mutations: GraphQL mutations (create_workspace, execute_automation, create_schedule, etc.)
  • client.execute_raw(query): Execute custom GraphQL queries

Available Models

Enums

  • ExecutionInitiator: MANUAL, SCRIPT, SCHEDULE
  • RepositoryAuthenticationMethod: USERNAME_PASSWORD, SSH_KEY
  • AutomationBuildStatus: PENDING, RUNNING, FAILED, SUCCEEDED
  • AutomationExecutionStatus: PENDING, RUNNING, SUCCEEDED, FAILED
  • AutomationExecutionDomainStatus: SUCCEEDED, FAILED
  • SortEnumType: ASC, DESC

Types

  • WorkspaceView: Workspace details
  • AutomationView: Automation details
  • AutomationExecutionView: Execution details
  • RepositoryView: Repository details
  • ScheduleView: Schedule details
  • ScheduledExecutionView: Scheduled execution details
  • ServiceInfo: Service information
  • ErrorCodeView: Error code details

Connection Types

All list queries return Connection types with pagination support:

  • AutomationsConnection
  • ExecutionsConnection
  • WorkspacesConnection
  • RepositoriesConnection
  • SchedulesConnection
  • ScheduledExecutionsConnection
  • ErrorCodesConnection

Each Connection provides:

  • page_info: Pagination information
  • edges: List of edges with cursor
  • nodes: Flat list of items
  • total_count: Total count of items

Logging

The client uses loguru for logging. Configure logging via environment variables:

# Set log level (default: WARNING)
export QUESTRA_AUTOMATION_LOG_LEVEL=DEBUG

# Optional: log to file
export QUESTRA_AUTOMATION_LOG_FILE=/path/to/logfile.log

Development

Install development dependencies:

uv sync --all-groups

Run tests:

uv run pytest

Run linting:

uv run ruff check .

Format code:

uv run ruff format .

Schema

The client is based on the GraphQL schema in schema/automation.sdl.

License

Proprietary - Seven2one GmbH

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

seven2one_questra_automation-0.1.3.tar.gz (43.5 kB view details)

Uploaded Source

Built Distribution

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

seven2one_questra_automation-0.1.3-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file seven2one_questra_automation-0.1.3.tar.gz.

File metadata

  • Download URL: seven2one_questra_automation-0.1.3.tar.gz
  • Upload date:
  • Size: 43.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for seven2one_questra_automation-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2b378afd3997d37447a24645160c3cb9fd795f0b1972d085d68f11324cad3b4d
MD5 af56f06c310ef0b9d91efc9ea303472c
BLAKE2b-256 dc2e97fb27366a8e392b0e2f869258a05d9c9962c2c3ed7ff5c69c658212b8d3

See more details on using hashes here.

File details

Details for the file seven2one_questra_automation-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: seven2one_questra_automation-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for seven2one_questra_automation-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 62c4e3a9b329bb3cb8c1cc75a110b49061e6fbce58a9e9c2391fd0d7fa962c97
MD5 173c7b1a473fcd0542d7d60209c6d611
BLAKE2b-256 cbbceb5806720274a63bc6bd2bc53436fc6a1bd74eb2613c91617d74c0632e1b

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