Application Configuration

Application configuration including the list of registered framework parsers, publishers and associated properties.

Last Updated: 26 May 2022 • Page Author: Jillur Quddus

Overview

The POB Spring application configuration includes the list of registered framework parsers and publishers executed by the POB data pipeline, along with associated connectivity properties.

Location

The configuration for the POB Spring application context may be found in the pob-configuration Maven module at src/main/resources/application.yml. The complete configuration file is as follows:

name: pob
frameworks:
    - id: dos
      name: 'Digital Outcomes and Specialists Framework'
      enabled: true
      baseUrl: https://www.digitalmarketplace.service.gov.uk
      parserClass: ai.hyperlearning.pob.data.parsers.dos.DosParser 
      filter: false
      keywords: ''
      properties:
        opportunitiesUrl: https://www.digitalmarketplace.service.gov.uk/digital-outcomes-and-specialists/opportunities?q=&statusOpenClosed=open
    - id: cf
      name: 'Contracts Finder'
      enabled: true
      baseUrl: https://www.contractsfinder.service.gov.uk
      parserClass: ai.hyperlearning.pob.data.parsers.cf.ContractsFinderParser
      filter: true
      keywords: 'data software java python artificial intelligence machine learning training architecture engineering digital transformation computing language'
      properties:
        opportunitiesUrl: https://www.contractsfinder.service.gov.uk/Search/Results
publishers:
    - id: csv
      enabled: true
      publisherClass: ai.hyperlearning.pob.data.publishers.csv.CsvPublisher
      properties:
        path: ${java.io.tmpdir}/pob.csv
    - id: slack
      enabled: false
      publisherClass: ai.hyperlearning.pob.data.publishers.slack.SlackPublisher
      properties:
        channel: ${slack-channel}
        webhook: ${slack-webhook}
    - id: microsoft-teams
      enabled: false
      publisherClass: ai.hyperlearning.pob.data.publishers.microsoft.MicrosoftTeamsPublisher
      properties:
        webhook: ${microsoft-teams-webhook}
    - id: google-chat
      enabled: false
      publisherClass: ai.hyperlearning.pob.data.publishers.google.GoogleChatPublisher
      properties:
        webhook: ${google-chat-webhook}
    - id: elasticsearch
      enabled: false
      publisherClass: ai.hyperlearning.pob.data.publishers.elastic.ElasticsearchPublisher
      properties:
        url: ${elasticsearch-url}
        username: ${elasticsearch-username}
        password: ${elasticsearch-password}
        index: pob
        ssl: true
pipelines:
    main:
        enabled: true
        scheduler:
            enabled: false
            cron: "0 0/20 * * * *"
        bulkPublicationDelay:
            enabled: true
            duration: 10
storage:
    rdbms:
        driverClassName: ${rdbms-driverClassName}
        jdbcUrl: ${rdbms-jdbcUrl}
        username: ${rdbms-username}
        password: ${rdbms-password}

Namespaces

frameworks.*

This namespace contains the exhaustive list of procurement frameworks and associated Java-based parser classes that will be executed by the POB data pipeline. If you are extending POB and developing a custom procurement framework parser, then you must add your custom procurement framework to the list in this namespace.

publishers.*

This namespace contains the exhaustive list of Java-based publisher classes and associated properties that will be executed by the POB data pipeline. If you are extending POB and developing a custom publisher, then you must add your custom publisher to the list in this namespace.

pipelines.main

This namespace contains the configuration for the main end-to-end POB data pipeline which is responsible for executing all procurement framework parsers and publishers registered in application.yml.

storage.rdbms

This namespace contains the connectivity properties to a relational database management system (RDBMS) that POB will use to act as the master source for all opportunities that have been extracted from the registered procurement frameworks.

POB utilises the Java Spring Framework which provides extensive support for working with SQL databases, including but not limited to HSQLDB, MySQL, MariaDB, PostgreSQL, SQLite and Microsoft SQL Server.

Last updated