OHDSI / Atlas

ATLAS is an open source software tool for researchers to conduct scientific analyses on standardized observational data
http://atlas-demo.ohdsi.org/
Apache License 2.0
258 stars 126 forks source link

Improve Configuration for Docker #2916

Closed qcaas-nhs-sjt closed 1 month ago

qcaas-nhs-sjt commented 3 months ago

At present, docker configuration is extremely limited, with only really the ability to change WebAPI URL. This means that if docker users want to amend any of the configurations, they are forced to override the current settings by creating their own images, or dynamically injecting the config file (which could introduce security concerns) rather than being able to use the default image and config file and override based on the environmental variables.

The same environmental variable substitution that is used for WEBAPI_URL can also provide for many other customisations, making the solution much more customisable for docker users.

qcaas-nhs-sjt commented 3 months ago

Added Attached PR, this will effectively expose the majority of configurable options in the app. These will be overridden:

For those familiar with K8S, we've been able to then customise our implementation using the following:

  env:
  # Dynamic WebAPI will use /WebAPI on the address that was sent by the request, rather than having to define up-front
  # So if it receives a request at https://sandbox-ohdsi.lscsde.nhs.uk it will then look for the WebAPI at 
  # https://sandbox-ohdsi.lscsde.nhs.uk/WebAPI/ instead. This was adapted from the work provided by @chgl in
  # https://github.com/chgl/charts/tree/master/charts/ohdsi#override-config-localjs-for-atlas
  - name: USE_DYNAMIC_WEBAPI_URL
    value: "true"

  # Enable user authentication using Entra ID via the Open ID provider
  - name: USER_AUTHENTICATION
    value: "true"
  - name: OID_PROVIDER_ENABLED
    value: "true"
  - name: OID_PROVIDER_NAME
    value: "Microsoft Entra ID"

  # Customisations for our environment
  - name: SUPPORT_MAIL
    value: "shaun.turner1@nhs.net"
  - name: APP_NAME
    value: "LSCSDE - OHDSI Atlas"

  # Clear local storage before loading config
  - name: CLEAR_LOCAL_STORAGE
    value: "true"

As you can see this gives a lot more flexibility