Skip to main content

wonderfish-cp-sdk

共通仕様・共通方針はWonderfish共通仕様、開発・検証・配備の共通ルールは共通開発ルールを参照してください。

Product ServiceからMVP Control Planeを呼び出すPython SDK。型付きclient、Managed Identity認証、Catalog cache、顧客・Product Service間Token検証を提供する。公開仕様はSDK仕様書、HTTP契約はcontractsを参照する。

取得

公開済みSDKの導入

Python 3.12以上で、Public PyPIの公開済みversionを固定して導入する。公開済み版は12.2.0です。

pip install wonderfish-cp-sdk==12.2.0

接続先のControl Planeは、contracts/internal.openapi.jsonと同じHTTP契約を提供すること。クラウド環境はdev・prodとし、管理下ResourceとバージョンなしAPIパスを使う。

source checkoutからの開発

開発対象のversionは pyproject.toml を正本とする。mainの開発版は17言語の通知宛先とカタログ翻訳を受け取ります。main統合だけではPyPIへ公開されません。

公開前のlocal検証では、以下のローカル検証手順で対象commitからwheelをビルドし、そのwheelを検証環境へ導入する。正式配置では公開済みwheelを使う。sampleの配備版は配備結果のSDK版・wheel hashで確認し、mainへの反映だけでsampleが更新済みとは扱わない。

ローカル検証

python -m pip install --require-hashes -r requirements-dev.lock
python -m pip install --require-hashes -r examples/product-service/requirements.lock
python -m ruff check src tests .github/scripts
python -m compileall -q src tests .github/scripts
python -m pytest
python -m pip_audit -r requirements-dev.lock
python -m pip_audit -r examples/product-service/requirements.lock
node --check examples/product-service/assets/ui.mjs
node --test tests/test_sample_*.mjs tests/test_shared_*.mjs
python examples/product-service/download_msal.py
python -c "import pathlib, shutil; [shutil.rmtree(p, ignore_errors=True) for p in [pathlib.Path('build'), pathlib.Path('dist'), *pathlib.Path('src').glob('*.egg-info')]]"
python -m build --wheel --no-isolation
python -m twine check --strict dist/*.whl
version="$(python -c 'import tomllib; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"])')"
python .github/scripts/validate_wheel.py dist "${version}"
python -m pip install --force-reinstall --no-deps dist/*.whl
python -c "import wonderfish_cp; import wonderfish_cp.external"
python examples/product-service/smoke.py

ブラウザー処理の検証にはNode.js 22.23.2を使う。MSAL取得はビルド時の固定hash検査であり、pytestとNodeテストにはネットワークを使わない。

pytestとNodeテスト、smokeはネットワーク不要の開発検証。依存導入・監査・MSAL取得にはネットワークを使う。実CPとのHTTP・画面の結合試験はサンプル開発手順と試験項目書に従い、localの実CPとDevの実Managed Identityの結果を別に記録する。sample Docker imageのlock同期はDockerfileが指定する固定Python imageでpip-compileして確認する。

開発用lockはsample Dockerfileの固定Python 3.12.14イメージとpip-tools==7.6.1で生成する。WindowsとLinuxで必要な条件付き依存をdev extraに明示し、同じlockを両OSで使う。lockは手で編集しない。特定の依存を更新するときは対応するpip-compileに--upgrade-package <name>を付ける。

image="$(awk '/^FROM /{print $2}' examples/product-service/Dockerfile)"
docker run --rm --volume "${PWD}:/work" --workdir /work "$image" \
  sh -c 'python -m pip install --quiet pip-tools==7.6.1 && pip-compile --quiet --allow-unsafe --extra=dev --generate-hashes --output-file=requirements-dev.lock pyproject.toml && cd examples/product-service && pip-compile --quiet --generate-hashes --output-file=requirements.lock requirements.in'

再生成後は、次のコマンドでWindows/Linux向けの全wheelのhashと、Python 3.12.14で有効な依存関係を検査する。pip downloadのplatform指定だけでは依存条件が実行ホストで評価されるため、wheel内のメタデータも対象OSの条件で検証する。これは対象OS上での動作試験とは区別する。

wheel_root="$(mktemp -d /tmp/$(date +%Y%m%d%H%M%S)_sdk-wheels.XXXXXX)"
python -m pip download --only-binary=:all: --require-hashes -r requirements-dev.lock \
  --python-version 3.12 --implementation cp --abi cp312 --platform win_amd64 --dest "$wheel_root/windows"
python -m pip download --only-binary=:all: --require-hashes -r requirements-dev.lock \
  --python-version 3.12 --implementation cp --abi cp312 --platform manylinux_2_28_x86_64 \
  --platform manylinux_2_17_x86_64 --platform manylinux2014_x86_64 --dest "$wheel_root/linux"
python .github/scripts/validate_dev_lock.py windows "$wheel_root/windows"
python .github/scripts/validate_dev_lock.py linux "$wheel_root/linux"

PyPIへの公開

pyproject.toml の version を未公開の正式Semantic Versionに更新し、ローカル検証後に main → release のPRを作成する。必須チェック sdk・release-ready の成功後にマージすると、wheelのビルド・検証、PyPIへの公開、v<version> tagの付与を順に実行する。公開workflowはreleaseへのpush時に、対象commitが同一リポジトリのマージ済みmain→release PRのmerge commitであることをGitHub APIで検証する。mainへのpush・PRでは公開しない。

認証はPyPIのTrusted Publisherを使用する。登録先はowner HappyHackInc、repository hh-wonderfish-ai-sdk、workflow publish-pypi.yml、Environment pypi とし、GitHub側の pypi Environmentは release ブランチだけを許可する。公開済みversionとtagは変更せず、修正には新しいversionを使う。

構成

場所 用途
src/wonderfish_cp 公開SDK・認証・HTTP境界
src/wonderfish_cp/external 受信Tokenと実行呼出元の検証
tests ネットワーク不要の契約・単体テスト
contracts CP OpenAPIの写し
docs SDK仕様と検証用sampleの仕様
docs/DesignSystem CPとProduct Service共通の画面デザイン(トークン・部品・レイアウト)。配布物に含めない
examples/product-service 単一プロセスの疎通確認用Product Service。配布物に含めない

SDKはApache License 2.0で提供する。脆弱性・秘密情報は公開Issueへ記載せずsupport@happyhack.co.jpへ連絡する。

試験項目書・実施結果・未確認事項は試験索引を参照してください。テストコードは既存の配置で管理します。

Metadata

Release files for wonderfish-cp-sdk 12.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for wonderfish-cp-sdk 12.3.0
File Interpreter ABI Platform Actions
wonderfish_cp_sdk-12.3.0-py3-none-any.whl Python 3 none any Details for wonderfish_cp_sdk-12.3.0-py3-none-any.whl

Release files / wonderfish_cp_sdk-12.3.0-py3-none-any.whl

Download URL wonderfish_cp_sdk-12.3.0-py3-none-any.whl
Size 40.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c437ac1c9cc2949dcc98c3a0be25d4da30af79feaa305d325b9185756fc5851f
BLAKE2b-256 checksum
How to use checksums
368c885a6fdc25ec4f7d992b9f9c166b6cad579f7f1192f81609aa028f99cef2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Security for wonderfish-cp-sdk 12.3.0

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.

Full provenance

1 file in this release has been uploaded with provenance metadata.

Attestation for wonderfish_cp_sdk-12.3.0-py3-none-any.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

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.

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