Mock Firebolt memungkinkan pengembang aplikasi yang membuat aplikasi yang sesuai dengan Firebolt untuk "secara artifisial" menyebabkan panggilan ke Firebolt SDK untuk mengembalikan respons yang berbeda dari yang dikembalikan oleh Firebolt asli yang berjalan pada perangkat apa pun yang mereka miliki.
Ini mungkin digunakan, misalnya:
MASA DEPAN: Dapat bertindak sebagai proksi terbalik ke Firebolt asli yang berjalan di perangkat nyata.
(CATATAN: SDK standar memiliki tiruan statis bawaan tetapi tidak dapat dikontrol atau diperluas.)
Perhatikan juga bahwa karena SDK tidak memvalidasi parameter pada pemanggilan metode, pengembang aplikasi juga dapat menggunakan Mock Firebolt sebagai cara untuk memvalidasi bahwa pemanggilan metode Firebolt sudah benar.
Repo ini berisi elemen-elemen berikut:
Lihat Dokumentasi.
Mock Firebolt adalah layanan tiruan yang sangat umum untuk hampir semua layanan berbasis OpenRPC. Daftar SDK tertentu yang didukung server saat Anda menjalankannya dikontrol oleh konten file server/src/.mf.config.json
dan tanda baris perintah terkait yang Anda berikan saat Anda memulai server.
Repo berisi file server/src/.mf.config.SAMPLE.json
dan Anda harus menyalin file ini ke server/src/.mf.config.json
agar server dapat dimulai. Setelah Anda selesai melakukannya, Anda bebas mengedit file server/src/.mf.config.json
dan menambahkan SDK lain jika Anda mau. Jika file OpenRPC JSON untuk API Anda ada di cloud atau tersedia melalui HTTP, Anda harus menggunakan properti url
untuk SDK di file ini, bukan properti fileName
(yang hanya digunakan untuk SDK yang memiliki "hard ketergantungan" di file server/package.json
).
Dua bagian berikutnya menganggap Anda menggunakan file .mf.config.json
yang sudah tersedia.
Mock Firebolt mendukung Firebolt SDK berikut: inti & kelola .
Mock Firebolt juga mendukung $badger SDK untuk pengembang aplikasi yang bermigrasi dari $badger ke Firebolt.
Pengembang yang ingin mengaktifkan fungsi ini harus meneruskan tanda baris perintah --moneybadger
saat memulai Mock Firebolt. Selain itu, Anda harus menggunakan skrip activateMockFireboltForBadger.js
dalam aplikasi Anda dan menjalankannya sebelum app bundle Anda (yang mencakup $badger) dijalankan.
Catatan: Membutuhkan NodeJS 16+. Jika Anda menggunakan nvm
, lakukan nvm use 16
atau serupa.
Untuk menginstal dan menjalankan:
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"
Sekarang Anda dapat mengakses inti/kelola OpenRPC dari HTTP dengan menambahkan "url": "https://rdkcentral.github.io/firebolt/requirements/latest/specifications/firebolt-open-rpc.json"
di mf.config.SAMPLE.json
dan menyalin ke mf.config.json
.
CATATAN: Petunjuk ini saat ini melibatkan pembuatan image buruh pelabuhan secara lokal daripada mengunduhnya dari repositori image.
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)
Lihat Masalah Umum.
Jika Anda ingin menyumbangkan kode untuk proyek ini, Anda dapat melakukannya melalui GitHub dengan melakukan forking pada repositori dan mengirimkan permintaan tarik.
Sebelum RDK menerima kode Anda ke dalam proyek, Anda harus menandatangani Perjanjian Lisensi Kontributor (CLA) RDK.