staxapp
is the Stax Software Development Kit (SDK) for Python, allowing users to interact with the Stax platform.
In order to use the Stax SDK for Python, you will need a valid Stax API Token.
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>
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:
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
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
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
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))
For more information on contributing the to the Stax SDK, please see our guide.
- 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.