Skip to content

Applications Spring Configs

Kantemir Tvorogov edited this page Aug 15, 2023 · 2 revisions

In this document, Spring configuration files of three main ACUITY Java applications are described.

Config set structure

  • application.yml - common config used by all applications in any case
  • admin.yml - AdminUI application specific config
  • vahub.yml - VAHub application specific config
  • vasecurity.yml - VASecurity application specific config
  • application-azure-sso.yml - the rest of configs contains common or applicaton-specific settings for Azure SSO based user authentication. They are activated only when azure-sso Spring profile is used.
  • admin-azure-sso.yml
  • vahub-azure-sso.yml
  • vasecurity-azure-sso.yml

Common config

# manages "X-Application-Context" HTTP header setting (more info: https://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html )
management:
  add-application-context-header: false

# manages links rendering behind proxy (more info: https://docs.spring.io/spring-boot/docs/1.5.x/reference/html/howto-embedded-servlet-containers.html#howto-use-tomcat-behind-a-proxy-server )
server:
  use-forward-headers: true

# path to the logs directory (more info: https://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/reference/htmlsingle/#boot-features-custom-log-configuration )
logging:
  path: /var/log

# database connection data. if needed, the ones you need may be overridden for particular app in its config.
spring:
  datasource:
    url: jdbc:postgresql://postgres:5432/acuity_db
    username: acuity
    ## database password set by acuity-flyway in /images/flyway/flyway.conf
    password: your_password
    driver-class-name: org.postgresql.Driver
    fetch:
      size: 256
    initial-size: 10
    max-active: 50
    яmax-idle: 30
    min-idle: 10
    max-wait: 10000
    validation-query: SELECT 1
    test-while-idle: true
    test-on-borrow: true
    test-on-return: true

acuity:
  # used by AdminUI and VAHub to connect to VASecurity
  vasecurity:
    url: http://vasecurity:8000
    username: username
    password: pass
  # used by AdminUI and VASecurity to connect to VAHUb
  vahub:
    url: http://vahub:8000
    username: username
    password: pass
  # for VASecurity authorization module used in all ACUITY apps (basic authentication settings; should be here as long as basic authentication is used)
  security:
    basic-auth:
      users: 
        - username: username
          password: pass
          roles:
            - REMOTE_USER
            - ACL_ADMINISTRATOR
            - TRAINED_USER
          authorities:
            - ADMIN

Azure ML and cBioPortal

To enable Machine Insights module and CBioPortal module in ACUITY you should fill the following configuration.

# Azure Machine Learning settings (used by VASecurity and AdminUI)
azureml:
  enable: true
  webservice:
    qtalgorithm:
      url: #url
      apikey: #key
      workspaces: #key
      service: #key
      api-version: 2.0
      details: true

integration:
  # Integration with CBioPortal (used by AdminUI and VAHub)
  cbioportal:
    url: #url

AdminUI config

These configs are placed in corresponding application-<env>.yml for local start (development purposes). For production purposes these configuration parameters are stored in admin-<storage-type>.yml files:

  • admin-azure-storage.yml
  • admin-local-storage.yml
  • admin-smb-storage.yml

For containerized application deployment these configs should be added to acuity-docker repository and particular profile should be added to .env file. For more details please check acuity-docker instructions

#Config for azure storage
azure:
  storage:
    protocol:
    account:
    key:

#Config for local storage which would make given path a file source folder
local-storage:
  # Could be changed to the path with local folder during development
  path:
  prefix: local://

#Config for SMB storage
smb-storage:
  client:
    domain:
    username:
    password:

VAHub config

# used only to define Kryo cache directory path in local FS; may be useful if you make VAHub connect to different DBs
# and want to keep different sets of cached data, also allows to keep separate cache directory for integration tests
env:
  name:
    ${ENV_TYPE_PROFILE}

server:
  session:
    # Tomcat session persistence setting
    persistent: true
    # session cookie name used by SpringBoot (by default JSESSIONID;
    # more info: https://stackoverflow.com/questions/25918556/spring-boot-configure-custom-jsessionid-for-embedded-server )
    cookie:
      name: VAHUBSESSIONID

# customer-specific settings:
branding:
  about:
    welcomeVideo:
    howtoVideo:
  # support and feedback emails shown on main page
  support:
    email: [email protected]
    feedback: [email protected]
    # link to the VAHub best practices manual (if exists)
    best-practice:
  # info about supporters shown on the VAHub Support page
  super-users:
    - name: Name Surname
      email: [email protected]
      location:
      department: Department
      about: An example of a superuser.
    - name: Support Desk
      email: [email protected]
      location:
      department:
      about:
  branding-colors:
    brandingColor: '#d4e9f2'
    headerTextColor: black
    headerDatasetsColor: '#0043af'
    brightBrandingColor: '#0092b6'
    activePanelColor: '#a3d2e3'
    widgetColor: '#64bbd4'
    widgetBrightColor: '#00a5c6'
    transparency: 0.5
  # path to the directory (inside the VAHub war) with customer-specific images (like logo); "images" if empty
  path-to-images:
  # links to external services displayed on the VAHub home page (if empty, corresponding buttons are disabled)
  extended-options:
    omics-services-url:
    patient-services-url:
    ai-and-ml-services-url:
  showMyDashboard: false

# AG Grid library license key (if the customer has one)
licensing:
  agGridKey:

VASecurity config

# session cookie name used by SpringBoot (by default JSESSIONID;
# more info: https://stackoverflow.com/questions/25918556/spring-boot-configure-custom-jsessionid-for-embedded-server )
server:
  session:
    cookie:
      name: VASECURITYSESSIONID

Azure SSO options

SSO options have similar configurations, please refer to Azure Setup section to manually set these configs or use corresponding scripts to automate this process

azure:
  resource:
    clientId:
    clientSecret:
  client:
    clientId:
    clientSecret:
Clone this wiki locally