SoftwareONE Extension playground
Playground Extension with the SoftwareONE Marketplace
Getting started
Prerequisites
- Docker and Docker Compose plugin (
docker composeCLI) make- Valid
.envfile - Adobe credentials and authorizations JSON files in the project root
- CodeRabbit CLI (optional. Used for running review check locally)
Make targets overview
Common development workflows are wrapped in the makefile:
make help– list available commandsmake bash– start the app container and open a bash shellmake build– build the application image for developmentmake check– run code quality checks (ruff, flake8, lockfile check)make check-all– run checks and testsmake format– apply formatting and import fixesmake down– stop and remove containersmake review– check the code in the cli by running CodeRabbitmake run– run the servicemake shell– open a Django shell inside the running app containermake test– run the test suite with pytest
Running tests
Tests run inside Docker using the dev configuration.
Run the full test suite:
make test
Pass additional arguments to pytest using the args variable:
make test args="-k test_playground -vv"
make test args="tests/test_steps.py"
Running the service
1. Configuration files
In the project root, create and configure the following files.
Environment files
Start from the sample file:
cp .env.sample .env
Update .env with your values. This file is used by all Docker Compose configurations and the make run target.
2. Running
Run the service against real SoftwareONE Marketplace APIs. It uses compose.yaml and reads environment from .env.
Ensure:
.envis populated with real endpoints and tokens.
Start the app:
make run
The service will be available at http://localhost:8080.
Example .env snippet for real services:
MPT_PRODUCT_ID=PRD-1111-1111,PRD-2222-2222
MPT_PORTAL_BASE_URL=https://portal.s1.show
MPT_API_BASE_URL=Lhttps://api.s1.show/public
MPT_API_TOKEN=<c0fdafd7-xxxx-xxxx-xxxx-xxxxxxxxxxxx
MPT_ORDERS_API_POLLING_INTERVAL_SECS=120
EXT_WEBHOOKS_SECRETS={"PRD-1111-1111": "<webhook-secret-for-product>", "PRD-2222-2222": "<webhook-secret-for-product>"}
MPT_INITIALIZER="swo_playground.initializer.initialize"
MPT_KEY_VAULT_NAME=""
MPT_NOTIFY_CATEGORIES={"ORDERS": "NTC-0000-0006"}
MPT_PRODUCTS_IDS is a comma-separated list of SWO Marketplace Product identifiers.
For each product ID in the MPT_PRODUCTS_IDS list, define the corresponding entry in the WEBHOOKS_SECRETS JSON using the product ID as the key.
Developer utilities
Useful helper targets during development:
make bash # open a bash shell in the app container
make check # run ruff, flake8, and lockfile checks
make check-all # run checks and tests
make format # auto-format code and imports
make review # check the code in the cli by running CodeRabbit
make shell # open a Django shell in the app container
Configuration
The following environment variables are typically set in .env. Docker Compose reads them when using the Make targets described above.
Application
| Environment Variable | Default | Example | Description |
|---|---|---|---|
EXT_WEBHOOKS_SECRETS |
- | {"PRD-1111-1111": "123qweasd3432234"} | Webhook secret of the Draft validation Webhook in SoftwareONE Marketplace for the product |
MPT_PRODUCTS_IDS |
PRD-1111-1111 | PRD-1234-1234,PRD-4321-4321 | Comma-separated list of SoftwareONE Marketplace Product ID |
MPT_API_BASE_URL |
http://localhost:8000 |
https://portal.softwareone.com |
SoftwareONE Marketplace API URL |
MPT_API_TOKEN |
- | eyJhbGciOiJSUzI1N... | SoftwareONE Marketplace API Token |
MPT_INITIALIZER |
- | swo_playground.initializer.initialize | Initializer function |
MPT_NOTIFY_CATEGORIES |
- | {"ORDERS": "NTC-0000-0006"} | Notify categories for the orders |
MPT_KEY_VAULT_NAME |
- | swo-playground-kv | Key Vault name |
MPT_PORTAL_BASE_URL |
http://localhost:8000 |
https://portal.softwareone.com |
SoftwareONE Marketplace Portal URL |
Other
| Environment Variable | Default | Example | Description |
|---|---|---|---|
MPT_ORDERS_API_POLLING_INTERVAL_SECS |
120 | 60 | Orders polling interval from the Software Marketplace API in seconds |
Metadata
Release files for mpt-cli-techsupport-plugin 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mpt_cli_techsupport_plugin-0.0.1.tar.gz | 8.9 kB | Without provenance | Details for mpt_cli_techsupport_plugin-0.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mpt_cli_techsupport_plugin-0.0.1-py3-none-any.whl | Python 3 | none | any | Details for mpt_cli_techsupport_plugin-0.0.1-py3-none-any.whl |
Total release size: 17.7 kB
Release files / mpt_cli_techsupport_plugin-0.0.1.tar.gz
| Download URL | mpt_cli_techsupport_plugin-0.0.1.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46f88f67c2f95ff4c109586222ad0a0f699327d11279aed360dbc55450c67e98
|
|
BLAKE2b-256 checksum How to use checksums |
faa71ee37c25db0e0a2c9bce78bb3c68efb4e6f2613e959e84904a4a3fa31572
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.7.22
|
Release files / mpt_cli_techsupport_plugin-0.0.1-py3-none-any.whl
| Download URL | mpt_cli_techsupport_plugin-0.0.1-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15b89d52ec6393f354f5651fa93109eb5ea1490cb65521ddfe3e33c97d3e832a
|
|
BLAKE2b-256 checksum How to use checksums |
c5cff4fddd3b7496cea18fa0ea00306b045b6a739228b60d6b6a4d32e66b2236
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.7.22
|
Security for mpt-cli-techsupport-plugin 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.