Skip to content

Configuration data

Introduction

Django data migrations are used to load the database with instances of the app’s model classes, defined in benefits/core/models.py.

Migrations are run as the application starts up. See the bin/init.sh script.

The sample values provided in the repository are sufficient to run the app locally and interact with e.g. the sample Transit Agencies.

During the deployment process, environment-specific values are set in environment variables and are read by the data migration file to build that environment’s configuration database. See the data migration file for the environment variable names.

Sample data

The sample data included in the repository is enough to bootstrap the application with basic functionality:

  • Multiple transit agency configurations
  • Multiple eligibility verification pathways
  • With and without authentication required before eligibility verification
  • In concert with the sample eligibility server, verification with test user data

Not included

Some configuration data is not available with the samples in the repository:

  • OAuth configuration to enable authentication (read more about OAuth configuration)
  • reCAPTCHA configuration for user-submitted forms
  • Payment processor configuration for the enrollment phase
  • Amplitude configuration for capturing analytics events

Sample transit agency: ABC

  • Presents the user a choice between two different eligibility pathways
  • One eligibility verifier requires authentication
  • One eligibility verifier does not require authentication

Sample transit agency: DefTL

  • Single eligibility pathway, no choice presented to the user
  • Eligibility verifier does not require authentication

Building the configuration database

When the data migration changes, the configuration database needs to be rebuilt.

The file is called django.db and the following commands will rebuild it.

Run these commands from within the repository root, inside the devcontainer:

bin/init.sh