Skip to main content
  1. Data-holder-testings/
  2. Self-hosted configuration/

Wych Register for AU Data Holder Testing

3 mins

This Wych register for AU Data Holder Testing (Register) represents the ACCC’s AU register service, this version has been designed to support Data Holder testing and so while on an API level it is similar to the ACCC’s service it is fundamentally different in a number of key ways.

graph BT; DH[Data Holder] --> REG[CDR Register] DR[Data Holder Tester] --> REG DR --> DH

The register can be shared by multiple Data Holder instance and multple Data Holder Tester instances. The main consideration here is that the Data Holders must be able to talk to the Register and vise-versa and the Register must be co-located with the Tester instances as they share a configuration data store.

graph BT; DH1[Data Holder] --> REG[CDR Register] DH2[Data Holder] --> REG DH3[Data Holder] --> REG DR1[Data Holder Tester] --> REG DR2[Data Holder Tester] --> REG DR3[Data Holder Tester] --> REG DR1 --> DH1 DR2 --> DH2 DR3 --> DH3

Requirements #

The register requires a PostgreSQL 14+ relational database. Registry can utilise the same PostgreSQL service as the other non-production service but requires a separate schema. The schema can be set in the search path to faciliate easy of connection.

The PostgreSQL jdbc syntax is:

jdbc:postgresql://[host]:[port]/[db-name]?currentSchema=[db-schema]

This can be organised as a database per app or a schema per database.

jdbc:postgresql://localhost:5432/au-register?currentSchema=public
jdbc:postgresql://localhost:5432/testing?currentSchema=au-register

Repository #

The register can be pulled from the following repository. Check Changelog for the latest version.

docker pull wychaustralia.azurecr.io/au-register:[version]

Docker #

For the register to start you will need to set the following properties. If you are setting these as environment variables then use the UPPERCASE and replace . (dot) with _ (underscore).

Config #

Key Description
WYCH_BASE_URL The URL of this application, a self reference e.g. https://register.host.tld
WYCH_REGISTER_AUTH_URL The URL of register auth application, no trailing slash. e.g. https://auth.register.host.tld
WYCH_DATASOURCE_JDBC_URL The database JDBC URL in the form jdbc:postgresql://{{host}}}:{{port}}}/{{db_name}}}
WYCH_DATASOURCE_USERNAME The database users name
WYCH_DATASOURCE_PASSWORD The database users password

While the first three properties may be obvious the forth will point to Register Auth service. This is the url of the service and this enables the service to discover and talk to each other.

Compose #

Here is a sample docker compose - this sets up the required DB and configures the Register service.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
version: "3.7"
name: au-register
services:

  db:
    image: postgres
    init: true
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
      POSTGRES_USER: a-database-user
      POSTGRES_PASSWORD: a-database-password
    volumes:
      - au-register-data-volume:/var/lib/postgresql/data/pgdata
    networks:
      au-register-db:
        aliases:
          - au-register-db

  au-register:
    image: wychaustralia.azurecr.io/au-register:[version]
    depends_on:
      - db
      - au-register-auth
    restart: on-failure
    ports:
      - "8081:80"
    environment:
      WYCH_BASE_URL: http://au-register
      WYCH_REGISTER_AUTH_URL: http://au-register-auth:8080
      WYCH_DATASOURCE_JDBC_URL: jdbc:postgresql://db:5432/wych
      WYCH_DATASOURCE_USERNAME: a-database-user
      WYCH_DATASOURCE_PASSWORD: a-database-password
    networks:
      - test-network

networks:
  wych-service:
    name: wych-service
  au-register-db:
    name: au-register-db

volumes:
  au-register-data-volume:

Changelog #

tag changelog digest
1.7.0 Providing default keystore 988791
1.6.0 Reducing config requirements 7b32b2
1.5.0 {{< alert >}} Bugfix issues caused by compatibility mode, requires au-dataholder-tester >=1.55.0. {{< /alert >}} e892f1
1.4.0 Moving native image to compatibility mode for x86, x64 and ARM architectures 6f5c94
1.3.0 Adding new endpoints for multi-tenancy management c0d889
1.2.0 Expanding tracing c1ab95
1.1.0 Enabling advanced messaging 493d04
1.0.20 Maintenance release, patching dependencies cdeb33
1.0.19 Standardiseing API and security modules e96047
1.0.18 Extending automated test coverage 1bc7d1
1.0.17 Simplifying application root c2719a
1.0.16 Enabling certificate generation and signing capabilities 1d2f49
1.0.15 Security patching and updates a6e5ad
1.0.14 Enabling TLS support fa844e
1.0.13 Release alignment 898e86
1.0.12 Configuration bug fixes a16e24
1.0.11 Simplifying and standardising config keys 9c94b0
1.0.10 Enabling external release 8f00cb