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에만 사용됨) 대신 이 파일에서 SDK의 url
속성을 사용해야 합니다. 종속성"을 server/package.json
파일에 포함).
다음 두 섹션에서는 기본 .mf.config.json
파일을 사용하고 있다고 가정합니다.
Mock Firebolt는 코어 및 관리라는 Firebolt SDK를 지원합니다.
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 이미지를 생성하는 작업이 포함됩니다.
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)에 서명해야 합니다.