Skip to main content

Database

A PostgreSQL database is required for storage of the application data.

info

If you would like to migrate an existing PostgreSQL database, skip this section and instead follow the guide here.

Supported versions

PostgreSQL version 10.6 and later are supported.

Database creation

Log in as your database administrator, and execute the following statements in an SQL session.

CREATE USER pactflow_user WITH PASSWORD '<password>';
CREATE DATABASE pactflow;
GRANT ALL PRIVILEGES ON DATABASE pactflow TO pactflow_user;
REVOKE ALL ON DATABASE pactflow FROM PUBLIC;

SSL

The application's PostgreSQL SSL mode is set to require by default, which means it requires the connection to the database to be encrypted, but does not verify the server's certificate. See the documentation for the PACTFLOW_DATABASE_SSLMODE environment variable for more options. It is not recommended to use any option weaker than require.

Authentication

Username/password authentication

Database access between the PactFlow application and Postgres instance can be secured using a username and password, configured via environment variables.

AWS IAM authentication

When deploying PactFlow on AWS Cloud infrastructure, database access between the PactFlow application and the RDS Postgres instance can be secured using IAM. Please see the AWS RDS IAM documentation for more information.

The following environmet variables must be set for the PactFlow application:

Schema migrations

The database schema migrations will be run automatically on start up. See the documentation on Database migrations for more information.

Migrating from OSS Pact Broker to PactFlow

If you have been hosting your own instance of the open source Pact Broker, you can point the new PactFlow On-Premises application at the same database, and the missing migrations will be applied.

Schema

Database schema