Mock Firebolt を使用すると、Firebolt 準拠のアプリを作成するアプリ開発者は、Firebolt SDK への呼び出しで、デバイス上で実行されている実際の Firebolt によって返される応答とは異なる応答を「人為的に」返すことができます。
これは、たとえば次のように使用できます。
将来: 実際のデバイス上で実行されている実際の Firebolt へのリバース プロキシとして機能できます。
(注: 標準 SDK には静的モックが組み込まれていますが、制御や拡張はできません。)
SDK はメソッド呼び出しのパラメーターを検証しないため、アプリ開発者は Firebolt メソッドの呼び出しが正しいことを検証する方法として Mock Firebolt を使用することもできることにも注意してください。
このリポジトリには次の要素が含まれています。
ドキュメントを参照してください。
Mock Firebolt は、ほぼすべてのOpenRPC ベースのサービスに対応する非常に汎用的なモック サービスです。サーバーの実行時にサーバーがサポートする特定の SDK のリストはserver/src/.mf.config.json
ファイルの内容と、サーバーの起動時に指定する関連コマンド ライン フラグによって制御されます。
リポジトリにはserver/src/.mf.config.SAMPLE.json
ファイルが含まれており、サーバーを起動するにはこのファイルをserver/src/.mf.config.json
にコピーする必要があります。これを完了したら、必要に応じてserver/src/.mf.config.json
ファイルを自由に編集し、他の SDK を追加できます。 API の OpenRPC JSON ファイルがクラウドのどこかにある場合、または HTTP 経由で利用できる場合は、 fileName
プロパティではなく、このファイルの SDK のurl
プロパティを使用する必要があります (これは、「ハード プロパティ」が存在する SDK にのみ使用されます)。依存関係」 server/package.json
ファイル内)。
次の 2 つのセクションでは、すぐに使える.mf.config.json
ファイルを使用していることを前提としています。
Mock Firebolt は、次の Firebolt SDK をサポートしています: coreとmanage 。
Mock Firebolt は、$badger から Firebolt に移行するアプリケーション開発者向けの $badger SDK もサポートしています。
この機能を有効にしたい開発者は、Mock Firebolt を起動するときに--moneybadger
コマンドライン フラグを渡す必要があります。同様に、アプリ内でactivateMockFireboltForBadger.js
スクリプトを使用し、アプリ バンドル ($badger を含む) が実行される前にスクリプトを実行する必要があります。
注: NodeJS 16 以降が必要です。 nvm
を使用している場合は、 nvm use 16
ください。
インストールして実行するには:
cd <the place you put your code repos>
git clone https://github.com/rdkcentral/mock-firebolt.git /* THIS REPO */
cd mock-firebolt
# To start the mock Firebolt server (if running locally)
cd server
# One-time stuff
cp src/.mf.config.SAMPLE.json src/.mf.config.json
# To install dependencies, clean/create build/ subdirectory, build and upgrade SDK, build source code within this project
npm install
# If you want support for Firebolt Core/Manage SDK
# Run in a separate terminal window/tab, or use '&' to background
npm start
# If you need to use non-standard ports for any reason:
npm start -- --httpPort 3456 --socketPort 9876 --wsSessionServerPort 1234
#If you wish to enable conduit functionality*
npm start -- --conduit
*Note*: Requires Conduit to be running. See the Conduit documentation (./conduit/README.md) for more information.
# If you need to use proxy connection for any reason:
npm start -- --proxy <ip>:<port>
Refer more about proxy mode in ./docs/ProxyMode.md
# To use the control CLI (assuming you're in the top-level directory for this repo)
cd cli
npm install
cd src
node cli.mjs --help
# FUTURE: To use the Chrome browser plugin
Visit chrome://extensions in Chrome
Ensure "Developer mode" is turned on (slider to the right in the top right corner of your browser window)
Click the "Load Unpacked" button (top left corner of browser window)
Navigate to the directory under browser-extensions which contains a manifest.json file and click "Select"
mf.config.SAMPLE.json
に"url": "https://rdkcentral.github.io/firebolt/requirements/latest/specifications/firebolt-open-rpc.json"
を追加することで、HTTP からコア/管理 OpenRPC にアクセスできるようになりました。 mf.config.SAMPLE.json
作成し、 mf.config.json
にコピーします。
注: 現在、これらの手順には、イメージ リポジトリから Docker イメージをダウンロードするのではなく、ローカルで Docker イメージを作成することが含まれています。
export MF_DOCKER_USER=<yourDockerUsername>
cd <top of repo>
# Create a docker image: Use the appropriate command (most 3rd party app devs should use the first command)
docker build -f Dockerfile.coreSdk . -t $MF_DOCKER_USER/mock-firebolt
docker build -f Dockerfile.allSdks . -t $MF_DOCKER_USER/mock-firebolt
# Confirm your image was created
docker images | grep mock-firebolt
# Run the image, enabling the core/manage OpenRPC (typical)
# Change '$(pwd)' to whatever else you might want to use; this is where your MF .json files live
# NOTE: -p <outside/host port>:<inside/container port>
docker run -d
--name mf
--mount type=bind,source="$(pwd)",target=/usr/src/firebolt/host-files
-p 3333:3333
-p 9998:9998
$MF_DOCKER_USER/mock-firebolt
# Get container ID
docker ps | grep mf
# See logs
docker logs mf
# Enter the container (if necessary/desired)
docker exec -it mf /bin/bash
# Run CLI commands from inside the container (if necessary/desired)
container> cd /usr/src/firebolt/mock-firebolt/cli/src
container> node cli.mjs --help
# Run CLI
# Note the container path for the volume used when running the image is used here to refer to MF .json files
docker exec -it mf mf.sh --help
docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/<file relative current directory>
# E.g., docker exec -it mf mf.sh --upload /usr/src/firebolt/host-files/cli/examples/account-1.json
# Cleanup when done
docker stop mf
docker rm mf
docker image rm $MF_DOCKER_USER/mock-firebolt (If you want to remove the image, too)
既知の問題を参照してください。
このプロジェクトにコードを提供したい場合は、GitHub を通じてリポジトリをフォークし、プル リクエストを送信することで行うことができます。
RDK がコードをプロジェクトに受け入れる前に、RDK コントリビューター ライセンス契約 (CLA) に署名する必要があります。