Skip to main content

Running Fire Arrow

Using the Fire Arrow Shell repository

The recommended way to run Fire Arrow is to use pre-compiled Docker containers. These containers are base containers that can be used both for development and for production use by injecting different configuration files. The Fire Arrow Shell repository can achieve both through single commands.

The Fire Arrow Shell repository contains a script that pulls a pre-built container, injects a custom configuration and executes the container locally in a single command.

Retrieve the repository first by running

git clone https://github.com/evoleen/fire-arrow-shell.git

Fire Arrow can then be started by executing

./run.sh

Fire Arrow's debug log will show directly in the console:

Fire Arrow's debug output

Note that Fire Arrow will display an error message with an unchanged config.json file. This is because the existing configuration will point to an invalid FHIR server and an invalid authentication server, causing Fire Arrow to print request errors since both are unreachable. These two settings need to be adjusted before making a first request and are explained in the next two sections. (minimal configuration and making requests)

If the FHIR server is hosted by Azure, make sure to run

az login

before using run.sh. This ensures that an active authentication session is available in the terminal. Fire Arrow Shell will setup the Docker container so that it can use Azure Identity to automatically acquire an authentication token for the FHIR server.

Building custom Docker containers

Readily built Docker contains are available in a public container registry. Use

docker run evoleenpublicacr.azurecr.io/fire_arrow:latest

to retrieve the latest container or retrieve a specific version by adding a version tag:

docker run evoleenpublicacr.azurecr.io/fire_arrow:1.4.2

Important: The pre-built Docker images use a default configuration which contains an invalid authentication server and sample request validation rules. The pre-built containers always have to be augmented with a custom configuration. Before attempting to make a request, checkout how to create a minimal configuration.

The Fire Arrow Shell repository mentioned above can be used as a starting point to build your own containers. It has a basic Dockerfile that customizes a pre-built container.