Skip to main content

Ruff

SoftwareONE Extension playground

Playground Extension with the SoftwareONE Marketplace

Getting started

Prerequisites

  • Docker and Docker Compose plugin (docker compose CLI)
  • make
  • Valid .env file
  • 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 commands
  • make bash – start the app container and open a bash shell
  • make build – build the application image for development
  • make check – run code quality checks (ruff, flake8, lockfile check)
  • make check-all – run checks and tests
  • make format – apply formatting and import fixes
  • make down – stop and remove containers
  • make review – check the code in the cli by running CodeRabbit
  • make run – run the service
  • make shell – open a Django shell inside the running app container
  • make 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:

  • .env is 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)

Source distribution for mpt-cli-techsupport-plugin 0.0.1
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)

Table of built distributions (wheels) for mpt-cli-techsupport-plugin 0.0.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page