Information for system integrators
Warning
These notes are a work-in-progress. This page provides an overview as guidance only, and not a series of definite instructions. We plan to further expand on this information.
Audience🔗
This page is aimed at people who want to run their own installation of OpenSAFELY as a proof-of-concept trial prior to integrating into the live system.
These people are likely to have one of the following professional roles:
- software developers
- clinical data providers
- system integrators
Assumed knowledge🔗
It is taken that you have some familiarity with OpenSAFELY.
If not, you should first refer to:
Software components🔗
The OpenSAFELY technical architecture diagram shows all of the platform software components and how they interact.
The specific steps required to create a minimal setup are:
-
Deploy a job runner within your secure environment. A minimal configuration simply runs Docker containers and stores any resulting container output on a local disk.
-
Deploy a job server that the job runner polls for jobs that end users request to be run.
It is possible to use our existing job server; contact us if you would like us to configure this for you.
-
Create a secure network with our GitHub proxy. This provides access to repositories with research study code to run and Docker images used to run the code.
-
To provide access to your database from within your setup, integrate into our cohort-extractor ETL tool:
- via an implementation of a backend interface; this is an example for TPP
- and, if you are using an as-yet unsupported database, a database connector
Warning
A simpler replacement for cohort-extractor, DataBuilder, is in development.
You may prefer to wait for a stable version of DataBuilder before attempting to integrate.
-
Releasing job outputs requires:
- the release-hatch tool for reviewing outputs
- the output-publisher tool for publishing outputs
Deployment🔗
We use Ubuntu in our deployments. Our deployments use deploy scripts that you can refer to.
Support🔗
See our support page for details of how to get more assistance on integration.