Skip to main content

Stax Python SDK

Project description

Stax SDK for Python

staxapp is the Stax Software Development Kit (SDK) for Python, allowing users to interact with the Stax platform.

codecov build deploy PyPI - Python Version

Authentication

In order to use the Stax SDK for Python, you will need a valid Stax API Token.

Installation

Install the package using pip:

pip install staxapp

Configure environment variables:

export STAX_REGION=au1.staxapp.cloud
export STAX_ACCESS_KEY=<your_access_key>
export STAX_SECRET_KEY=<your_secret_key>
Client Auth Configuration

The Stax SDK can configure each client individually by passing in a config on init. When a client is created its configuration will be locked in and any change to the configurations will not affect the client.

This can be seen in our guide.

Optional configuration:

Token expiry

The Stax SDK can be configured to refresh the API Token prior to expiry. Suggested use when running within CI/CD tools to reduce overall auth calls

from staxapp.config import Config, StaxAuthRetryConfig

auth_retry_config = StaxAuthRetryConfig
auth_retry_config.token_expiry_threshold = 2
Config.api_auth_retry_config = auth_retry_config

(Deprecated): This value can also be set via the following Environment Var TOKEN_EXPIRY_THRESHOLD_IN_MINS

export TOKEN_EXPIRY_THRESHOLD_IN_MINS=2 # Type: Integer representing minutes
Retries

The Stax SDK has configured safe defaults for Auth and API retries. This behaviour can be adjusted via the SDK config: example.

from staxapp.config import Config, StaxAPIRetryConfig, StaxAuthRetryConfig

retry_config = StaxAPIRetryConfig
retry_config.retry_methods = ('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS')
retry_config.status_codes = (429, 500, 502, 504)
retry_config.backoff_factor = 1.2
retry_config.max_attempts = 3
Config.api_retry_config = retry_config

auth_retry_config = StaxAuthRetryConfig
auth_retry_config.max_attempts = 3
Config.api_auth_retry_config = auth_retry_config
Logging levels

As the logging levels are set on the import of the Config module, the below configuration is available on the presense of following environment variables:

  • LOG_LEVEL: Default logger level

Value of environment variables should match Python - Logging Levels

Example: Changing the logging from INFO to DEBUG

export LOG_LEVEL=DEBUG
python run_example.py

Usage

Read Accounts

The following code can be used to read accounts within your Stax Organisation:

import json
import os

from staxapp.config import Config
from staxapp.openapi import StaxClient

Config.access_key = os.getenv("STAX_ACCESS_KEY")
Config.secret_key = os.getenv("STAX_SECRET_KEY")

# Read all accounts within your Stax Organisation
accounts = StaxClient("accounts")
response = accounts.ReadAccounts()
print(json.dumps(response, indent=4, sort_keys=True))

# Read all active accounts within your Stax Organisation and include tags in the response
accounts = StaxClient("accounts")
response = accounts.ReadAccounts(filter="ACTIVE", include_tags=True)
print(json.dumps(response, indent=4, sort_keys=True))

Contributing

For more information on contributing the to the Stax SDK, please see our guide.

Getting Help

  • If you're having trouble using the Stax SDK, please refer to our documentation.
  • If you've encountered an issue or found a bug, please open an issue.
  • For any other requests, please contact Stax support.

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

staxapp-1.3.1.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

staxapp-1.3.1-py3-none-any.whl (39.7 kB view details)

Uploaded Python 3

File details

Details for the file staxapp-1.3.1.tar.gz.

File metadata

  • Download URL: staxapp-1.3.1.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for staxapp-1.3.1.tar.gz
Algorithm Hash digest
SHA256 30f419ddc8673139dbdbf914ae6dc3bcce948b7b6906a69b18d692ae4bc6a051
MD5 f188c300d02faac585e7a089dd9061ec
BLAKE2b-256 cc400912385f0232efd8afe42fbbe6d07392fb3ed983f756ceb4cdccc9c5f7ff

See more details on using hashes here.

File details

Details for the file staxapp-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: staxapp-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for staxapp-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0d34238639db50732e67ab7ba0c3e4caa1da7524af44098782c8e29356f216a0
MD5 e7c4807e3a042e8ff98529841b252fa5
BLAKE2b-256 fd49ed80eda306f1d8c79eb1243428d758d163d545edd321ba0b3445dd8fd1ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page