diff --git a/0_Starting_OpenHIM.md b/0_Starting_OpenHIM.md index c70a4e9..bd04c8d 100644 --- a/0_Starting_OpenHIM.md +++ b/0_Starting_OpenHIM.md @@ -2,186 +2,6 @@ ## **OpenHIM SetUp Tutorial** -**TLDR; Watch Linux Tutorial Setup on [YouTube](https://youtu.be/F0bTS3qJlG0)** +This page has moved! Find it at -## Useful Links - -[OpenHIM Resources](http://openhim.org/) - -[OpenHIM Core Github Repository](https://github.com/jembi/openhim-core-js) - -[Jembi Health Systems NPC](https://www.jembi.org/) - -## Introduction - -> Tutorial Purpose: Get local OpenHIM Core and Console instances running on your computer. - -The Open Health Information Mediator(OpenHIM) is a middleware component designed to allow data transfer between diverse information systems by routing, orchestrating and translating requests as they flow between systems. - -In this tutorial we will be starting up an OpenHIM instance on your local machine and creating client profile to allow client authentication with the OpenHIM Core. - -## Prerequisites - -This tutorial assumes that you have [docker](https://docs.docker.com/) and [docker-compose](https://docs.docker.com/compose/) installed on you computer. The tutorial instructions are Linux based. - -[docker](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04) and [docker-compose](https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04) install instructions - ---- - -## Project Setup - -### Step 1 - Creating the `docker-compose` script - -Open a terminal and make a directory in which to store a docker-compose script. -Create the file `docker-compose.yml`. - -![Create Docker Compose Script](images/dockerCompose.png) - -Then copy the setup script below into the file. - -```yaml -version: '3' -networks: - openhim: - -services: - mongo-db: - container_name: mongo-db - image: mongo:4.0 - networks: - - openhim - volumes: - - "mongo-data:/data/db" - restart: unless-stopped - - openhim-core: - container_name: openhim-core - image: jembi/openhim-core:5 - restart: unless-stopped - environment: - mongo_url: "mongodb://mongo-db/openhim-development" - mongo_atnaUrl: "mongodb://mongo-db/openhim-development" - NODE_ENV: "development" - ports: - - "8080:8080" - - "5000:5000" - - "5001:5001" - networks: - - openhim - healthcheck: - test: "curl -sSk https://openhim-core:8080/heartbeat || exit 1" - interval: 30s - timeout: 30s - retries: 3 - - openhim-console: - container_name: openhim-console - image: jembi/openhim-console:1.13 - restart: unless-stopped - networks: - - openhim - ports: - - "9000:80" - healthcheck: - test: "curl -sS http://openhim-console || exit 1" - interval: 30s - timeout: 30s - retries: 3 - -volumes: - mongo-data: - -``` - ---- - -### Step 2 - Starting the OpenHIM - -In the terminal, whilst still in the directory containing the `docker-compose.yml` file, run the following command: - -```sh -docker-compose up -``` - -> Include `-d` in the previous command if you want the process to run in the background. - -The docker-compose script will start up the OpenHIM-core, OpenHIM-console and a MongoDB instance. All these services communicate with each other over a defined docker network. This network will be important in the next step. - ---- - -### Step 3- Changing OpenHIM default password - -On a browser, navigate to `http://localhost:9000`. You will be presented with the OpenHIM Console login page: - -![OpenHIM Console Login](images/openhimLogin.png) - -Enter the default username and password: `root@openhim.org` : `openhim-password`. - -As this is a development environment the SSL certificate is self-signed and cannot be authenticated. Therefore after entering the default credentials a textbox will appear beneath the login button requesting that the user follow a link to allow the browser to accept the self-signed certificate. - -![Self-signed certificate link](images/selfSignAccept.png) - -Depending on the browser the browser will load a screen indicating that the certificate cannot be validated. To bypass this click the advanced options then click on the link to proceed to the localhost destination. - -![Chrome Insecure Connection Notice Bypass](images/advanced.png) - -Finally you will be presented with a screen requiring to reset the default user's password. For this tutorial please set this to `password` for simplicity. - ---- - -### Step 4 - Adding an OpenHIM client - -On the OpenHIM Console, navigate to the `Clients` menu option. Under the client's section click the add client button. - -In the _Add a client_ modal, fill in the following details, Add New Role **admin** (press `Enter` after typing in **admin**), then **Save changes**: - -- **Client ID** : test -- **Client Name** : test -- **Basic Auth Password** & **Confirm Password** : test - -![Add a Client](images/addClient.png) - -> The client ID and password are going to be needed later for authenticating requests to the OpenHIM. - -### Step 5 - Testing the OpenHIM Routing - -In this step, we are going to create a Channel in the OpenHIM which will route a request from our `test` client through to an echo server which will respond with the data we sent it. The purpose of this is demonstrate the OpenHIM routing as well as the insight gained into our tutorial system that we gain from the Transaction Log. - -To start, navigate to the Channels menu option in the OpenHIM Console. Click on **+ Channel** icon to add our first channel. In the modal, add channel name then click on the `Request Matching` tab. - -![Echo Channel Name](images/echoChannelName.png) - -In this tab, our url pattern will be `/echo` and our `test` client will be given access to the Channel. Then navigate to the `Routes` tab. - -![Echo Channel Request Matching](images/echoChannelRequestMatching.png) - -Click the **Add New Route** button then input the following information: - -- Route Name: **Echo Route** -- Host: **postman-echo.com** -- Port: **443** -- Route Path: **/post** - -Select `Yes` for Secured Route, then click Save changes. - -![Echo Channel Route](images/echoChannelRoute.png) - -To send our request, open a new terminal and enter the following curl command: - -```sh -curl -X POST http://localhost:5001/echo -H "Authorization: Basic $(echo -n test:test | base64)" -H "content-type: application/text" --data "Hello Echo Server!!!" -``` - -Look for the data field in the response body in the terminal output. - -```sh -{"args":{},"data":"Hello Echo Server!", -``` - -To view this request within the OpenHIM, navigate to the **Transactions Log** in the Console and click on the transaction row to view details. - -On this details page you can see the status of the transaction, which client made the request and to which Channel, and the last key feature is the orchestrations section. This section is very useful when your request goes through a chain OpenHIM mediators. The orchestrations section then gives a summary of all the requests that went through as part of your transaction. This list is useful in diagnosing where in your request chain an issue may be occurring. In this case there was only one request therefore the status of the transaction is that of the request. When there are multiple requests occurring as part of transaction then the status reflects the overall outcome of the requests. - -![Echo Transaction](images/echoTransaction.png) - ---- +This repository will be deleted on 01/03/2020 diff --git a/1_Scaffold_OpenHIM_Mediator.md b/1_Scaffold_OpenHIM_Mediator.md index ad57589..428d51b 100644 --- a/1_Scaffold_OpenHIM_Mediator.md +++ b/1_Scaffold_OpenHIM_Mediator.md @@ -2,377 +2,6 @@ ## **Scaffold OpenHIM Mediator Tutorial** -**TLDR; Watch Tutorial Setup on [YouTube](https://www.youtube.com/watch?v=s-l60WMiZw8)** +This page has moved! Find it at -## Useful Links - -[OpenHIM Resources](http://openhim.org/) - -[OpenHIM Scaffold Bootstrap Mediator](https://github.com/jembi/openhim-mediator-bootstrap-scaffold) - -[Jembi Health Systems NPC](https://www.jembi.org/) - -## Introduction - -> Tutorial Purpose: Create a Scaffold OpenHIM Mediator and Register it with your local OpenHIM instance. - -This mediator is purely for demonstration purposes and is in no way production ready. However, the mechanisms used in this mediator can easily be used in your own OpenHIM mediator projects. The repository is also useful to read through as there are detailed comments describing important aspects of an OpenHIM Mediator. - -The advantage of using the OpenHIM mediator framework over another stand alone service is that OpenHIM mediators are registered and tracked by your OpenHIM instance. This allows administrators to **view the health status** of the mediator, to easily setup **routing** and **logging** to the registered mediator and to **provide new configuration** settings to the mediator all from the OpenHIM Console. - -## Prerequisites - -- NodeJS and NPM - -This tutorial assumes you have already successfully setup the OpenHIM. - -Having a basic understanding of ExpressJS and Javascript ES6 syntax is advised. - ---- - -## OpenHIM Mediator Setup - -### Step 1 - Creating project skeleton - -In a terminal, create a directory for your project. Move into that directory and and run `npm init` and fill in the details you want: - -```sh -mkdir openhim-mediator-bootstrap-scaffold -cd openhim-mediator-bootstrap-scaffold -npm init -``` - -Within the same terminal install the following packages to compile the ES6 code that will be in our project. - -```sh -npm install babel-env babel-cli -``` - -> Do not use babel-node in your production mediator. It uses a lot of memory and has a high start up cost as it compiles your project on the fly. - -Open up your preferred Integrated Development Environment(IDE) and create an `index.js` file. Next, edit the `package.json` file that was created by the npm init step and replace the `scripts` field with the following: - -```json -"scripts": { - "start": "babel-node index.js" -}, -``` - -Next, create a file titled `Dockerfile`. Within it place the following YAML script: - -```yaml -FROM node:10-alpine -WORKDIR /app - -COPY . /app - -RUN npm install - -CMD npm start -EXPOSE 3000 -``` - -In your IDE move back to the `index.js` file. Here enter teh following script to setup a basic express server listening on port 3000. - -```js -'use strict' - -import express from 'express' - -const app = express() - -app.all('*', (req, res) => { - res.send('Hello World') -}) - -app.listen(3000, () => { - console.log('Server listening on port 3000...') -}) -``` - -Then, open a terminal in the project directory and run the following commands: - -```sh -docker build -t scaffold . - -docker run --rm -p 3000:3000 scaffold -``` - -You should see the terminal output **Server listening on port 3000...** - -Test that the mediator is responding correctly by navigating to `localhost:3000` on a browser where you should see **Hello World** - ---- - -### Step 2 - Registering the Mediator with the OpenHIM - -In a terminal install the npm OpenHIM Mediator Utils package. This utils package enable quick mediator setup as it handles OpenHIM authentication, registering mediator, fetching mediator configuration from the OpenHIM, and creating the mediator heartbeat emitter. - -```sh -npm install openhim-mediator-utils -``` - -In your IDE, create a new file called `mediatorConfig.json`. Within this file place the following JSON configurations: - -```json -{ - "urn": "urn:mediator:tutorial_scaffold", - "version": "1.0.0", - "name": "Scaffold Mediator", - "description": "Tutorial Scaffold Mediator", - "defaultChannelConfig": [ - { - "name": "Bootstrap Scaffold Mediator", - "urlPattern": "^/scaffold$", - "routes": [ - { - "name": "Bootstrap Scaffold Mediator Route", - "host": "scaffold", - "path": "/", - "port": "3000", - "primary": true, - "type": "http" - } - ], - "allow": ["admin"], - "methods": ["GET", "POST"], - "type": "http" - } - ], - "endpoints": [ - { - "name": "Bootstrap Scaffold Mediator Endpoint", - "host": "scaffold", - "path": "/", - "port": "3000", - "primary": true, - "type": "http" - } - ] -} -``` - -Open `index.js` and import the registerMediator function from `openhim-mediator-utils` as well as the `mediatorConfig.json` file. Next declare a new object openhimConfig with the details below and instantiate the `registerMediator` function with `openhimConfig`, `mediatorConfig`, and a callback - -```js -import { registerMediator } from 'openhim-mediator-utils' -import mediatorConfig from './mediatorConfig.json' - -// Express Server Code - -const openhimConfig = { - username: 'root@openhim.org', - password: 'password', - apiURL: 'https://openhim-core:8080', - trustSelfSigned: true -} - -registerMediator(openhimConfig, mediatorConfig, err => { - if (err) { - console.error('Failed to register mediator. Check your Config:', err) - process.exit(1) - } -}) -``` - -Rebuild the scaffold docker image to include the new changes. Then look up the name of the docker bridge network over which your running openhim instance should be communicating. And finally, start the container including the _network_ flag. - -> The docker network name is made of the directory name where the docker-compose script was run appended with **openhim**. In this case `tutorial_openhim` - -```sh -docker build -t scaffold . - -docker network ls - -docker run --network tutorial_openhim --name scaffold --rm -p 3000:3000 scaffold -``` - -> **Important!** Remember to use the `--name` flag. The name is required to allow the different containers to reference each other. - -Check that your mediator has registered correctly by navigating to the OpenHIM Console Mediator Page on `https://localhost:9000/#!/mediators` - -![Mediator Registered](images/registeredMediator.png) - ---- - -### Step 3 - Adding Default Channel - -Next we can setup the default channel. On the Mediators page in the Console, click on the mediator row. This page contains more details about the scaffold mediator. The bottom row describes the available default channel. Click the green plus icon on the right hand bottom corner to create this channel. - -![Mediator Details. Add Default Channel](images/mediatorDetails.png) - -Once the channel is created navigate to the Channels Menu option to view the Channel. To view the channel details you can click on yellow edit icon on the channel. All the details here are already correct as they were set in the `mediatorConfig.json` file. Navigate to the Routes tab in the modal and click on the yellow edit route icon to view route details. - -![Channel Route Details](images/routeDetails.png) - -The Route defines where a client's request will be directed. Since we are running the scaffold mediator in a `docker container` we have provided the docker container name as the route `host` variable. `Docker` will resolve requests to the correct IP. - ---- - -### Step 4 - Sending Through First Request Via OpenHIM - -With our scaffold mediator channel route setup we can send through our first request that will be tracked by the OpenHIM. -In a terminal run the following `cURL` command: - -```sh -curl -X GET http://localhost:5001/scaffold -H "Authorization: Basic $(echo -n test:test | base64)" -``` - -**Hello World** should come through in the terminal response. To view the request and response details navigate to the OpenHIM Console [Transactions Log](http://localhost:9000/#!/transactions) page. Here you should see your first scaffold mediator transaction. - -![First Transaction](images/transaction.png) - -Click on this transaction to view details about it. - -![Transaction Details](images/transactionDetails.png) - -The transaction here was Successful, it went through the Bootstrap Scaffold Mediator Channel, and the client was our `test` client. If needed this transaction could be rerun by clicking the Re-run Transaction button. This would send through the exact same request details and keep a record of the original transaction and any child transactions with all their respective results. - -The transaction response and `orchestrations` in the transaction can be updated through the OpenHIM API at a later time if necessary. This is useful for asynchronous requests. - -> For example, in a hypothetical system our endpoint information system has a slow processing speed yet, during peak times, our system sends through more requests than the end system can handle. To solve this we could input a [file-queue mediator](https://github.com/jembi/openhim-mediator-file-queue) between the OpenHIM and an orchestration mediator that would store all requests from the client and slowly feed them through to the endpoint via the orchestrator when the endpoint is ready. At the same time, the OpenHIM could respond to the client indicating that the `file-queue mediator` received the request. Each time the client's request gets a response from a mediator this would be added to the list of orchestrations along the request and response details. When the final response is received the transaction can be updated to reflect the overall status of that transaction. ie: Successful, Failed, Completed, or Completed with Errors. - ---- - -### Step 4 - Adding Mediator Heartbeat - -To add a mediator heartbeat, import the `activateHeartbeat` method form `openhim-mediator-utils`. This function takes in the `openhimConfig` option set to instantiate as well as the mediator's `urn` within that object. Therefore, to keep the file neat let's import the `urn` from `mediatorConfig` and add this variable to the openhimConfig object. Instantiate the `activateHeartbeat` method within the `app.listen`. The `index.js` file should now resemble this: - -> Why is the `activateHeartbeat` function always instantiated within the `app.listen` function - -```js -'use strict' - -import express from 'express' -import { registerMediator, activateHeartbeat } from 'openhim-mediator-utils' -import mediatorConfig, { urn } from './mediatorConfig.json' - -const app = express() - -const openhimConfig = { - username: 'root@openhim.org', - password: 'password', - apiURL: 'https://openhim-core:8080', - trustSelfSigned: true, - urn -} - -app.all('*', (req, res) => { - res.send('Hello World') -}) - -app.listen(3000, () => { - console.log('Server listening on port 3000...') - activateHeartbeat(openhimConfig) -}) - -registerMediator(openhimConfig, mediatorConfig, err => { - if (err) { - console.error('Check your config!', err) - process.exit(1) - } -}) -``` - ---- - -### Step 5 - Fetching Mediator Configuration from openHIM - -To enable the OpenHIM to store console editable configuration details, we need to provide the template for these details within the `mediatorConfig.json` file. Add the following config template information beneath the **endpoints** entry within the `mediatorConfig.json`. - -```json -,"configDefs": [ - { - "param": "tutorial", - "displayName": "Tutorial variables", - "description": "Some variables to demonstrate fetching OpenHIM mediator config", - "type": "struct", - "array": false, - "template": [ - { - "param": "variable_1", - "displayName": "Variable 1", - "description": "First Variable", - "type": "string" - }, - { - "param": "variable_2", - "displayName": "Variable 2", - "description": "Second Variable", - "type": "string" - } - ] - } -] -``` - -Next, within `index.js` import `fetchConfig` from `openhim-mediator-utils` and instantiate `fetchConfig` with the `openhimConfig` object. - -```js -import { fetchConfig } from 'openhim-mediator-utils`' - -fetchConfig(openhimConfig, (err, initialConfig) => { - if (err) { - console.error(err) - process.exit(1) - } - console.log('Initial Config: ', JSON.stringify(initialConfig)) -}) -``` - -Test the fetch config function is working on the console. To do this, navigate to the [mediators page](https://localhost:9000/#!/mediators) on the OpenHIM Console then delete the existing scaffold mediator there. - -![Delete mediator](images/deleteMediator.png) - -Back in your terminal rebuild the scaffold mediator docker image and start the container. - -```sh -docker build -t scaffold . - -docker run --network tutorial_openhim --rm --name scaffold -p 3000:3000 scaffold -``` - -The terminal output should be: - -![Empty Config Terminal Output](images/emptyConfigTerminalOutput.png) - -Go back to the mediator page and click the blue gear icon. In the Modal enter something into the fields. - -![Add Mediator Config](images/addMediatorConfig.png) - -Go back to your terminal and stop the container. Restart it and your should see your config input. - -![Content in Config Terminal Output](images/contentInConfigTerminalOutput.png) - -This function is useful however, the OpenHIM is capable of updating specific configuration details on the fly and emit a notification to the mediator to get the new config. This function is tied to the activateHeartbeat function. -Make the following changes to the `index.js` file: - -```js -const emitter = activateHeartbeat(openhimConfig) - -emitter.on('error', err => { - console.error('Heartbeat failed: ', err) -}) - -emitter.on('config', newConfig => { - console.log('Received updated config:', JSON.stringify(newConfig)) -}) -``` - -Rebuild and start the new container. Your old config entries should be in the terminal output as the _initial config_. - -```sh -docker build -t scaffold . - -docker run --network tutorial_openhim --rm --name scaffold -p 3000:3000 scaffold -``` - -Go to the mediators page and click the blue gear icon to edit the mediator config. Enter some new data in the fields and save changes. This will emit a `config` event which will now be picked up by the mediator. - -![New Config in Mediator](images/newConfigInMediator.png) - -Switch back to your terminal and the new config should be in the terminal output. - -![New Config In Terminal Output](images/newConfigInTerminal.png) - ---- +This repository will be deleted on 01/03/2020 diff --git a/2_Custom_Logic_Openhim_Mediator.md b/2_Custom_Logic_Openhim_Mediator.md index 21cbe26..78ba820 100644 --- a/2_Custom_Logic_Openhim_Mediator.md +++ b/2_Custom_Logic_Openhim_Mediator.md @@ -2,140 +2,6 @@ ## **OpenHIM Mediator With Custom Logic Tutorial** -**TLDR; Watch Linux Tutorial Setup on [YouTube](https://www.youtube.com/watch?v=)** +This page has moved! Find it at -## Useful Links - -[OpenHIM Resources](http://openhim.org/) - -[OpenHIM Orchestrator Bootstrap Mediator](https://github.com/jembi/openhim-mediator-bootstrap-orchestrator) - -[Jembi Health Systems NPC](https://www.jembi.org/) - -## Introduction - -> Tutorial Purpose: Create an Orchestrator OpenHIM Mediator registered with your local OpenHIM instance that illustrates how to implement your own custom mediator logic. - -In this tutorial we will be designing an orchestrator mediator that will accept a request from the client for a list of Health Facilities. In our example, the client wants the facility list in JSON format. [DHIS2](https://docs.dhis2.org/2.28/en/user/html/ch02s02.html) is the source of our facility data and in this example only provides the data in XML. Therefore, our mediator will have to translate the data from XML into JSON before sending the response back to the client. - -![Mediator Diagram](images/mediatorDiagram.jpg) - -## Prerequisites - -- NodeJS and NPM - -This tutorial assumes you've setup the OpenHIM and understand the basics of an openHIM Mediator. - -Having a solid understanding of ExpressJS and Javascript ES6 syntax is advised. - ---- - -## OpenHIM Mediator Setup - -### Step 1 - Preparing the Scaffold Mediator to be used for the Orchestrator - -We will use the [OpenHIM Bootstrap Scaffold Mediator](https://github.com/jembi/openhim-mediator-bootstrap-scaffold) from the [previous tutorial](https://github.com/jembi/openhim-mediator-tutorial/blob/master/1_Scaffold_OpenHIM_Mediator.md) as the starting point for the orchestrator. - -To keep the two mediators from conflicting, the first thing we need to change for the orchestrator is the port numbers. Let's configure the `Orchestrator` to expose port 3001 _instead_ of 3000 so that the two mediators can run at the same time. The files that set the port numbers are: `index.js`, `Dockerfile`, and `mediatorConfig.json`. - -```js -//index.js -app.listen(3001, () => { - console.log('Server listening on port 3001...') -``` - -```yaml -#Dockerfile -EXPOSE 3001 -``` - -The last change is in the mediatorConfig.json and package.json files. Where ever the word scaffold was used replace this with **orchestrator**. Your `mediatorConfig` file should now resemble this: - -```json -{ - "urn": "urn:mediator:tutorial_orchestrator", - "version": "1.0.0", - "name": "Orchestrator Mediator", - "description": "Tutorial Orchestrator Mediator", - "defaultChannelConfig": [ - { - "name": "Bootstrap Orchestrator Mediator", - "urlPattern": "^/orchestrator$", - "routes": [ - { - "name": "Bootstrap Orchestrator Mediator Route", - "host": "orchestrator", - "path": "/", - "port": "3001", - "primary": true, - "type": "http" - } - ], - "allow": ["admin"], - "methods": ["GET", "POST"], - "type": "http" - } - ], - "endpoints": [ - { - "name": "Bootstrap Orchestrator Mediator Endpoint", - "host": "orchestrator", - "path": "/", - "port": "3001", - "primary": true, - "type": "http" - } - ], - "configDefs": [ - { - "param": "tutorial", - "displayName": "Tutorial variables", - "description": "Some variables to demonstrate fetching OpenHIM mediator config", - "type": "struct", - "array": false, - "template": [ - { - "param": "variable_1", - "displayName": "Variable 1", - "description": "First Variable", - "type": "string" - }, - { - "param": "variable_2", - "displayName": "Variable 2", - "description": "Second Variable", - "type": "string" - } - ] - } - ] -} -``` - -Test the new project by building the image, get the docker network name, and start the container: - -```sh -docker build -t orchestrator . - -docker network ls - -docker run --network {openhim-network} -p 3001:3001 --name orchestrator --rm orchestrator -``` - -Open up the OpenHIM Console Mediators page in a browser and you should see your new mediator listed. - -![Registered Orchestrator Mediator](images/registerOrchestrator.png) - -Important mediator changes are indicated in the following image. Once your orchestrator mediator is properly configured click the green **Add channel** button in the bottom right corner. - -![Important Orchestrator Details](images/orchestratorDetails.png) - -On the [OpenHIM Console Channels](http://localhost:9000/#!/channels) page you should see your new orchestrator channel. - -![Orchestrator Channel](images/addOrchestratorChannel.png) - -Click the yellow edit channel icon to view details of the channel. Go to the **Route** tab and check that the host value is `orchestrator` and the port is **3001**. - -![Orchestrator Route Details](images/orchestratorRouteDetails.png) - ---- +This repository will be deleted on 01/03/2020 diff --git a/3_Production_Scaffold_OpenHIM.md b/3_Production_Scaffold_OpenHIM.md index af9320a..1de3558 100644 --- a/3_Production_Scaffold_OpenHIM.md +++ b/3_Production_Scaffold_OpenHIM.md @@ -2,20 +2,6 @@ ## **OpenHIM Skeleton Production Mediator** -## Useful Links +This page has moved! Find it at -[OpenHIM Resources](http://openhim.org/) - -[OpenHIM Orchestrator Bootstrap Production](https://github.com/jembi/openhim-mediator-bootstrap-production) - -[Jembi Health Systems NPC](https://www.jembi.org/) - -## Introduction - -This page in the mediator tutorial is purely to point you to the provided mediator scaffolding for creating a production ready mediator. A future code along video _might_ come along soon. - -## Prerequisites - -- NodeJS, NPM and Docker installed -- You've setup the OpenHIM and have already prototyped an openHIM Mediator using the tutorial scaffold mediators provided. -- It is advisable to have a solid understanding of ExpressJS and Javascript ES6 syntax. +This repository will be deleted on 01/03/2020 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 4fd07a1..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Jembi Health Systems NPC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/images/addClient.png b/images/addClient.png deleted file mode 100644 index d02b62e..0000000 Binary files a/images/addClient.png and /dev/null differ diff --git a/images/addMediatorConfig.png b/images/addMediatorConfig.png deleted file mode 100644 index f763f06..0000000 Binary files a/images/addMediatorConfig.png and /dev/null differ diff --git a/images/addOrchestratorChannel.png b/images/addOrchestratorChannel.png deleted file mode 100644 index fd470e8..0000000 Binary files a/images/addOrchestratorChannel.png and /dev/null differ diff --git a/images/advanced.png b/images/advanced.png deleted file mode 100644 index d656661..0000000 Binary files a/images/advanced.png and /dev/null differ diff --git a/images/contentInConfigTerminalOutput.png b/images/contentInConfigTerminalOutput.png deleted file mode 100644 index 95d4db0..0000000 Binary files a/images/contentInConfigTerminalOutput.png and /dev/null differ diff --git a/images/deleteMediator.png b/images/deleteMediator.png deleted file mode 100644 index ac85752..0000000 Binary files a/images/deleteMediator.png and /dev/null differ diff --git a/images/dockerCompose.png b/images/dockerCompose.png deleted file mode 100644 index 81335c4..0000000 Binary files a/images/dockerCompose.png and /dev/null differ diff --git a/images/echoChannelName.png b/images/echoChannelName.png deleted file mode 100644 index d2f3282..0000000 Binary files a/images/echoChannelName.png and /dev/null differ diff --git a/images/echoChannelRequestMatching.png b/images/echoChannelRequestMatching.png deleted file mode 100644 index e975f36..0000000 Binary files a/images/echoChannelRequestMatching.png and /dev/null differ diff --git a/images/echoChannelRoute.png b/images/echoChannelRoute.png deleted file mode 100644 index f410ac6..0000000 Binary files a/images/echoChannelRoute.png and /dev/null differ diff --git a/images/echoTransaction.png b/images/echoTransaction.png deleted file mode 100644 index a0ba934..0000000 Binary files a/images/echoTransaction.png and /dev/null differ diff --git a/images/emptyConfigTerminalOutput.png b/images/emptyConfigTerminalOutput.png deleted file mode 100644 index 2ef70bd..0000000 Binary files a/images/emptyConfigTerminalOutput.png and /dev/null differ diff --git a/images/mediatorDetails.png b/images/mediatorDetails.png deleted file mode 100644 index 0177469..0000000 Binary files a/images/mediatorDetails.png and /dev/null differ diff --git a/images/mediatorDiagram.jpg b/images/mediatorDiagram.jpg deleted file mode 100644 index ed947fb..0000000 Binary files a/images/mediatorDiagram.jpg and /dev/null differ diff --git a/images/newConfigInMediator.png b/images/newConfigInMediator.png deleted file mode 100644 index 1cdae6a..0000000 Binary files a/images/newConfigInMediator.png and /dev/null differ diff --git a/images/newConfigInTerminal.png b/images/newConfigInTerminal.png deleted file mode 100644 index 8776a72..0000000 Binary files a/images/newConfigInTerminal.png and /dev/null differ diff --git a/images/openhimLogin.png b/images/openhimLogin.png deleted file mode 100644 index ffbbcbd..0000000 Binary files a/images/openhimLogin.png and /dev/null differ diff --git a/images/orchestratorDetails.png b/images/orchestratorDetails.png deleted file mode 100644 index e24cbcc..0000000 Binary files a/images/orchestratorDetails.png and /dev/null differ diff --git a/images/orchestratorRouteDetails.png b/images/orchestratorRouteDetails.png deleted file mode 100644 index 9a35672..0000000 Binary files a/images/orchestratorRouteDetails.png and /dev/null differ diff --git a/images/registerOrchestrator.png b/images/registerOrchestrator.png deleted file mode 100644 index a9e0896..0000000 Binary files a/images/registerOrchestrator.png and /dev/null differ diff --git a/images/registeredMediator.png b/images/registeredMediator.png deleted file mode 100644 index c7df9b8..0000000 Binary files a/images/registeredMediator.png and /dev/null differ diff --git a/images/routeDetails.png b/images/routeDetails.png deleted file mode 100644 index 78ecf2e..0000000 Binary files a/images/routeDetails.png and /dev/null differ diff --git a/images/selfSign.png b/images/selfSign.png deleted file mode 100644 index 1fa38df..0000000 Binary files a/images/selfSign.png and /dev/null differ diff --git a/images/selfSignAccept.png b/images/selfSignAccept.png deleted file mode 100644 index a44f586..0000000 Binary files a/images/selfSignAccept.png and /dev/null differ diff --git a/images/transaction.png b/images/transaction.png deleted file mode 100644 index d80f279..0000000 Binary files a/images/transaction.png and /dev/null differ diff --git a/images/transactionDetails.png b/images/transactionDetails.png deleted file mode 100644 index 143bb39..0000000 Binary files a/images/transactionDetails.png and /dev/null differ