Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 113 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

CiviForm Docs

Loading...

Overview

Loading...

Loading...

Loading...

User Manual

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

IT Manual

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

CiviForm Docs

This is CiviForm's documentation. Visit the main website here.

CiviForm is a free, open source tool that makes it easier to access and administer public assistance programs. Residents and community organizations can find and apply to multiple programs in one place, and governments can streamline services and reach communities in need.

In the docs, you will find:

  • Overview of CiviForm with a high-level summary on how the tool works for different users

  • Onboarding Guide to understand how CiviForm can support your organization's service delivery

  • to set up and manage your programs and applications

  • to deploy CiviForm on your technical infrastructure

  • with information on how CiviForm is being collaboratively managed and developed

Getting Started

Below are good docs to start learning about CiviForm:

Join the conversation in the .

What is CiviForm?

An introduction to the problem and the CiviForm solution.

CiviForm is free, open-source software that was built with support from Google.org Fellows and is managed by Exygy as a product steward. CiviForm is deployed and maintained by civic entities themselves.

The Problem

Signing up for critical government services often requires reentering the same information on each application. Our research shows that the need to repeatedly navigate complex requirements and re-enter sensitive personal information can feel dehumanizing. Moreover, people seeking to help residents apply for programs, such as local administrators or community-based organizations, must spend valuable time and resources to work through duplicative data.

In times of crisis, these problems can be particularly acute (e.g. during a public health emergency like COVID-19).

Our Solution

CiviForm supports a more human-centered approach to public benefits applications. When someone applies to a program, their data is stored in a centralized program database so that they see questions and programs that are most relevant to their needs. Applicants can then choose to re-use that data for other applications as they see fit.

For applicants and their trusted intermediaries, this means that once you enter personal information for one program, you won’t need to re-enter it for future assistance. For government program administrators and local staff, this means less time collecting and sorting through redundant data across programs.

Technical Platform and Security

All data is managed by the civic entity and thus their own security and privacy policies apply. Neither Google nor Exygy have access to applicant data in CiviForm. It was built as a low-code solution for government employees to respond to the needs of their community without needing technical expertise.

CiviForm is written in Java using the backed by a database. The application is containerized for development and deployment using , and deployed using container management systems that work with all major cloud providers. For authentication, CiviForm uses OIDC and SAML to integrate with existing single-sign-on services such as Microsoft ADFS, Oracle IDCS, and LoginRadius, allowing program administrators and residents alike to authenticate with existing accounts. For security, CiviForm is built to defend against cross-site scripting (XSS), SQL injection, cross-site request forgery (CSRF), and other common hacking tactics.

User Manual
IT Manual
Governance & Management Documentation
What is CiviForm?
Onboarding Guide
CiviForm Slack workspace
Play Framework
PostgreSQL
Docker
Example of the CiviForm landing page where residents can find public benefits programs in one place.

Working with programs

Technical Deployment Guide

Download exported data

Watch the video or follow the step-by-step guide below to download the demography export for all applications for all programs into a CSV file:

  1. Navigate to the programs page by clicking Programs in the navigation bar.

  2. Click the Download Demographic Data (CSV) button.

  3. Select a date range for the data you'd like to export. If you select a large date range or leave it blank, the data could be slow to export.

  4. Click the Download Demographic Data (CSV) to begin the export.

  5. You will see the CSV file downloaded onto your computer.

Glossary

Common terms used across CiviForm.

​You can use the CiviForm glossary to learn more about frequently used terms or concepts. To find terms on this page press Ctrl + F on PC or Command + F on Mac.

  • Applicant—Resident seeking to apply for government benefit programs.

  • Block—Can be used interchangeably with screen.

Tag a program with categories

CiviForm admins can label a program with one or more categories. These categories serve as filters on the applicant home page, helping residents to find the types of programs they are looking for. Here are some of the available categories:

  • Education

  • Childcare

  • Food

Trusted Intermediary Guide

Trusted intermediaries are third-parties that residents turn to when applying for programs (e.g. community-based organizations).

In this Guide, you will learn how-to:

To learn more about features for Trusted Intermediaries, read .

CiviForm Admin—Government staff that administer the tool. They set up CiviForm, create and manage questions, build program forms, and manage permissions for Trusted Intermediaries and Program Admins.
  • Enumerator screen—Screens that contain an enumerator question type. Repeated screens can be created from enumerator screens to ask questions for each entity enumerated by the applicant.

  • Enumerator question—A question type that allows applicants to create a list of one type of entity. For example, household members, vehicles, jobs, etc.

  • Personally identifiable information (PII)—Any data that could potentially identify a person, a corporation or other entity, or a browser or device by either (1) inspecting the data directly, or (2) joining the data with another widely available dataset.

  • Program Admin—Government staff that administer a benefit program and handles applications for that program.

  • Question bank—New questions added by a CiviForm Admin are saved in the global question bank. The CiviForm Admin can reuse the question in any program forms they build.

  • Repeated screen—A program screen created from an enumerator screen that contains repeated questions.

  • Repeated question—A question associated with an enumerator question. A repeated question is asked for each entity enumerated by the applicant when they answer the enumerator question. A repeated question can be of any type, including an enumerator question. This can create nested enumerator questions and later nested repeated questions. For example, an enumerator question for household members could have a repeated dependent question for employment that’s also an enumerator. This allows for creating additional repeated questions about each employment role for each household member.

  • Screen—A screen holds one or more questions. A program is made up of one or more screens. One screen is displayed at a time so screens can loosely be thought of as a single page within the form. Some screens can be repeated. Each program has one default screen.

  • Trusted Intermediary Group—Community-Based Organization (CBOs) who help applicants apply for benefit programs.

  • Trusted Intermediary—Staff members of CBOs who interact with applicants.

  • Last updated: June 2021

    Apply to a program on behalf of a resident
    how CiviForm works

    How to become a Program Admin

    Program admins have access only to applications of programs they were assigned to. Assignments controlled by CiviForm admins on per-program basis. If Alice ([email protected]) needs access to applications of program "Solar program":

    1. CiviForm Admin need to go to Programs list and click "Manage Program Admins" on "Solar program". Then add [email protected] as admin.

    2. Alice needs to log in to CiviForm using "Admin login" flow. Logging in using applicant flow won't work.

    Question export settings

    When a CiviForm Admin creates a question, they must choose an export setting. The export setting controls whether data will be exported in the demography CSV, which is the CiviForm Admin's exported data. The export setting does not affect the Program Admin's exported data. The CiviForm Admin selects one of the following data export options:

    Don't include in demographic export - the answer won't appear in any way in the exported data.

    Include in demographic export - the raw answer as provided by the applicant will appear in the exported data.

    Obfuscate and include in demographic export - the raw answer as provided by the applicant will not appear in the exported data, and instead, an "obfuscated" answer will appear. Obfuscated means that the applicant's answer to the question is cryptographically obscured, exporting text that is unique to the applicant's answer but does not reveal what the original text was. It is impossible to derive the applicant's original input from the resulting exported value. Only other questions with the exact same answer will have the same exported value.

    For example, in a social security number question, the following inputs would result in the corresponding outputs:

    Input: 123-45-6789 Example obfuscated output: d158596dd5a6cae6fcb282832885631553ecc8c8b0bf07f84c4aa691953cd0da

    Input: 123-45-6780 Example obfuscated output: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b

    Working with applications

    Role management

    Working with questions

    CiviForm Admin training overview

    Welcome! Kick off your training by watching the video below about CiviForm, the CiviForm Admin role, and the other users of the tool.

    https://drive.google.com/file/d/1gWzGgvugZzSMLISKHv5bLuIv_bWYAWvb/view?usp=sharing

    How do I become a CiviForm Admin?

    CiviForm Admins are controlled by a group configured in the admin identity provider. When a person logs in via the admin flow, CiviForm checks if the user belongs to the configured admin group. If so, the user is granted CiviForm Admin privileges.

    More about admin authentication setup in Authentication Providers guide.

    Manage notifications

    By default, CiviForm sends Program Admins an email every time an application is submitted to a program they manage.

    To change this:

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Click Edit for the program you would like to edit notification settings for.

    4. Under Email Notifications, select or unselect Send Program Admins an email notification every time an application is submitted.

    5. Save and publish the program.

    Existing deployments

    You can find links to existing deployments of CiviForm (staging and production) in the doc below. The doc is access controlled. If you work on CiviForm but don't have access to the doc - ask on someone on slack to give you access.

    Google doc.

    Housing

  • Transportation

  • Steps to add a category to a program

    1. Sign in to CiviForm as a CiviForm admin.

    2. On the Program List Page, find the program that needs categories.

    3. Click the 3-dots menu to the right.

    4. Select Edit.

    5. Click Edit program details.

    6. Scroll to the section that says "Tag this program with 1 or more categories to make it easier to find".

    7. Select one or more of the category checkboxes.

    8. Scroll to the bottom of the page and click Save.

    How categories will appear to applicants

    After categories have been added to the programs, the selected categories will show as options to filter programs on the home page. Also, program cards will be labeled with the categories the program belongs to.

    image

    Additional information

    • Pre-screener forms cannot be labeled with categories since there is only one pre-screener, making a search filter unnecessary.

    • Categories have been pre-translated.

    • At this time, it is not possible to create a custom category, although this will likely be possible in the future.

    Create a program

    Create a program

    A CiviForm program is a benefits program built by CiviForm Admins. It’s essentially a vehicle to ask questions of program applicants and to collect completed applications. Once you create a program, you’ll need to publish it to make it available.

    Watch the video to learn how to create a program in CiviForm. You can also follow the step-by-step guide below.

    How to add program information

    Tip: To retrieve a list of all programs, click Download Exported Data (CSV) at the bottom of the Programs page.

    Create a program

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Click Create new program.

    4. Enter information for the program, including the external link for additional program information.

    Note: The internal Program Name field ensures each program is distinct. Once the field is set, it cannot be edited.

    Add or remove questions & screens in a program

    How to add screens and questions

    CiviForm programs are made up of one or more questions housed in screens. Each program has a default screen.

    A program can hold multiple screens and each screen should contain a logically themed set of questions (for example, all employment-related questions). Each screen equates to a new page when applying to a program.

    You edit both unpublished and published programs. To edit published programs, you need a new version. For more details on versioning, go to .

    Add a screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Click

    Review completed applications

    How Program Administrators can use CiviForm.

    A Program Admin can review completed applications using CiviForm. Program Admins only have access to applications for the programs they are assigned to manage. For more details, go to CiviForm data management & security.

    Tip: To retrieve a list of all applications, click Download All (CSV).

    Review current program applications

    1. Sign in to CiviForm as a Program Admin.

    2. Click Applications for the program you want to review. You’re presented with a paginated list of applications.

    3. Locate the form you want to analyze and click View.

    Review previous program applications

    1. Sign in to CiviForm as a Program Admin.

    2. Click Applications for the program you want to review. You’re presented with a paginated list of applications.

    3. Under Applications for other versions, locate the version number you want to examine.

    Change the status of an application

    As a Program Admin, you have the ability to change the status of a given application in CiviForm. When an application is set to a status with associated email content, applicants receive an email. The applicant will also see the status of their submitted application(s) when they log into their CiviForm account.

    1. Sign in to CiviForm as a Program Admin.

    2. Click Applications for the program you want to review. You’re presented with a paginated list of applications.

    3. Locate the form you want and click View.

    4. At the top of the application, select the status you would like from the dropdown menu of options next to Status.

    Note: A CiviForm Admin must create and publish statuses for your program. To create or modify status options for your program, contact your CiviForm Admin.

    Manage Program Admins

    Watch the video below or follow the step-by-step guide to learn how to manage Program Admins in CiviForm.

    1. Navigate to the programs page by clicking Programs in the nav bar.

    2. Locate the program you'd like to manage Program Admins for in the list of programs.

    3. Click on the three dots on righthand side. If the program has both a draft and active version, make sure to click on the three dots that are in line with the draft version.

    4. Click Manage Program Admins.

    5. To add a new Program Admin, type in their email address and click Add. Note that the Program Admin must create their own account before you're able to add them in here. Use the email address that they used to create their account when adding them as a Program Admin.

    6. You can also remove someone as a Program Admin from this screen by clicking on the Delete button.

    How to navigate CiviForm

    Get oriented and learn how to navigate CiviForm as a CiviForm Admin.

    At the top of the screen, there is a navigation bar. You can navigate to:

    • Programs: View, create, edit and publish programs. This is the page you see when you log in.

    • Questions: View all the questions you can add to your programs and create new questions.

    • Intermediaries: Create or view Trusted Intermediaries.

    • API keys: Manage API keys, which enable accessing CiviForm programmatically from other software products.

    • Reporting: The data dashboard where you can view core program metrics.

    Program Admin Guide

    Program Admin are the government employees who handle applications for programs. With CiviForm, they can integrate the tool into or improve existing worklows.

    In this Guide, you will find how-to:

    • How to become a Program Admin

    • Review completed applications

    To learn more about features for Program Admin, read .

    Edit a program

    Watch the video to learn how to edit programs. You can also follow the step-by-step guide below.

    Learn how to edit admin and applicant information.

    Edit a program

    Discovery, eligibility, and intake

    CiviForm can be a helpful tool even in cases where a program does not require applications, or does not want to use CiviForm to accept applications. As you map the needs of various programs, consider whether CiviForm could play a role in program discovery, eligibility screening, or intake across programs.

    Strategy
    Description
    Pros
    Cons

    Manage versions for programs & questions

    Questions can be shared between programs. If the wording for a question changes, it does so for all programs that use it. However, programs can be set up to show or hide specific questions based on previously answered questions. These dependencies can be different for the same questions across different applications.

    To account for this use case, CiviForm allows versioning of programs and questions when making changes instead of overwriting the existing version. This means when Applicants begin an application, they remain on that version even if the program or questions are updated.

    When you publish all drafts, all changes to programs and questions are published together. The versioning and change publishing system bundles the entire set of configuration objects together in a versioned configuration set using a version number. A given version includes its own question set and program definition set including the program application and data export configuration. This means a version can only reference questions in the same versioned configuration set.

    Read more about the .

    Add statuses to a program

    As a CiviForm Admin, you have the ability to set custom statuses (e.g. Approved, Waitlisted) and email content for each program. Once you create and publish statuses for a given program, the Program Admin will be able to set statuses for each application submitted to their program.

    For statuses with associated email content, a status change will trigger an email to applicants that used a CiviForm account to submit their application. The applicant will also see the status of their submitted application(s) when they log into their CiviForm account.

    Additionally, you can choose one of the statuses to be a default status. All new applications will automatically be set to this status, and the associated email for that status will be sent to the applicant.

    Note: in order to use status tracking, your IT Admin must have enabled the feature. To enable the feature, have your IT Admin set the CIVIFORM_APPLICATION_STATUS_TRACKING_ENABLED environment variable to true.

    How to publish programs

    Watch the video or follow the step-by-step guide below.

    Publish all draft programs

    Once a program is created or a new version is launched, the program remains in draft until published. When published, it’s available to both Trusted Intermediaries and Applicants.

    There can only be one unpublished version in the system at a time and once a version is published, it’s locked and cannot be modified. For more details on versioning, go to

    Staffing overview

    This document describes long-term CiviForm staffing needs for a deploying civic entity. Those needs include a non-technical administrative role, and technical roles to support the functioning of the software system.

    CiviForm administrator

    The CiviForm Admin user role has the ability to define questions, designate data anonymization settings, define program applications, perform anonymized bulk applicant data exports, designate program administrators, and designate trusted intermediaries.

    For programs to reuse applicant data, they must have harmonized data requirements, which requires someone to coordinate those data needs across programs. This is a natural fit for the CiviForm admin.

    The role requires someone who is comfortable working with computers but it is not a technical role – all tasks can be completed using the CiviForm UI. Most importantly, the role requires someone who is able to interface with a large number of program staff to understand their data needs and design user-friendly application questionnaires with the CiviForm tool.

    Manage address & service area validation

    How to enable address correction for an address question

    When an admin adds an address question to a program, they will see a toggle button to enable address correction, with a tooltip that reads:

    Enabling address correction will check the resident's address to ensure it is accurate.

    If the address correction feature has not been enabled, the tool tip provides additional information to an admin user:

    Using Markdown

    Markdown is a simple formatting tool that allows you to create text links and lists as well as apply bold, italics, font sizes, and other formatting edits to text. CiviForm Admin can use Markdown to format text in six key places within CiviForm:

    • Program descriptions

    • Custom confirmation screen messages

    • Static question text

    Manage API keys

    CiviForm supports integration with external systems via its HTTP JSON API. The API authenticates requests using API keys managed by the CiviForm admin. For more details on how API keys are used and list of APIs supported, refer to .

    API key security

    API key expiration

    Journey mapping

    One strategy for understanding the needs of applicants and program staff in more detail is journey mapping. Journey mapping is a way of documenting and understanding the end-to-end experience of applicants and program staff as they engage with the program. A journey map can give a high-level overview of key interactions, challenges, and opportunities for improvement for different stakeholders throughout their experience with the program.

    Mapping what exists

    The first step to improving residents' experience with programs is understanding their current experience in detail. Working with each program to answer the questions in can help give a clear picture of each program's user journey across different phases, including discovery, eligibility screening, application submission and processing, determination, delivery, and renewal. A detailed journey map will include touchpoints between residents and staff, tools, processes, timelines, and pain points. In addition to working closely with program staff, conducting reserach with residents is a key part of understanding existing challenges and opportunities for improvement.

    Initial Deployment

    This guide is for Systems Administrators, IT managers, SREs, or DevOps folks. It explains how to do an initial deployment of CiviForm into your production cloud environment. CiviForm has the following deployment options:

    • Can be deployed into AWS using .

    • Can be custom deployed using in cloud or on prem using directly. Requires more configuration and maintainance.

    Universal and Primary Applicant Information questions

    Universal questions

    Universal questions are questions that are intended to be used by all programs. When a question is marked as universal, it appears at the top in a separate section in the questions tab and in the questions list sidebar when creating a program. Any question may be set as a universal question.

    When creating or editing a question, select the following toggle to make the question universal.

    It then shows up in the questions tab, as well as the questions list sidebar.

    On the programs tab, each program notes how many of the universal questions are used in the program.

    Organization assessment

    What is your organization's approach to service delivery? Understanding how residents engage with the government as a whole and with different agencies in particular can help inform where CiviForm can fit into your work. Understanding which programs may be administered by other organizations or jurisdictions can also help consolidate access to those programs for your residents. In addition, understanding technical and operational capacity across programs can help ensure that CiviForm integrates well into your existing workflows.

    What challenges does your organization face in administering programs or services? What opportunities do you see?

    Any details are fine, the challenges do not need to be technology-related.

    CiviForm server environment variables

    The CiviForm server is configurable through environment variables. All availabile variables are documented in a file in the civiform/civiform repository.

    When a CiviForm server version is released, the env-var-docs.json file corresponding to the release is used to generate markdown documentation of the variables. The generated markdown files are added to this directoy. Use the left sidebar to see the available configuration variables for the CiviForm version you are deploying.

    Variables can have four different modes which determine where they are set and displayed:

    1. "Admin writeable" variables should be set in the admin settings panel which is accessible in CiviForm when logged in as an admin. These variables should NOT be set in your deployment config and setting them there will result in a deployment error. If you need to set custom values for Admin writeable variables during an intial deploy, it is possible to override this error by setting export ALLOW_ADMIN_WRITEABLE=true in your deploy config. This should only be used for the initial deploy and should be removed from the config immediately afterwards.

    Data reporting and other integrations

    CiviForm provides administrators with metadata about programs and applications, enabling actionable insights that can improve residents' experience in accessing programs.

    Leveraging data to improve program operations

    Because CiviForm includes metadata from across programs, administrators can have visibility into applicants' experience across programs in CiviForm. This includes key metrics such as how long it takes to complete an application, which questions applicants might be struggling with, and which programs people tend to cross-apply to. Such metrics can inform changes that lead to direct improvements in a specific program's application experience. Additionally, administrators can analyze metadata to assess which communities are or aren't being reached by a given program, which can in turn inform targeted outreach or other local efforts to expand access.

    API Integration

    CiviForm supports integration with external systems via its HTTP JSON API. The API authenticates requests using API keys managed by the CiviForm admin. API clients can expect indicating the result of their request.

    Please see the articles in this section for more detail:

    CiviForm Admin Guide

    Welcome to the CiviForm Admin Training Guide!

    If you are a government employee who creates, publishes, and manages application forms for programs, then you are a CiviForm Admin. With CiviForm, you can manage and create program application forms using a repository of reusable questions.

    Navigate through this guide to learn the ropes as a CiviForm Admin.

    To learn more about features for CiviForm Admin, read .

    Click
    Applications
    .
    Note
    : The number following the Applications link indicates the number of applications present under that version.
  • Locate the form you want to analyze and click View.

  • To Create a Status
    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select the program for which you would like to add statuses.

    3. Click the three dots on the right side of a draft program.

    4. Click Manage Statuses.

    5. Click Create a New Status.

    6. Enter your status name and (optional) any email text you would like the applicant to receive upon the status change.

    7. Repeat steps 5-6 for all statuses you would like to create.

    8. For any status you wish to set as default, check the "Set as default status" checkbox when creating or editing the status.

    Note: you must Publish All Drafts in order for your statuses to go live. See How to Publish Programs for instructions on publishing.

    Tip: Don’t see Manage Statuses as an option when you click the three dot icon? This is because you must add statuses to a Draft program, not an Active program. To create a Draft version of your program:

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and find the program you are interested in.

    3. Click Edit on the right side of the program.

    4. Click Programs on the navigation bar to return to the programs page, where you will now see a Draft version of your program.

    To edit or delete a status:

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select the program for which you would like to modify a status.

    3. Click the three dots on the right side of the program.

    4. Click Manage Statuses.

    5. Click Edit or Delete.

    Technical staff

    Broadly speaking there are two options for technical staffing. One option, "keep the lights on", describes a minimum level of skill and staffing to keep a CiviForm deployment usable at a basic level. The other option, "custom code and incident response self-sufficiency", describes a minimum level of skill to take advantage of the opportunities for data integration that CiviForm presents.

    Keep the lights on

    Two part-time IT professionals minimum

    Note: this estimate is for a CiviForm deployment to a major public cloud provider. On-prem deployments require additional resources and an assessment of the civic entity's IT capabilities for an accurate estimate of an on-prem CiviForm deployment's IT staffing needs.

    We recommend at least two part-time technical staff for supporting CiviForm at a minimum viable level of service. Two is the minimum level of redundancy necessary to ensure incident response availability. The equivalent of one FTE is the anticipated minimum for maintenance and operations efforts.

    At this level of staffing we expect the CiviForm deployment to stay up to date with the latest security and feature patches from the mainline project. At this level of IT staffing incident response involves contacting the mainline open source team and waiting for their availbility for resolution.

    Skills needed:

    • familiarity with web services and basic web application architecture

    • familiarity with command line interfaces

    • basic familiarity with web security (e.g. provisioning SSL certificates)

    • some knowledge of computer networking – IP addresses, DNS, ports, etc

    • experience maintaining web servers in a cloud environment

    Custom code and incident response self-sufficiency

    Two full time software developers minimum

    Staffing two full time software developers or more would allow for code-level customizations and a readier incident response posture. At this level of staffing, the civic entity is able to investigate and resolve production incidents independently without relying on the mainline open source developers.

    The majority of those developers' time however could be spent on feature work which could include generic features and enhancements to the core system desired by the civic entity and/or custom features such as integration with external systems for administering programs (e.g. populating entries in a vehicle licensing database with applications submitted through CiviForm).

    Additional skills needed:

    • proficiency in Java or another statically typed language (e.g. C#, Go, or TypeScript)

    • familiarity with relational databases

    • understanding of web application security best practices

    • comfortable working in open-source software ecosystems

    What key programs are administered by your jurisdiction (city, county, state)?

    What other programs might residents of your jurisdiction still want to access, even if they are administered by another entity (city, county, state, federal)?

    For example, if you are a city, residents may still want to find and access county or state programs.

    What are the most common ways residents access programs in your jurisdiction?

    What is your organization's existing approach to facilitating benefits access across programs?

    Is each program discovered and administered on its own, or can residents access many services at once? Do you manage a central website or tool that lists all programs? Do you have a shared data referral or intake process across programs?

    What role do community organizations or nonprofits play in connecting residents to programs or administering programs?

    What outcomes is your organization aiming to achieve by expanding benefits access?

    For example: Is there a specific focus on reducing burdens for residents, expanding access to specific programs, or supporting specific populations?

    What role does IT play in supporting programs that administer benefits?

    For example: Do you manage a central website or tool that lists programs? Does each program manage their own application process and tooling, or does a central IT team help provide support?

    What is your organization's technical capacity?

    For example, do you run applications on cloud or on-premises infrastructure? Do you have staff who are comfortable with systems administration or application development?

    If you are interested in measuring additional aspects of your programs, consider some of the metrics outlined in Code for America's National Safety Net Scorecard.

    Sources for reporting

    Here are key sources for accessing reporting information in CiviForm.

    CiviForm reporting dashboard

    CiviForm has a built-in dashboard that administrators can use to see core program metrics such as the number of applications and the distribution of application completion time. More metrics are being added over time to provide administrators with insights into their programs out-of-the-box.

    Application analytics

    CiviForm supports integration with common web analytics tools. Such tools can provide page-level analytics on how applicants are progressing through applications, which can indicate which questions may need to be removed, adjusted, or improved to simplify the application process.

    Exports for external reporting

    Information in CiviForm can be exported to integrate with existing reporting tools, analyses, or workflows. This is helpful for combining information from CiviForm with other sources to give an even broader view of the applicant experience. It can also help make insights about programs available to broader stakeholders (for example, program administrators, policymakers, or the public) through publications or other reporting channels.

    Combining information with other sources

    Some analyses may require combining information from CiviForm with data from other sources. For example, CiviForm has information on how long it takes for someone to complete an application, but in order to know how long start-to-finish service delivery takes, data must be incorporated from downstream systems that manage later steps in the process of delivering services. Similarly, a complete assessment of responsiveness and access for a given program requires integrating metrics from non-CiviForm channels, such as phone calls or office visits.

    Collecting feedback from residents

    In addition to these passively measured proxies for residents' experiences with specific programs, CiviForm can also serve as a channel for the direct and active collection of feedback from programs. For example, a feedback or satisfaction survey can optionally be added to the end of program applications when they are configured in CiviForm, or throughout the site via third-party tools.

    how CiviForm works
    Update program version
    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Locate the program you'd like to update.

    4. Click on the three dots to open the dropdown menu for that program.

    5. Click Edit to create a draft version of the program.

    6. Modify the program information fields, edit questions, etc. Note: You can’t edit the internal Program Name field.

    Update question version

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar and select a question.

    3. Click Edit to create a draft version of the question.

    4. Modify the question information fields.

    5. Click Update.

    Rules for versioning

    The following rules apply when trying to understand versioning:

    • Individual configuration objects (for example, programs) cannot be versioned independently of the complete version set.

    • There can only be one unpublished version in the system at a time.

    • Once a version is published, it’s locked and cannot be modified.

    • New versions are initialized with a complete copy of the current published version.

    • Applicants are pinned to the version they began their first program application with. They remain on that program version until it’s been submitted.

    data versioning model

    When an admin creates an API key they must specify an expiration for it. This is to ensure that API keys are rotated so that in the event a key is compromised it does not grant indefinite API access to the attacker. Requests made using credentials for an expired API key receive an HTTP 401 status code.

    API key allowed subnet

    When an admin creates an API key they must specify an allowed subnet for it. Requests made from IP addresses outside of the allowed subnet receive an HTTP 401 status code.

    API key permission grants

    When an admin creates an API key they must specify what CiviForm resources the key provides access to. It is highly recommended that API keys be given narrow scopes of access e.g. access to one program per key, and that keys not be shared between multiple programs or backend processing systems. Requests made using credentials for API keys that don't have access to the requested resource receive an HTTP 401 status code.

    API key retiring

    Admins may retire API keys using the admin UI. Retiring is a distinct concept from expiration and provides admins with a way to revoke an API key's access. Requests made using credentials for a retired API key receive an HTTP 401 status code.

    Creating a new API key

    The CiviForm admin creates API keys in the admin UI. To create a new key:

    1. Login as a CiviForm admin

    2. Click 'API keys' in the top nav

    3. Click 'New API key'

    4. Follow the on-page instructions for creating a key

    5. Click 'Create'

    6. Copy the API credentials string and store it somewhere secure

    API key credentials are presented only once in the CiviForm UI: on the page shown immediately after the key is created. The credentials are not stored in the database or anywhere else in the system. After navigating the browser page away from that page it is impossible to recover an API key's credentials from CiviForm.

    This is so that a malicious user with temporary access to a CiviForm admin account cannot simply copy the credentials of an existing API key to gain long term access to the system in a way that would be difficult to detect.

    API Integration

    "Admin readable" variables should be set in your deployment config file. The values for these variables can be seen in the admin settings panel, but not changed there.

  • "Server setting" variables should be set in your deployment config file and are not visible in the admin settings panel.

  • "Managed secret" variables should be set in your cloud provider's secrets manager. These are not visible in the admin settings panel.

  • A variable's mode is listed in between the variable name and its description in the server environment variable documentation that is generated on each release and saved in this directory (for example v1.51.0).

    env-var-docs.json
    conventional response status codes
    Authentication
    List Applications Endpoint
    how CiviForm works

    Consolidating questions across programs

    CiviForm enables applicants to re-use previously submitted information when completing applications to new programs. It accomplishes this by unifying question definitions across programs. This is not a technical problem -- it is first and foremost an administrative problem. CiviForm makes it easier to implement information re-use across programs once the administrative work of consolidating question definitions is complete. Here are some best practices for consolidating questions and applications across programs.

    Work with key stakeholders across programs

    This work involves understanding administrative and policy requirements for different programs, so you must work closely with individuals responsible for administering those programs to understand what they need out of their application forms (and why). In particular, seek out people who have the organizational context to understand why questions must exist, as well as the agency to make decisions about whether or not questions can or should be changed.

    Start with a few programs

    Begin by mapping questions across one or two key programs to understand where there are similarities and differences in the questions they ask (and how they ask those questions). Starting with a few programs makes the task of mapping questions easier to approach, and provides a solid foundation for adding additional programs incrementally once enough questions have been mapped.

    Understand key shared questions

    Understand key questions such as name, date of birth, address, contact information, income, household size, assets, and other characteristics such as whether or not someone is a student or has a disability. These questions may seem similar across programs, but there may be subtle differences in what they are actually asking for. For example, questions around income may have different definitions (e.g. in what is considered income, or over what time period). For demographic questions such as race, ethnicity, and gender, understand whether these questions are being asked through free-text fields or categorical fields. If they are categorical, identify similarities or differences in which categories are used across programs.

    Understand the purpose and meaning of each question

    In order to consolidate and simplify questions across programs, it is essential to understand each question's purpose and meaning. If the meaning of questions can be made consistent across programs, then combining and re-using questions is straightforward. However, if questions seem similar but actually serve different purposes or ask for different information, they may need to exist separately in the question bank to meet different programs' requirements.

    Is it necessary?

    While auditing questions, understand whether or not a question or requirement is actually necessary. It may be the case that some legacy questions are no longer necessary to administer a program and can be removed entirely. In order to judge with certainty, you must work closely with program administrators to understand a question's origin and purpose.

    Why is it necessary?

    Different questions may be necessary for different reasons. For example, some questions such as income are simply necessary to determine someone's eligibility for a given program. Other questions such as demographic questions may be necessary (or optional) for mandated reporting purposes. Some questions may be "necessary" simply because some underlying software system or process was poorly designed to require them. Other questions such as past enrollment in other programs might be valuable to help with program operations, but may not be truly required for the administration of the program. Understanding which questions are actually necessary and why they are necessary can help indicate which questions can be consolidated or removed, and which must remain.

    What information is actually necessary?

    While some questions may seem similar, their underlying meaning may differ subtly, or the actual information required may be a subset of what is asked for. For example, rather than asking for individual information about each household member, it may be sufficient to just ask for the total number of household members. In other cases, it may be necessary to know the age of each household member, in which case asking for that detailed information is justified. Similarly, if only each household member's age is necessary, there is no need to ask for each person's date of birth.

    Encode information so that it can be easily re-used

    Information can be re-used if each piece of information is represented as a single question in CiviForm. As an example, if you'd like to understand characteristics about someone such as whether or not they are a student or have a disability, asking these questions individually makes them reusable in other applications, whereas asking them all in a single question using a checklist of multiple options requires that another program use the same checklist of options to re-use that information. In this sense, questions should be broken down into their simplest form to enable re-use. However, if such formatting affects the usability of a form -- for example, asking a dozen one-off questions rather than having a single checklist with a dozen options -- it may be best to have separate questions that serve each use case, even if it means that information can't be directly re-used. Alternatively, data can be exported and processed outside of CiviForm to re-encode information to a usable form, even if it wasn't asked as such originally (for example, turning a series of yes/no questions into a checklist or vice-versa).

    Promote accepted best-practices when possible

    For demographic questions such as race and gender, make a decision to standardize on accepted best-practices when possible. For example, some jurisdictions enable individuals to self-report these fields or have their own set of options which may differ from other standards. While there may be federal reporting requirements that mandate specific language in questions, some jurisdictions or programs may have more flexibility in how they ask these questions and can promote best practices within their organization.

  • Click Save. The new program appears in the list of programs.

  • Add screen
    . The screen appears within the program.
  • (Optional) To modify a screen’s name and description, click Edit name and description.

  • Manage versions for programs & questions
    You can edit both unpublished and published programs. To edit published programs, you need a new version. For more details on versioning, go to Manage versions for programs & questions.
    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program you created.

    3. Click Edit.

    4. Modify the program information fields.

    5. Click Save.

    Learn how to edit screens, questions, and visibility conditions.

    Add a question to a screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Add a question to a screen by selecting it from the question bank. The question appears within the screen.

    Note: Enumerator or file upload questions must be the only questions on a screen. These question types cannot coexist with others. For example, if you add one of these questions to an empty screen, you can't add any other question types. If you have a screen that already has a question, you can't add an enumerator or file upload question to the screen.

    Remove a question from a screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Find the question within a screen you want to remove and click Delete. The question is removed from the screen and it returns to the question bank.

    Reorder screens

    If you have more than one screen in your program, you can organize the screens within the screen tree.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. To reorder the list, select the screen you want to move and click the up or down arrow.

    Remove a screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Find the screen you want to remove within a program and click Delete screen. The screen is removed from the program and the questions return to the question bank.

    Note: You cannot delete all screens from a program as a program must have at least one screen. Only once your program has more than one screen can you delete the default screen.

    Allow residents to quickly find relevant programs in one place, without submitting detailed information.

    No need to submit detailed information. No need to integrate with program processes. Can surface programs from .

    Resident may need to use another site or form to actually submit an application. No re-use of information as none is being submitted.

    Eligibility screening

    Allow residents to understand potential eligibility for programs based on key criteria.

    Resident can understand potential eligibility for a program before applying. Can surface programs from .

    Resident may need to use another site or form to actually submit an application. Less re-use of information as eligibility screening information may differ from detailed application requirements.

    Intake

    Allow residents to submit a small amount of information that is then sent to relevant program staff for follow-up and additional processing.

    Doesn't require significant up-front information from resident. Allows programs to conduct outreach to potentially eligible residents.

    Requires manual follow-up from program staff. Additional application information must be collected through other channels to actually make determinations and provide benefits.

    Discovery

    CiviForm can serve as a directory of programs available to a resident, even if programs don't accept applications through CiviForm directly. Including programs in CiviForm for discovery allows applicants to find programs relevant to their needs in one place rather than having to search across multiple resources or simply never learning that a program exists. This can be especially useful for programs that offer services rather than benefits, which may involve going to a physical location or calling a phone number, and may not require an application at all.

    While not an ideal experience for the applicant, it is also possible to list programs and their details within CiviForm specifically to direct applicants to submit an application through a website or form outside of CiviForm. This will require them to re-enter all of their information into the new system, which is a poor experience for the applicant. Whenever possible, programs should allow applicants to submit their applications directly through CiviForm and enable them to leverage the information they've already entered for other programs. See "Working with existing processes" for more information on how CiviForm can be used by programs that have established tools and processes in place.

    Eligibility Screening

    CiviForm can also give applicants a quick sense of which programs they may or may not be eligible for, even if they can't apply through CiviForm. Programs and their eligibility rules can be included directly in CiviForm, and programs can then link out to an external application tool or other channel for accessing the program or service. It is still helpful for applicants to get a sense of their likely eligibility across programs, even if they need to take additional steps outside of CiviForm to access the program.

    Intake

    For some programs, CiviForm can serve as a channel for intake, where preliminary information is submitted through CiviForm then exported for program staff to follow up with an applicant through other channels. This can be useful if you already have tools that manage business rules and processes for program outreach and eligibility determination, but would like another entry point for residents to be brought into these programs. While intake can be a great way to reach people regardless of which programs you've brought on to CiviForm, allowing residents to submit full applications directly via CiviForm allows them to avoid having to re-enter information in other systems when necessary.

    Application

    Accept complete applications through CiviForm, enabling programs to make final determinations and provide benefits.

    Allows re-use of information to simplify application process. Applicants only need to submit information in one place. No further steps required by applicant.

    Requires up-front agency effort of onboarding and integration with existing program processes and tooling.

    Discovery

    Sign in to CiviForm as a CiviForm Admin.

  • Click Programs on the navigation bar.

  • Click Publish all drafts. Any new or versioned program is now available.

  • Publish a single draft program

    Instead of publishing all programs and questions at the same time, you can also publish just a single draft program.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Locate the draft program you'd like to publish.

    4. Click Publish on that program's row.

    If the program has any draft questions, those questions will be published along with the program. However, if the draft questions are also referenced by other programs, the program cannot be published on its own. You can only publish it by publishing all programs as described above under Publish all draft programs.

    Manage versions for programs & questions.

    To use this feature, you will need to have your IT manager configure the GIS service.

    Once the address correction feature is enabled, an admin user may enable address correction for an address. Only one address question per block can have address correction enabled at a time.

    How to enable service area validation

    To enable service area validation for an address question, an admin user must first enable address correction for an address question. Once that is done, an admin user may add service area validation by following these steps:

    • Click the "edit eligibility condition" button:

    • Find the address question in the list of questions, check the checkbox and click the "add condition" button:

    • Configure the eligibility condition by adding values and saving the condition:

    Regular question text (Note: For regular question text, please limit formatting to bold, italics and text links only. Changing font size or making other edits that alter the flow of text can make question text hard to read)

  • Question help text

  • Question options (Note: Markdown only works for checkbox and radio type question options, not for dropdown options. Line breaks and lists do not work for question options at this time)

  • Fields where some or all markdown is allowed will be marked with an indicator:

    The formatting options currently supported by CiviForm are outlined in the table below along with how to use them. If you would like a formatting option that we do not currently support, let us know!

    Markdown table 1

    Notes and Caveats about working with Markdown in CiviForm

    Font Size

    Header syntax can be used to change font size. We currently support three font sizes - large, regular, and small. Starting a line with # or ## will create an "h2" size header, which is the largest text possible. Using 3 (###) or 4 (####) hashes will result in regular sized text. Using 5 (#####) or 6 hashes (######) will result in the smallest text.

    Accessibility Note: Generally, more hashes indicates less important text. Folks who are visually impaired often rely on the header tag to let them know the relative importance of text on the page since they might not be able to see differences in font size.

    URLs

    Urls that start with http:// or https:// will be automatically detected as links and have the appropriate formatting applied. Urls that do NOT start with http:// or https:// will not be detected as links. All links are set to automatically link out to a new page.

    Urls used within text links must also include http:// or https:// to link out correctly. Examples: Correct: [This link will work!](https://www.example.com) Incorrect: [This link will not work](www.example.com)

    Email Addresses

    Email addresses (Eg. [email protected]) are automatically detected as links and formatted accordingly. Clicking on an email address will open the local email program (Eg. Outlook) and create a new email to that address.

    You can also use email addresses in text links by adding mailto: and the email address in the parentheses after the text. Example: [Send email](mailto:[email protected])

    Understanding what's possible

    Once you have a journey map of what exists, you can better understand what improvements are possible across the resident journey. Whether it involves simplyifying application forms, consolidating many applications into one, or just making a paper application accessible digitally, work with your stakeholders to craft a new journey map that represents a better experience for program staff and residents.

    Program Assessment
    Example journey map from USDA.
    Azure and GCP support will be added upon request.

    Overview

    This section describes the tasks necessary to deploy CiviForm new infrastructure. Many tasks can and should be done in parallel. Tasks may vary depending on the specifics of each organizations's needs, but the high-level components remain relevant.

    Information you will need

    The following details are necessary for the initial deployment. A staging environment can be brought up without most of these values, but you will need all of them for a complete production deployment. Deciding on some of them might require coordination across different departments, so it is helpful to start tackling them early.

    Terraform
    CiviForm docker image

    If a CiviForm Admin attempts to publish a program that does not contain all universal questions, a warning will be shown, but the program may be published anyway.

    Primary Applicant Information questions

    Primary Applicant Information (PAI) questions are a subset of Universal questions that allow the system to take actions based on answers to those questions given by a logged in or guest user. There are currently four types of questions that may be marked as PAI questions:

    • Name questions

    • Email questions

    • Phone number questions

    • Date questions (should only be used for date of birth questions)

    [!NOTE] A question MUST be marked as a Universal question before it can be marked as a PAI question. Only one instance of a question type may be marked as the PAI question for that question type at a time.

    When an applicant answers a question marked as a PAI question, specific actions may be taken using their answer. The current available system actions are:

    • Searching applications by name, email, and phone number

    • Emailing guest users status updates about their applications

    • Pre-populating applications with information entered when a Trusted Intermediary (TI) creates a client

    • Updating TI client information based on answers to application questions

    For questions that may be marked as PAI questions, you will see an additional section appear when you toggle the "Set as a universal question" toggle. The "Primary application information" section that appears will describe what system actions apply for this question type, and will allow you to set the question as the PAI question for this question type.

    Before:

    After:

    Security and privacy considerations

    Residents seeking public assistance are often required to submit personal information to government programs without a clear sense of why that information is being submitted or how it is being used. Such a vulnerable interaction can be especially burdensome on someone in a time of need. As temporary stewards of residents' information, government programs have a responsibility to establish and maintain trust in how they manage residents' information and experiences. Here are some considerations to take into account when managing application information in CiviForm.

    Informing residents

    Programs should clearly explain to residents how their information is being used when submitted through CiviForm, both across programs and for individual programs. For example, communicating the full application process for a given program in its description can help residents understand what happens after they submit their application, including follow-ups or any other information that may need to be provided. Additionally, explaining why certain pieces of information are required and who will be reviewing them can help give residents confidence and trust in the application process.

    How information is managed in CiviForm

    When an applicant submits information via CiviForm, that information is submitted to a specific program. Administrators of that program can view any application submitted to that program, but they cannot view information the applicant has submitted to other programs. That is, from each program's perspective, the only information a program administrator can see is the information that the applicant has explicitly submitted to that program.

    Once an application is submitted, the applicant's submitted information is stored in a database to be re-used when the applicant chooses to apply to another program, but it is not otherwise accessible outside of an application that has been submitted to a specific program.

    When an applicant begins an application to another program, their previously-submitted information in CiviForm is used to pre-populate the new form with any questions they may have answered from other programs. Their information is not visible to the new program until the new application to that program is submitted, at which point only the information in that new program's application is visible to the new program administrators.

    Who can export information

    Information in CiviForm can be exported by CiviForm Administrators, either via the or through . When API access is configured, each API key must be explicitly assigned a list programs that it has permission to access (i.e. an API key can be configured to allow access to only one program, or to multiple programs). CiviForm Administrators do not have inherent ability to view application information, but CiviForm can be configured to grant CiviForm Administrators that permission.

    Program administrators can only view and export information for programs to which they are assigned. Importantly, program administrators can view and export any application that has been submitted to their program.

    Managing information across programs

    If certain application information will be deliberately shared across programs by the organization administering CiviForm (for example, through a common intake form that is then sent to other programs as a referral), it is essential to communicate this process to residents and ask for their approval on which programs their information should or shouldn't be shared with. Providing a clear explanation for how common intake information might be used (e.g. for proactive outreach from programs) can help residents understand whether or not they see value in having their information shared with other programs.

    Working with trusted intermediaries

    Trusted intermediaries can submit and modify applications on behalf of residents. When a trusted intermediary submits an application, any other staff member assigned to that trusted intermediary group can also view and modify each application submitted through that trusted intermediary.

    Set a pre-screener

    You can mark one program as the pre-screener (aka intake form). The pre-screener is pinned to the top of the programs page for applicants in a special Find services section. After the applicant submits the pre-screener, programs they may be eligible for are displayed to them based on their answers. For that reason, you may want to use the pre-screener feature in combination with specifying eligibility conditions on non-pre-screener programs.

    Using eligibility conditions in combination with the pre-screener

    When the applicant fills out the pre-screener, programs they may be eligible for are displayed to them based on their answers. To make the most use out of this feature, set eligibility conditions on the programs using questions that appear on both the pre-screener and the target program.

    For example, you may create a pre-screener with a question asking applicants for their date of birth. You may have program A that requires applicants to be at least 18 years old and program B that requires candidates to be under 18. Set an eligibility condition for program A specifying that the applicant is eligible if 18 or over. Set the eligibility condition for program B to under 18. Then when the applicant fills out the pre-screener, either program A or B will be recommended to them based on their answer to the date of birth question.

    Creating a program and marking it as the pre-screener

    1. Sign in to CiviForm as a CiviForm admin.

    2. Click Programs on the navigation bar.

    3. Click Create a new program.

    4. Fill out all of the program details and check the Set program as pre-screener

    Marking an existing program as the pre-screener

    1. Sign in to CiviForm as a CiviForm admin.

    2. Click Programs on the navigation bar.

    3. Click Edit for the program you would like to set as the pre-screener.

    4. Click Edit program details

    Note that eligibility conditions cannot be set for the pre-screener, so if you had already created eligibility conditions for this program, they will be removed.

    Viewing which program is the pre-screener

    1. Sign in to CiviForm as a CiviForm admin or Program admin.

    2. Click Programs on the navigation bar.

    3. The pre-screener will be labeled. If no program has the pre-screener label, there is no pre-screener currently set.

    Setting a redirect URL for when no eligible programs are found

    If the applicant fills out the pre-screener and no programs they may be eligible for are found, we display a message to them that contains a link to the civic entity's website where they can find more benefit programs. The message says:

    The pre-screener could not find programs you may qualify for at this time. However, you may apply for benefits at any time, by clicking 'Apply to programs'. Or to view additional benefit programs you can visit CIVIC_ENTITY_WEBSITE

    To set the text and URL that are used for CIVIC_ENTITY_WEBSITE, you need to set the following in your deployment script:

    • COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    • COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Apply to a program

    Trusted Intermediaries can help residents apply to services or they can alert individual Applicants that programs are open to applications. They can also create profiles for their clients when applying. If the Applicant has applied to programs using CiviForm in the past, and they elected to save their information, CiviForm can reuse the Applicant’s stored information for future applications.

    CiviForm also allows Trusted Intermediaries to manage multiple clients through the application process. Trusted Intermediary Groups can also view the Applicant data their staff have entered.

    Note: Before a Trusted Intermediary can sign in, they must be added to a Trusted Intermediary Group by the CiviForm Admin. For more details, go to Manage Trusted Intermediaries.

    Add clients

    1. Sign in to CiviForm as a Trusted Intermediary. This will take you to your dashboard.

    2. Click the button on the right side of the page that says Add new client.

    3. Fill in the new client form and click Save.

    4. Now you can either click Start an application or Back to client list.

    Apply to a program for a client

    1. Sign in to CiviForm as a Trusted Intermediary. This will take you to your dashboard.

    2. Here you will see a list of all your clients. You can search for your client by name or date of birth.

    3. When you find your client, click View applications to start an application for them. It should now say "You are applying for client name” on the Programs and services page.

    4. Find the program you want to apply to and click

    Manage Trusted Intermediaries

    CiviForm Admins are responsible for setting up and managing Trusted Intermediaries. A Trusted Intermediary Group is a Community-Based Organization (CBO) that helps people apply for benefit programs. A Trusted Intermediary is a CBO staff member who interacts with Applicants.

    Watch the video or follow the step-by-step guide below.

    Create a Trusted Intermediary Group

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Intermediaries on the navigation bar.

    3. Enter information for the group (Note: The group name should be unique).

    4. Click Create. The new group appears in the list of groups.

    Note: Once the Trusted Intermediary Group field is set, it cannot be edited.

    Add a Trusted Intermediary to a Trusted Intermediary Group

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Intermediaries on the navigation bar and select a Trusted Intermediary Group.

    3. Click Edit.

    4. Enter the work email address of the staff member you wish to add.

    Delete a Trusted Intermediary Group

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Intermediaries on the navigation bar.

    3. Select a Trusted Intermediary Group and click Delete. The group and its associated members are removed from the list of groups.

    Note: Deleting a group also deletes the group members. However, program applications submitted by the deleted group remain in the system.

    Delete a Trusted Intermediary Group member

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Intermediaries on the navigation bar.

    3. Select a Trusted Intermediary Group and click Edit.

    4. Select a Trusted Intermediary and click Delete

    Note: Deleting a Trusted Intermediary doesn’t remove the program applications submitted by the group member.

    Authentication setup

    CiviForm supports two different flows for authentication:

    • Applicant authentication - how residents and trusted intermediaries or community based organizations will log into CiviForm

      • Accessed by the "Log in" or "Create account" buttons at the top right of any page or in the middle of the home page

      • Examples providers include: Login.gov, Oracle IDCS, LoginRadius, Generic OIDC (i.e. Auth0 or Google Identity)

    • Admin authentication - how CiviForm administrators and program administrators log into CiviForm

      • Accessed by the "Are you an administrator? Admin login" prompt at the bottom of the home page

      • Example providers include: Okta and Azure AD

    Choosing an authentication provider involves various considerations, including price, existing login providers used by other sites managed by the city, and ease of use for both the city staff and the people logging in.

    Once an authentication provider is chosen, it is not recommended that it is changed, since data associating an applicant to their applications would be lost.

    Authentication setup

    At a high level, most authentication setups will involve:

    1. Some setup through the authentication provider's website

    2. Adding configuration values into the config.sh file of the deployment

    3. Updating AWS Secrets Manager with the client ID and secret values

    Admin authentication setup

    • Okta and generic OIDC: follow steps

    • Azure AD and ADFS : follow steps

    Applicant authentication setup

    • Generic OIDC: follow steps

      • Auth0: follow steps

      • Google Identity: follow steps

    • Login.gov: follow steps

    Getting started with service design

    At the heart of delivering effective government services is the practice of civic service design. Service design strategies aim to understand the needs of residents and craft policies, processes, and services that are tailored to meet those needs. This can include how people find or apply to services, how they interact with programs through in-person staff or digital tools, what programs require from residents throughout the application process, and operational practices such as providing applicant support and reporting on program outcomes.

    CiviForm is designed to make it easy to implement key best practices in civic service design, such as making program information and applications accessible to residents, supporting workflows for community organizations, notifying applicants of their progress, enabling operational insights through data reporting, and integrating with existing administrative systems and processes. As you work to improve service delivery in your community, service design can help guide how you implement CiviForm to support your specific programs.

    Service design is grounded in understanding the resident experience as it currently is, and identifying improvements to better meet the needs of residents and better fulfill the mission of each program. The remainder of this guide will focus on how CiviForm can best enable such efforts through the lens of civic service design.

    Here are excellent resources on service design to read and reference as you work:

    • : A comprehensive overview of civic service design practices, including understanding resident needs, mapping processes, and ideating on solutions. Each section includes useful templates and resources for different research and engagement practices.

      • Starting Small with Human-Centered Redesign ()

      • Going Big with Human-Centered Redesign ()

    Production Database Access

    We support on-demand deployment of the pgadmin web UI to temporarily access the CiviForm database. We require explicit IP allow-listing via a list of CIDR blocks. Only these IPs will be able to access pgadmin. The public IP of the host running the web browser used to access the pgadmin web UI (like your work laptop/desktop) must be covered by a block in the list. This can be useful when investigating and/or remediating production incidents.

    When accessing the database in this way, it is strongly recommended to do so on a trusted network and device. Furthermore, do not interrupt the script while it is running (ctrl-c) as this may prevent it from revoking the temporary security settings allowing connections from the public internet.

    How it works

    To provide access to the production database, the access script creates a temporary node running pgadmin along with a random username and password in the CiviForm VPC and temporary network security settings allowing it to connect to the production database. It also adds network security settings allowing connections from an IP-allowlist from the public internet. With the access script running, you must make requests from an allow-listed IP and enter the username and password to access the database.

    Access the database for emergency repair

    AWS

    To detect the public IP of a host running a web browser, visit https://checkip.amazonaws.com.

    1. Run ./bin/run

    2. When prompted for a command to run, enter pgadmin

    3. The deploy tool will auto-detect the public IP of the host it is running on and ask if you would like to add the IP to the allow-list. If you want the deploy tool to wait until pgadmin is available to print out connection information, enter 'y'.

    Saving files within pgadmin

    WARNING: The pgadmin tool has the ability to save queries. Do NOT save files within the tool. When pgadmin is shutdown it will permanently remove the files. If you need to save a query, copy and paste it into a file on your computer.

    Updating data in pgadmin

    We cache program and question data on the server for active and obsolete versions, so if you're making changes to this data, you may not see updates reflected until you:

    • Dev / staging instance: clear the cache by going to Dev Tools -> Additional tools -> Clear cache

    • Prod instance (in which data shouldn't be maniputlated or should be done with extreme caution): re-start the the application containers to clear the cache

    Set an external program

    CiviForm admins can add programs hosted outside of CiviForm to reduce the burden on residents of navigating multiple websites to search for relevant programs and information. External programs will be presented to applicants along with other programs, but with a clear indicator that the program opens in a link outside of CiviForm.

    Enable external programs feature

    External programs are currently under a feature flag. The feature must be turned on to allow external programs be added by admins and be visible to applicants. To enable external programs feature:

    1. Sign in to CiviForm as a CiviForm admin.

    2. Select Settings on the navgiation bar.

    3. Enable EXTERNAL_PROGRAM_CARDS_ENABLED.

    Create an external program

    1. Sign in to CiviForm as a CiviForm admin.

    2. Click Programs on the navigation bar.

    3. Click Create a new program.

    4. Select External program as the program type.

    Notes:

    • An external program cannot change its type after creation.

    • There can be multiple external programs in a CiviForm instance.

    View external programs

    1. Sign in to CiviForm as a CiviForm admin.

    2. Click Programs on the navigation bar.

    3. External programs will be clearly labeled in the program list.

    Notes:

    • External programs are not visible to Program admins since external programs have no settings they can manage.

    How external programs appear to applicants

    When applicants view available programs, external programs are displayed alongside regular CiviForm programs. When an applicant clicks on an external program card, a modal dialog appears that informs the user that the program will be opened outside of CiviForm. The applicant must accept this modal to proceed, which then opens the external program's website in a new window or tab.

    External programs are only visible to applicants when North Star is enabled.

    https://github.com/user-attachments/assets/229bc9b7-bf20-4924-be33-4299931a576c

    AWS Terraform deployment

    Information specific to CiviForm Terraform deploy scripts for AWS.

    For general information, see .

    Infrastructure

    Created for CiviForm app:

    Show or hide questions based on inputs

    When creating programs, some application questions might not need to be displayed when based on the answers to previous questions. For example, if an Applicant’s date of birth is earlier than the qualifying year, a screen displaying a discount code for older adults is unnecessary.

    Using a visibility condition, CiviForm Admins can easily show or hide a screen based on the answer to any question within the program.

    Important: If you create a visibility condition based on a question that’s potentially hidden behind a different visibility condition, unexpected behaviors might occur.

    Add a visibility condition

    Onboarding Guide

    This section outlines strategies on how to adopt and implement CiviForm to meet your organization's needs.

    • Plan: Map the needs of your organization and programs in detail to understand where CiviForm can help.

    Upgrading to a New Release

    The CiviForm core team every other week on Tuesdays or Wednesdays. We strongly recommend deployments stay up to date with the latest version to benefit from security patches, bug fixes, and new features.

    Each release is published using with a corresponding server Docker image uploaded to and tagged with the release number.

    Be sure to review the release notes on GitHub for each new release before deploying it.

    Release notes include:

    • Description of fixed bugs and security vulnerabilities

    Working across jurisdictions

    While your program may be administered by and for your jurisdiction, there are likely other programs administered by federal, state, or local agencies that are also relevant to the residents of your jurisdiction. They may not know or care that certain programs are administered by the city, county, state -- they just need help. Surfacing programs from other jurisdictions can be a powerful way to connect residents with the services they need, regardless of where those programs are administered.

    Integrating with other application systems

    It's likely that programs operated by other jurisdictions already have existing tools and processes for accepting applications and delivering services. In this case, one possible approach is to work directly with those programs to establish data integrations with their existing systems as described in "".

    If direct integrations are seen as too challenging, other approaches may include:

    View and apply
    . This will take you to a page with information about the program.
  • Click Start an application.

  • Enter information on each page of the application. Click Continue to advance through the program.

  • Click Submit Application when finished.

  • Enter in a CIDR block that covers the IP of the host that will access the pgadmin web UI. If the host's IP is '127.0.0.1', enter in '127.0.0.1/32' to allow-list just that IP.

  • Either accept or reject the allow-list. If you previously chose to add the deploy tool's IP to the allow-list, and then reject the list, the deploy tool's IP will not be automatically added to the list again.

  • After accepting a list, Terraform will run to bring up the pgadmin resources. When it asks "Do you want to perform these actions?", enter "yes".

  • The deploy tool will attempt to connect to pgadmin every 10 seconds. When a connection is successful, the pgadmin URL and authentication information will be printed. Press Ctrl-c to shortcut this wait.

  • Open the pgadmin URL. Log in using the 'login email' and 'login password' printed by the deploy tool.

  • Expand the 'CiviForm (1)' item in the left navigation pane. You should be prompted to enter in the password to the database. Enter in the 'database password' printed by the deploy tool.

  • Expand the 'Databases (2)' item under the 'CiviForm (1)' item.

  • The 'postgres' item under the 'Databases (2)' item is the CiviForm database. Right click on the 'postgres' item and select 'Query Tool' to send commands to the database.

  • After you are finished accessing the database, press enter to allow the script to clean up pgadmin.

  • Sign in to CiviForm as a CiviForm Admin.

  • Click Programs on the navigation bar.

  • Click Edit for the program you would like to add a condition for.

  • Select a screen you wish to show or hide and click Edit visibility condition.

  • On the Visibility Condition page, under New visibility condition, select the questions you would like to use for your condition and then click Add condition.

  • In the Configure Visiblity Conditions page select if the screen should be either hidden if or shown if.

  • For each question in your condition:

    1. Set the Field data type.

    2. Set the Operator value.

    3. Enter the Value.

    4. Click Submit.

  • The visibility condition is displayed on both the Visibility Condition page and the screen. For example, “Screen 3 is hidden if household size question name Number is less than 2."

  • Multiple allowable values can be specified for a given set of questions in a condition. For example, if a condition uses two questions, household size (number) and household income (currency), multiple combinations of household size and income pairings can be specified that meet the condition. To add additional value groups, click +Add values on the Configure Visiblity Conditions page and fill in the additional values.

    Edit a visibility condition

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Click Edit for the program you would like to add a condition for.

    4. Select a screen you wish to show or hide and click Edit visibility condition.

    5. Click Edit existing visibility condition.

    6. Follow steps in "Add a visibility condition" for configuring the condition.

    Remove a visibility condition

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Select a screen with a visibility condition and click Edit visibility condition.

    4. Click Remove condition visibility condition.

    5. Click Return to edit screen #.

    6. The visibility condition is removed from both the Visibility Condition page and to the screen. The default statement “This screen is always shown" is displayed on the page.

    Rules for visibility conditions

    The following rules apply when trying to understand visibility conditions:

    • There can only be one visibility condition per screen.

    • You can only add a visibility condition for questions used in previous screens. For example, adding a date question to Screen 2 means it’s available for selection in Screen 3. Questions in Screen 3 are not available for selection.

    • When using a text field, the value should not be in quotes.

    • When using the operators "is one of" or "is not one of" on text values, the text should be in a comma-separated list. For example, blue,green,purple. The visibility condition fires if the answer to the question is blue or green or purple.

    existing systems you would like to integrate with
    demography export UI
    CiviForm's API

    Login Radius: follow steps here

    here
    here
    here
    here
    here
    here

    Applications

    NYC Civic Service Design Tools + Tactics
    Preparing for Human-Centered Redesign
    PDF
    PDF
    18F Human-Centered Design Methods
    The Good Services Scale
    Mapping the applicant experience of benefit enrollment
    Civilla Practica
    Foundations
    Design Principles
    Qualitiative User Research
    across jurisdictions
    across jurisdictions

    Description of new features

  • Database schema changes

  • Other stateful changes (such as stored file key name schema)

  • API version changes and deprecation notices

  • New configuration values

  • Infrastructure changes

  • Dependency changes (for the server only) including new, removed, and version updates

  • New releases are also announced on [email protected]

    Version numbers

    Version numbers take the form v<major>.<minor>.<patch>. Generally, we will always increment the minor version with each release and set the patch version to 0. If we do an unscheduled release in order to fix a bug, we'll increment the patch version. The major version will only increment if the release includes changes that require great care when deploying or includes signficant changes to the way CiviForm works.

    Major version

    A new major version indicates major feature or functionality changes that could be disruptive to users or administrators of the system without preparation (i.e. a chance for staff to read documentation or get an overview of new UI).

    A new major version must be created if there are any changes that cannot be deployed by simply updating the server image, but also require manual technical staff effort from downstream deployments to incorporate. Examples of this kind of effort include altering deployment infrastructure, moving to a new major PostgreSQL version, etc. In general, the CiviForm core team seeks to minimize effort needed by downstream maintainers to perform version upgrades. A new major version may also be created when there are signficant changes to CiviForm functionality or appearance.

    Admins should ensure they have database backups before applying a new major change.

    Minor version

    A new minor version indicates feature or functionality changes that enable new capabilities in the system or fix existing ones, but are unlikely to be disruptive and do not require signficant preparation. Examples of such changes include new features, new APIs or API versions, new configuration parameters, and new resources in the system.

    A new minor version may also indicate changes in the database schema, file key naming schema, or other stateful parts of the application. New minor versions should be deployable by simply updating the server image (the Play Framework evolutions system should update the database schema automatically).

    Admins should ensure they have database backups before applying a new minor change.

    Patch version

    A new patch version indicates a bug fix to the previous release that was serious enough to require an unscheduled release. Patch versions should generally be taken up as soon as possible, but if the bug fixed does not apply to your environment, waiting until the next release may be viable.

    distributes new versions of the system
    GitHub releases
    civiform/civiform on Docker Hub
    • Exporting applications from CiviForm as PDFs and emailing them to programs if they accept email submissions.

    • Submitting applications directly through existing program websites via a headless browser. This can only be done if the existing website allows submissions without creating an account, and it may still require permission from the program.

    These approaches are likely to provide a worse experience than direct integrations, so they should only be pursued if more direct approaches fail.

    Incremental steps: Discovery, eligibility screening, and intake

    If it seems infeasible to support submitting applications to programs in other jurisdictions, consider surfacing programs in other ways. As described in "Discovery, Eligiblity Screening, and Intake", it may still be valuable to surface programs from other jursdictions to help someone discover them if they are relevant to their needs. Additionally, providing screening functionality for that program can still help someone know whether or not it may be worth applying to with minimal marginal effort as they are screened for other programs within CiviForm. Finally, leveraging CiviForm for intake or referral to programs in other jurisdictions can directly connect someone to the right person for continued support.

    Security and privacy considerations

    It is essential that applicants understand how their information is being used when submitting an application from within CiviForm. If you plan to share information beyond your jurisdiction, clearly and plainly communicate where that information will be sent and how it will be used so that applicants can make informed decisions about whether or not they'd like to apply. See the "Security and privacy considerations" section for more information.

    Data sharing agreements

    Sharing information across jurisdictions may require a data sharing agreement. For more information, see the guide "Data Sharing to Build Effective and Efficient Benefits Systems" (PDF) by Benefits Data Trust.

    Working with existing tools and processes
    Markdown indicator
    checkbox.
  • Add questions to the pre-screener as normal.

  • .
  • Check the Set program as pre-screener checkbox.

  • environment variables

    Click Add. The new staff member appears in the list of groups.

    . The Trusted Intermediary is removed from the list of members for the group.

    Add the link to the external program site.

    VPC

  • Load balancer

  • Internet Gateway

  • NAT Gateway

  • Fargate ECS cluster

  • RDS with Postgres

  • S3 bucket

  • Connected services

    • SES

    • Secrets Manager

    Supporting Infrastructure:

    • S3 bucket for Terraform backend state

    • Cloudwatch export for logs

    Code and examples (AWS)

    The code that manages deployment can be found here.

    Our staging environment is at staging-aws.civiform.dev.

    Config for the staging environment is here.

    Troubleshooting

    After running the setup or deploy script, you can login to the AWS ECS console to check the status of CiviForm. Make sure to select correct region in the top right corner.

    You should see Cluster with app_preffix-civiform name. Click on it and go to Tasks tab. If everything is going well you should see a task in the Running state.

    Inspecting task config

    You can see the task configuration by clicking on the Task definition tab, finding the latest revision, and opening the JSON tab.

    Inspecting logs

    You can see the logs on the task page by clicking into the specific task and selecting Logs.

    Logs are also available in Cloudwatch. Search for app_prefix-civiformlogs group.

    Terraform deploy system
    AWS System Diagram
    Program assessment
  • Implement: Work with program administrators to create a better experience for applicants and staff.

    • Getting started with service design

    • Journey mapping

  • Pilot: Test applications and processes to refine your approach.

    • Piloting with staff

    • Piloting with CBOs

    • Piloting with residents

  • Launch: Put your new applications out into the world.

  • Grow: Leverage CiviForm to continue to expand access to programs.

    • Onboarding new programs

    • Resources for community outreach

  • Sustain: Ensure that this work can continue over time.

    • Staffing overview

    • Impact measurement and reporting

  • Organization assessment

    Email configuration

    CiviForm uses email to send notifications to program administrators, applicants, and for a few other functionalities. Email addresses are provided via the deployment configuration file or the Admin Settings Panel. Below is the list of different email addresses that are required and some recommendations on how to organize them.

    Email addresses

    Support email address Applicants see this email address in the footer of each page as a mailto link. This value should be set via the Admin Settings Panel SUPPORT_EMAIL_ADDRESS.

    Sender email address This email address is used as a sender for all notifications sent by the CiviForm. For example, notifications sent on new applications (sent to program admins) and program status changes (sent to applicants). Config variable is SENDER_EMAIL_ADDRESS.

    Notifications recipients in staging. These email addresses are used only in staging. Instead of sending email notifications to program admins, they are sent to the provided email addresses. Config variables: STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST, STAGING_TI_NOTIFICATION_MAILING_LIST, STAGING_APPLICANT_NOTIFICATION_MAILING_LIST.

    Emails in staging

    For simplicity, we recommend having a single email address for staging and use it in all the variables listed above.

    Emails in prod

    If your organization already contains a tech support email address, use it. Otherwise, you can create something like [email protected]. For simplicity, you can use the same email as sender. That way, admins and applicants can reply to the email if they are having difficulties or questions about the notification they received. Remember that that someone needs to regularly check the inbox for the email addresses used in CiviForm.

    AWS SES

    CiviForm uses the AWS Simple Email Service (SES) to send emails. To send emails from a certain address, a verified identity must be created for the address. There are two kinds of verified identities: email-verified and domain-verified.

    In a new deployment, SES starts in sandbox mode. While SES is in sandbox mode, it can only send emails to verified identities. SES must be taken out of sandbox mode for prod deployment, otherwise it will not be able to send emails to applicants, program admins, and TIs. Follow to take SES out of sandbox mode.

    We create email-verified identities for each unique email specified by the server environment variables SENDER_EMAIL_ADDRESS, STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST, STAGING_TI_NOTIFICATION_MAILING_LIST, and STAGING_APPLICANT_NOTIFICATION_MAILING_LIST. After the initial deployment, AWS will send 'Email Address Verification Request' emails to each created identity. You must click the verification link in the email for the identity to be verified. This allows you to test email sending in staging deployments without taking SES out of sandbox mode.

    Using a no-reply email address for SENDER_EMAIL_ADDRESS

    If you wish to use a no-reply address with no ability to receive emails, there are two options:

    1. Configure the no-reply address so that it can receive emails before the first deployment, deploy CiviForm, click the verification link in the 'Email Address Verification Request' email sent to the no-reply address, then configure the no-reply address to not receive any emails.

    2. Create a domain-verified SES identity. For example, to use '[email protected]', you must create a domain-verified identity for 'mystate.gov'.

      Follow the steps in the 'Creating a domain identity' section of . To verify the domain, you will need to add CNAME records in your domain registrar.

    Testing emails

    After deploying CiviForm to staging or prod it's important to test that email integration works correctly. Here is the list of things to try:

    1. Open the CiviForm site as an applicant and send email to the technical support email address provided in the footer.

    2. Create a program with a status that has email content.

    3. Apply as an applicant.

    4. Program Admin and applicant (and TI if present) should receive the email.

    Troubleshooting SES email issues

    1. Go to Simple Email Service in the AWS console

      • On the "Get Set Up" page, ensure production mode is enabled. Without production mode enabled, emails can only be sent from verified domains and there is a limit to the number of emails that can be sent

      • On the "Identities" page, ensure the identities are verified. You can use a specific email identity or a domain.

    2. Check the ECS logs

    Manage translations for programs & questions

    CiviForm Admins can translate text for both programs and questions using the CiviForm interface. When an Applicant chooses a language, the entered text is displayed in the application.

    English is the default language for CiviForm. If CiviForm doesn’t include translations for a requested language, the default language is displayed instead. A warning also appears stating the form is not fully translated into the requested language.

    Note: There’s no user interface for the CiviForm Admin to add or remove translation languages from programs or questions. The list of languages CiviForm can support is set up within the code.

    You can edit both unpublished and published programs. To edit published programs, you need to click New Version. For more details on versioning, go to Manage versions for programs & questions.

    Watch the video or follow the step-by-step instructions below.

    Add or edit program translations

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    1. Find a draft (unpublished) program.

      • To add or edit translations for a published program, and save a version of the program in the draft (unpublished) state.

    2. Click the three dots button on the right-hand side.

    Add or edit question translations

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar and select an unpublished question.

    3. Click Manage draft translations.

    Database Disaster Recovery

    CiviForm's production database is backed up daily, with snapshot names prefixed with the value set by POSTGRES_RESTORE_SNAPSHOT_IDENTIFIER. By default they are retained for 7 days, which can be configured byPOSTGRES_BACKUP_RETENTION_DAYS.

    Making a full backup and restore of the database

    As part of your backup strategy, you may want to dump the contents of the database outside of AWS in case something happens to your AWS account. There are a couple ways to do this.

    The backup procedures listed here will create a dump of the entire database, including personally identifiable information. Ensure you take the utmost care in handling this data and store it in a secure location. Additionally, the restore procedures will overwrite the entire database with the contents of the dump file, including all applicant data. Ensure this is really what you want to do before proceeding.

    Option 1: Use the pgadmin UI

    Backup

    1. Follow the instructions to .

    2. Right click the postgres database and choose Backup.

    1. Pick any file name. All of the options can be left as default. If you'd like to only download some of the data, you can select which tables to download in the Objects tab. Note that this saves the file locally inside the pgadmin container.

    1. When complete, in the top menu bar, click Tools -> Storage Manager.

    1. Choose the file you just created, then click the download button.

    1. Save this file in a secure location.

    Restore

    1. If your backup file is larger than 50MB, go to File -> Preferences -> Storage -> Options and change the maximum file upload size appropriately.

    1. In the top menu bar, click Tools -> Storage Manager.

    1. Click the Options button and choose Upload, then upload your backup file.

    1. Right click the postgres database and choose Restore.

    1. Under Filename, choose the file you just uploaded. In the Query Options tab, select Clean before restore. Then click Restore.

    1. Inspect the tables under postgres -> Schemas -> Tables to verify the data was restored properly.

    Option 2: Use the dumpdb and restoredb commands

    This option utilizes the CiviForm Terraform-based deployment system. It will create a temporary EC2 host with access to the database, install the PostgreSQL client, run pg_dump or pg_restore, and then clean up the resources. These commands require the ssh, ssh-keygen, and scp binaries to be available on your system.

    Backup

    1. From your clone of the civiform-deploy repo, run bin/run.

    2. Enter the dumpdb command and follow the prompts.

    Restore

    1. From your clone of the civiform-deploy repo, run bin/run.

    2. Enter the restoredb command and follow the prompts.

    Program assessment

    Answering these questions will make it easier to understand how CiviForm and other tools should adapt to the needs of applicants and program staff. Answering these questions can help form a journey map of applicants and program staff experiences to inform where and how changes might be implemented.

    What department or organization administers this program?

    What challenges do you face in administering or managing this program?

    Any details are fine, the challenges do not need to be technology-related.

    How do residents typically find out about the program?

    Include websites, community organizations, or other channels.

    Where or how do residents typically submit applications to the program?

    Include websites, electronic forms, paper forms, community organizations, program offices, or other channels.

    Do residents typically apply on their own, or do they receive assistance in applying?

    For example, from program staff, call centers, community organizations, social workers, or others.

    How many applications do you process each (day, week, month, year)?

    What information is necessary to apply to the program?

    Share a link to the form or application, or share the questions directly here.

    How long do applications typically take to be completed (from start to submission)?

    Once submitted, how long do applications take to be processed (from submission to approval)?

    What steps are involved in the life cycle of applying to the program, processing an application, and delivering benefits?

    Include the end-to-end life cycle from discovery to the delivery of benefits in as much detail as you can manage, including typical timelines, individuals or roles involved, and steps from both the applicant side and the program/administrative side (and any other stakeholders involved).

    For example:


    Discovery and application (X minutes total):

    1. Resident discovers program through local community group

    2. Resident fills out application X via website at www.example.com with help from local staff member (30 minutes)

    3. Resident comes into program office to drop off paper form (30 minutes)

    4. Paper form is prepared for processing by program staff in X group (once daily)

    Processing (X days total):

    1. Program staff is assigned an application to process (once daily)

    2. Program staff begins processing application within X days after submission

    3. Program staff from group A enters information into computer system Y

    4. Program staff cross-references data in systems Y and Z

    Delivery (X days total):

    1. Approved application is marked for delivery in system A (once per application manually, 10 minutes)

    2. Data is exported from system A to system B for fulfillment (once daily for all applications automatically)

    3. Benefits are delivered through mail (X days)

    (feel free to adjust these section categories or use your own)


    Discovery and application (X minutes total):

    1. ...

    2. ...

    3. ...

    Processing (X days total):

    1. ...

    2. ...

    3. ...

    Delivery (X days total):

    1. ...

    2. ...

    3. ...

    What applications, systems, websites, tools, or other resources are used to process information or applications for this program?

    Include tools used at all steps, including for application intake, record-keeping, benefits processing and delivery, status notification, data aggregation, reporting, or any other tools.

    Do you cross-check eligibility information or other details with any other programs or data sources?

    Do you report your program data to any organizations or stakeholders? What do you report and how is it reported?

    Manage program eligibility

    There are programs that may have strict criteria for eligibility. For example, if an Applicant’s date of birth is earlier than the qualifying year, they are ineligible for the program.

    Using eligibility conditions, CiviForm Admins can screen applicants who don't meet the minimum requirements for a program early in the application process, as well as show applicants cases when there is a program they may qualify for, based on their previous answers.

    Add an eligibility condition

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Click Edit for the program you would like to add a condition for.

    4. Select a screen you wish to add an eligibility condition for and click Edit eligibility condition.

    5. On the Eligibility Condition page, under New eligibility condition, select the question(s) you would like to use for your condition and then click Add condition.

    6. For each question in your condition:

      1. Set the Field data type.

      2. Set the Operator value.

      3. Enter the Value.

    7. The eligibility condition is displayed on both the Eligibility Condition page and the screen. For example, “Screen 3 is eligible if household size question name Number is less than 2."

    Multiple allowable values can be specified for a given set of questions in a condition. For example, if a condition uses two questions, household size (number) and household income (currency), multiple combinations of household size and income pairings can be specified that meet the condition. To add additional value groups, click +Add values on the Configure Eligibility Conditions page and fill in the additional values.

    Edit an eligibility condition

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. Click Edit for the program you would like to edit a condition for.

    4. Select a screen you wish to edit an eligibility condition for and click

    Remove an eligibility condition

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Select a screen with an eligibility condition and click Edit eligibility condition.

    4. Click

    Rules for eligibility conditions

    The following rules apply when trying to understand eligibility conditions:

    • There can only be one eligibility condition per screen (but can be across multiple questions).

    • When using a text field, the value should not be in quotes.

    • When using the operators "is one of" or "is not one of" on text values, the text should be in a comma-separated list. For example, blue,green,purple. The eligibility condition fires if the answer to the question is blue or green or purple.

    Allowing applicants to submit ineligible applications

    By default, eligibility conditions block application submission for ineligible candidates. If you'd like to allow ineligible applicants to submit applications, you can change this in the program settings page. The applicant will not be blocked from submitting an application, but the program admin will still be able to see that the application is ineligible during review.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar.

    3. If the program is not already a draft, you must create a draft of it by clicking Edit. Return to the Programs page after doing so.

    Disaster Recovery

    Overview

    This guide will walk you through performing a full restoration of your CiviForm environment in the event you need to recover a broken installation. This process will allow you to specify a database snapshot and will build out a full, brand new environment.

    We do not recommend trying to restore over an existing environment for two reasons. The first is that keeping the old one allows for future investigation on the cause of a failure at a later date when there is no pressure to restore services.

    The second is that by building out a brand new environment there is no chance of introducing incorrect settings with system components that may be in an unknown working state.

    This disaster recover process is currently only tested and supported for AWS installations. Do NOT use on Azure.

    Prerequisites

    This guide assumes there has already been an initial setup of the system as outlined in the .

    Steps outlined in this guide assume they are being run from the root folder of your fork of the repository.

    Prepare config file

    • Find the existing config file for the environment needing restoration. The default name is often civiform_config.sh.

    • Make a copy of the original config file that was used for the last successful deployment.

    Edit the new config file

    Make a few edits to the new configuration file.

    • Change APP_PREFIX to a new value.

    This should be new and different from any current deployed environments.

    Do NOT use the same APP_PREFIX of the environment needing restoration.

    • Set POSTGRESQL_VERSION to the version of the existing database.

      • To find the postgres version go to the AWS console and navigate to RDS.

      • Click on the database you will be restoring to get the details page

      • Click on the "Configuration" tab

    Upgrading Postgres versions should NOT be done at the same time as restoring an environment. Restoring a snapshot of the old database to a new database with differing Postgres versions increases the risk of failure and compatibility.

    • Set POSTGRES_RESTORE_SNAPSHOT_IDENTIFIER to the snapshot to restore.

      • To find the snapshot identifier go to the AWS console and navigate to RDS > Snapshots.

      • Use the snapshot identifier (not the name, the identifier begins with rds:) for the value for POSTGRES_RESTORE_SNAPSHOT_IDENTIFIER.

    Do NOT change any other settings.

    The CIVIFORM_VERSION MUST be the same version that was in use with the selected snapshot. Upgrading the version of CiviForm should NOT be done at the same time as restoring an environment.

    Initialize the deployment

    Verify that deployment tool is correctly setup by running run bin/doctor --config=NEWCONFIGFILE

    Restore into new environment

    This process will take some time to run. Depending upon the size of the database being restored expect on average 30-60 minutes for completion. There will be large periods where you need to wait while the setup runs, but there are also points where you will be prompted for values.

    • To begin the restoration run bin/setup --config=NEWCONFIGFILE.

    • Wait as setup runs

    • When prompted enter the values for all the requested secrets.

    • When prompted for Postgres snapshot restore follow all prompts. You will be asked for the app prefix of the old environment. This is the value from APP_PREFIX

    When complete, make note of the endpoint url listed at the end of the deployment. It will be the one that has the APP_PREFIX from your new config file and ends with "elb.amazonaws.com".

    At this point the new environment is setup and should be online at the above endpoint url if no errors occurred during this process.

    Verify the new site is working

    Test that the site responds by using the endpoint url from the previous section.

    • Paste the endpoint url into your browser, you will see an invalid SSL certificate error and may not be able to proceed depending on your browser settings. If you can temporarily accept the invalid certificate you should see the CiviForm program page load.

    • Alternatively, you can run curl --insecure --location PUT_ENDPOINT_URL_HERE. The results should be HTML.

    The site will load at this url. There are however many features that depend on running from your real domain name such as authentication.

    Change DNS settings to point to new site

    • Go to AWS Route53

    • Go to Hosted zones

    • Click the Hosted zone name link for the site you just restored

    • Select the A

    While it is often instantaneous, it may take a few minutes for the DNS update to propagate.

    Testing

    • Verify you can log in as an admin and an applicant

    • Check Cloudwatch for errors

    The newly restored environment is now up and running.

    Post restoration

    • Remove the POSTGRES_RESTORE_SNAPSHOT_IDENTIFIER from the config file.

    Going forward with new deployments you will continue to use this new file.

    Migrating programs between environments

    Overview

    Program import is a feature to allow programs and their associated questions to be imported into a CiviForm environment. Imported programs may be migrated from one CiviForm environment to another or imported from another source.

    Handling question collisions

    If a program you are importing shares questions with an existing program in your import environment, you can decide whether you want to create a new duplicate question, use the existing question, or overwrite the existing defintion in your question bank. "Shared questions" are determined by the question admin name. Here are our recommendations for when to choose which option:

    1. Reuse the existing question (Default)

      • Use this option when you want to import a program into an environment that already has existing programs and you want to reuse the questions in the import environment.

      • Use this option when you want to import many programs with overlapping questions into a fresh environment.

      • The newly imported program will benefit from CiviForm's shared question model.

    Exporting a Program

    1. Each program on the program dashboard page has a menu item that says “Export program”.

    2. Click this to be taken to the program export page for that program.

    3. From there you will have the option to download or copy a json representation of the program.

    4. Program export works for programs that are in draft or active mode. Either way they will be imported as drafts into the new environment.

    Importing a program

    1. Look for the “Import existing program” link on the program dashboard page.

    2. Click this link to be taken to the program import page and follow the instructions there to import a program.

    Program Settings That Are Not Migrated

    There are a few program and question settings that are not yet being migrated over. You will have to manually set these in your import environment after importing a new program:

    • Program images

    • Program statuses (and their associated translations)

    • Any categories assigned to the program

    • TI groups associated with the program

    Potential Errors

    Situations in which you might get an error include:

    • Attempting to import a program that is larger than 512,000 characters.

      • We do not currently support importing programs that are larger than 512,000 characters. If you need to import a program that is larger than this limit, contact the engineering team and we can look into raising the size limit.

    • Attempting to import a program with an admin name that matches the admin name of an existing program.

    How does CiviForm work?

    Overview of CiviForm users and how the product serves them.

    The 4 users of CiviForm

    Through the Google.org Fellowship, user researchers identified 4 key users of CiviForm:

    • are residents seeking public services.

    Program staff calls applicant to verify information D (X minutes)

  • Applicant must bring document D into office (X days waiting)

  • Program staff verifies document D against database Y (X minutes)

  • Application is approved. Status is shared with applicant through system Y (X days)

  • Click Save condition.

  • Edit eligibility condition
    .
  • Click Edit existing eligibility condition.

  • Follow steps in "Add an eligibility condition" for configuring the condition.

  • Remove existing eligibility condition
    .
  • Click Return to edit screen #.

  • The eligibility condition is removed from both the Eligibility Condition page and to the screen.

  • Click on the dropdown menu corresponding to the draft program.
  • Click Settings.

  • Click on the toggle to set eligibility to the desired behavior.

  • Discovery, eligibility, and intake
    Consolidating questions across programs
    Working with existing tools and processes
    Working across jurisdictions
    Data reporting and other integrations
    Security and privacy considerations

    As a Program Admin, view the application and set the status.

  • The applicant (and TI if present) should receive the email.

  • If the ECS logs have a Email address is not verified. error, please go through the steps above.

  • these steps
    this guide
  • Look for "Engine version" to get the value for POSTGRESQL_VERSION.

  • of the original config file.
  • Wait as setup runs

  • record type
  • Click "Edit record" in the flyout panel

  • Set Route traffic to

    • Alias to Application and Classic Load Balancer

    • The AWS Region you use

    • Select the newly created environment's load balancer from the list

  • Click Save

  • setup guide
    civiform-deploy
    access the database via pgadmin
    pgadmin-backup
    pgadmin-backup-filename
    pgadmin-tools-storagemanager
    pgadmin-download-file
    pgadmin-filesize
    pgadmin-tools-storagemanager
    pgadmin-upload-file
    pgadmin-restore
    pgadmin-clean-before-restore
    Orient yourself to the CiviForm landing page.
    Publish your draft program to be live on CiviForm.

    Click Manage translations in the dropdown menu.

    manage_translations
  • The default Program details and its custom confirmation texts are displayed in the side.

  • To add a translation, select a language tab and enter the translated text for the Program display name, Program description and custom information page.

  • Click Save.

  • To go back to program list page, click Back button.

  • The default question text and help texts are displayed in the side.
  • To add a translation, select another language and enter the translated text for the Question text and Question help text.

  • Click Save. To go back to Question list page, click Back button.

  • The Supported languages column will display the newly added language.

  • edit the program
    image
    three_dots

    If there are existing programs or questions in the import environment, they must be published before importing with this option.

  • Create a duplicate question

    • Use this when you are confident the imported question should not be the same as the existing question. Questions imported using this option will not affect any questions in the import environment.

    • You can find questions that were duplicated, since their admin names will have -_- a or another letter attached to it.

  • Overwrite the existing question

    • Use this option when you want to update an existing question in the import environment with the definition of the question from the program you are importing.

    • Importing a question with this option will update the question that already exists in the import environment, which means updating any programs that contain that question. We do not recommend using this option in a production environment.

    • If there are existing programs or questions in the import environment, they must be published before importing with this option.

  • Primary Applicant Info settings applied to questions
  • "pre-screener" setting on a program

  • You can resolve this by editing the program admin name in the json, but please be careful when doing so and only use lowercase letters with dashes between words. Using invalid characters in a program admin name will result in another error.
  • Exporting a program from an environment that is on a different CiviForm version than the import environment.

    • Please try to make sure environments are on the same CiviForm version before migrating programs between them. If they are on different versions, you might see an error about an expected field or translation missing.

  • Attempting to import a program with program visibility set to “Visible to selected trusted intermediaries only” (shows up as “SELECT_TI” in the program json)

    • Since we don’t migrate ti groups with the program, you must select a different visibility for the program before migrating.

  • Trusted Intermediaries are third-parties who help residents navigate the application process and access public services (for example, community-based organizations)

  • CiviForm Admin are government employees who create and manage forms for programs.

  • Program Admin are government employees who review and make decisions about applications.

  • Read on to learn about the features for each user type.

    Applicant Experience

    Expand each heading below to learn more about features for applicants.

    Find all benefits programs in one place

    Rather than clicking through disparate pages to find public benefits programs, residents can explore all programs for which they may be eligible in one, centralized location.

    Click to enlarge image.

    Apply online & in your language

    Applying for public assistance often requires residents to go in-person to an office, download and reupload PDF files, or call an agency. CiviForm brings applications online. Applications are written in plain language and available in several languages. The status bar at the top also helps applicants track their progress, with the option to save their progress and finish the application later.

    Click to enlarge image.

    Application information can be reused on multiple applications

    Applications for public benefits programs often require applicants to re-enter the same basic information multiple times, such as address, income, or social security number.

    With CiviForm’s centralized database, once an applicant enters their information once, they do not need to re-enter it ever again. When applying for a new program, previously entered information will be automatically filled in, and the applicant will only have to fill in information not yet provided. Previously uploaded documents will also be available for reuse. If an applicant does want to change a data point, they can do so by editing it directly on the form. They can also easily view all information already provided in the application via the Review page.

    Click to enlarge image.

    Trusted Intermediary Experience

    Residents often turn to local community-based organizations (CBOs) or other third parties to help navigate public benefits programs. These trusted intermediaries are juggling various databases, managing hundreds of applications, and working with several families per day. With CiviForm’s one-stop-shop for your community’s benefits applications, trusted intermediaries have their own accounts to manage their workload from a simple interface.

    Expand each heading below to learn more about features for trusted intermediaries.

    Apply on behalf of a residents

    From their own accounts, trusted intermediaries can create, update, and manage applications on behalf of their clients. Applicant personally identifiable information (PII) created this way is stored on secure cloud servers. Trusted intermediaries can only view the data their staff have entered.

    The accounts of trusted intermediaries are added and managed by government employees.

    Click to enlarge image.

    Manage workload from the Trusted Intermediary Dashboard

    From filtering applicants by programs to tracking application status, trusted intermediaries can visualize and manage their dynamic workload from their own dashboard. Applicant information is viewable by authorized users only.

    CiviForm Admin Experience

    CiviForm Admin are the government employees who create and update applications. These users manage CiviForm for their civic entity, build custom applications, and can maintain the tool without ever needing to go into the code. They may be provisioned access to aggregated and anonymized data for analytics purposes.

    Expand each heading below to learn more about features for CiviForm admin.

    Create, update, and publish program applications in one place

    CiviForm Admins can use the platform’s unified application builder to create and publish applications for public benefits programs. For each program created, these users can create and define the requirements for an application.

    CiviForm Admin can also use ‘question types’ to validate that information is entered correctly. For example, if a CiviForm Admin wants addresses to be inputted in a consistent format, they can select the ‘address question type’ that CiviForm will validate for accuracy. The meaning of that address field however will be determined by the CiviForm Admin (e.g. is it the applicant’s address? an employer address? a spouse?).

    When an application needs to be updated, a new version will be created with all past versions stored in the tool for future reference.

    Click to enlarge image.

    Reuse questions from a shared question bank

    When a CiviForm Admin creates a new question for an application, it is saved in a shared question bank. This shared repository removes the need to recreate questions for applications such as date of birth or social security number.

    Click to enlarge image.

    Show/hide relevant information to applicants

    Many times, a form will need to ask or show people different information based on their answers. For example, an applicant with dependents below the age of 12 should see questions related to school benefits. Alternatively, an applicant below the age of 65 should not be shown benefits for seniors. CiviForm supports these scenarios through visibility conditions.

    When a CiviForm Admin creates conditions to show or hide information based on previous answers, applicants will see questions that are most relevant to their situation. For example, CiviForm can determine if additional information is needed or if the applicant can skip part of the application.

    In the future, there will be functionality that will show related benefits programs for which an applicant may be eligible.

    Click to enlarge image.

    Program Admin Experience

    Program Admin are government employees who review and make determinations about applications for public benefits. Using CiviForm, they can improve existing workflows and gain insights about utilization of programs.

    Expand the heading below to learn more about features for Program Admin.

    Export and disaggregate data

    With CiviForm, Program Admins can review applications directly in the tool. They can also export data into a CSV file if preferred. CiviForm features allow for disaggregation of data to identify trends within applications and resident needs. In the future, there will be functionality for Program Admins to filter, make non-applicant facing notes, and integrate CiviForm into existing systems using an API.

    Click to enlarge image.

    Assign applications to the right Program Admin

    The only people who can review submitted applications for a given program, including any personally identifiable information (PII), are the Program Admins assigned to manage the program.

    Applicants

    Working with existing tools and processes

    In order for CiviForm to be implemented sucessfully, it must be easy for your program staff to continue administering their programs without significantly disturbing their existing workflows and processes. Integrating CiviForm with existing tools and processes allows staff to take advantage of CiviForm's benefits without introducing a substantial learning curve.

    This approach assumes there are three phases of end-to-end service delivery: (1) Accepting applications, (2) reviewing applications, and (3) delivering benefits/services. Existing tools may serve all or none of these purposes, whereas CiviForm can serve to (1) accept applications, and optionally (2) review applications, depending on the needs and existing approach of each program.

    Here are a few examples of how CiviForm can integrate with existing tools and processes.

    Accepting applications from CiviForm to process with existing tools

    Certain programs may already have back-office tools that work well for program staff. In such cases, CiviForm can integrate with those tools as a channel to acccept applications without significant additional effort necessary on the part of program staff.

    CiviForm as the primary channel for accepting applications

    Accept applications
    Review Applications
    Deliver benefits/services

    If a program doesn't have a significant existing online application (e.g. primarily paper, phone, or walk-in applications), but does have existing back-office tools for application review and processing, then CiviForm can serve as the primary resident-facing channel through which the program accepts applications online. When residents submit applications through CiviForm, the data can be exported using the API and ingested into the existing tool for program staff to review and process as they normally do.

    CiviForm as a secondary channel for accepting applications

    Accept applications
    Review Applications
    Deliver benefits/services

    If a program already has an online form for accepting applications that the program wishes to keep, CiviForm can be used as a secondary channel for accepting applications. Similar to the option above, application revview and processing takes place in existing tools -- CiviForm just acts as another source of applications.

    Keeping tools in sync

    In the examples above, program staff do not need to interact with CiviForm at all, since it is simply being used as another channel for accepting applications into existing back-office tools. However, depending on the remainder of the process, it may be important to keep specific information in sync across existing tools and CiviForm.

    For example, if you wish to communicate program status updates via email to applicants using CiviForm, that information must be updated in CiviForm, either via the interface or through the API (API re-design in progress as of Q2 2023). However, if status updates are communicated through existing tools, then no such integration back into CiviForm is necessary and CiviForm's status update feature can be disabled for that program.

    Similarly, if additional information needs to be collected from an applicant, if that information is collected through a tool other than CiviForm, it will not be apparent to the applicant that their information has been updated. In this case, asking the applicant to submit the additional information from within CiviForm directly, or having a mechanism to feed the new information back into CiviForm via the interface or API (API re-design in progress as of Q2 2023) may be necessary to ensure a good applicant experience with consistent information across tools.

    Additionally, if information requirements change in existing forms or online applications, mechanisms must be put in place to update CiviForm's forms to match those changes and ensure consistency across different channels.

    Linking data with existing accounts

    CiviForm for discovery or eligibility screening

    Even if CiviForm is not used to accept applications for a given program, it may be valuable as a tool for discovery or eligibily screening that then directs applicants to an existing application form. See "" for more information.

    Accepting and reviewing applications within CiviForm

    If a program doesn't already have a back-office application review tool or is looking to replace an existing tool, program staff can directly use CiviForm to review applications. For simple programs, this enables staff to take advantage of CiviForm's built-in features such as status tracking, status notifications, and note-keeping. For more complex programs, additional steps may be required for the delivery of benefits/services after applications are approved within CiviForm (for example, exporting data to a payment processor or another system to disburse funds, or referring someone to a service provider for next steps).

    CiviForm as the primary tool for reviewing applications

    Accept applications
    Review Applications
    Deliver benefits/services

    If a program wishes to use CiviForm as the primary interface through which applications are reviewed, CiviForm can perform this functionality out of the box. Program administrators can review applications, keep internal notes, update an application's status, and send notifications to applicants when their application status changes.

    This approach can be taken regardless of whether or not there are existing channels for application intake; however, administration may be simpler if a program chooses to standardize on using CiviForm for application intake (for example, encouraging individuals to apply through CiviForm, or having program or CBO staff submit walk-in or phone applications through CiviForm on behalf of residents). Otherwise, there will be separate review processes for different application channels.

    CiviForm as a secondary tool for reviewing applications

    Accept applications
    Review Applications
    Deliver benefits/services

    If there is already a tool used for reviewing applications that a program wishes to keep, CiviForm can be used alongside that tool, albeit at the cost of having two different review processes. This may be useful in a state of transition as a program consolidates to use one tool (whether CiviForm or the existing tool), or if there is a way to consolidate the remainder of the delivery process after applications are reviewed across tools. Understanding the primary channels for accepting applications and the downstream processes after applications are review can help make a decision about how to best integrate CiviForm within a program's workflow.

    Other considerations

    Consider these other factors when integrating CiviForm with existing tools.

    • Can the program's existing tool ingest data from external sources via an API?

    • What is your IT team's preferred approach to running data import/export pipleines?

    • What is an acceptable frequency for applications to be exported from CiviForm and imported into other systems?

    • What processes must be implemented to ensure breaking changes to forms or APIs are accounted for across systems?

    Troubleshooting Production

    Outage, site is down

    DNS

    Symptoms

    • "This site can’t be reached" in Chrome

    • Requests timing out

    Diagnose

    On a unix command line, run dig <your CiviForm domain>. (Note: Remove the protocol -- http or https -- from the front of your domain before running the command.) There should be a CNAME entry that points to an AWS load balancer e.g. seattle-civiform-lb-2038295446.us-west-1.elb.amazonaws.com.

    Confirm that the CNAME record matches the public domain for your AWS application load balancer by visiting the AWS console EC2 > Load Balancing > Load Balancers and finding the load balancer for your prod deployment.

    Resolution

    If the CNAME entry is missing or does not match the DNS name you find in AWS, add or update a CNAME entry in your domain registrar with the application load balancer's DNS name.

    Server can't start

    Symptoms

    • "This site can’t be reached" in Chrome

    • Requests timing out

    Diagnose

    View the ECS cluster for your prod deployment in AWS by going to ECS > Clusters and clicking the cluster for your production deployment. There should be at least one healthy task. If all tasks are unhealthy or unknown the server is unable to start.

    If no tasks are healthy, view the server logs (see Server errors below). Look for stack traces and error messages.

    Resolution

    If you have just deployed, revert your CiviForm version number to the previous version you deployed and .

    Contact the CiviForm maintainers and include any errors you found in the server logs.

    Server errors

    Symptoms

    Server returns 400 or 500 level errors or pages with short, plaintext messages stating an error message.

    Resolution

    If you have deployed recently, consider reverting your CiviForm version number to the previous version you deployed and .

    Investigate the server logs. Report any errors you find along with complete stack traces to the CiviForm maintainers. To view the server logs in the AWS console go to CloudWatch > Logs > Log groups, select the log group for your production deployment and view the combined log stream.

    Symptoms

    Server returns 504 Gateway Timeout error, especially when doing admin actions such as application exports.

    Resolution

    If the CiviForm server takes too long to respond to a request, the load balancer will time out. This can be configured by setting export LB_IDLE_TIMEOUT=<integer> to a value larger than the default 120 seconds in your config file and redeploying.

    Authentication errors

    Symptoms

    Users are unable to log in.

    Resolution

    Check with maintainers of the admin and applicant auth systems if there have been recent changes. Check the for your CiviForm version to see if it mentions auth changes. If errors are occuring after the user successfully authenticates with the identity backend and redirects back to CiviForm there is likely a server error involved. Check server logs for errors.

    Contact CiviForm maintainers with details of the investigation.

    Errors related to Authority ID

    If a user has created an account as an applicant and then is added as an admin with the same email, they may see an error when logging in. When checking the logs, it'll show Profile already contains an authority ID: Optional[iss:xxx] - which is different from the new authority ID: Optional[iss:yyy]. To fix this error, the account admin will need to and update the particular account to use the new authority ID. First, you can find the existing account by runnning SELECT * FROM accounts where authority_id = 'iss:xxx' (with the original authority_id). Once you confirm there is one account listed and it is the correct account (see note below), you then can run UPDATE accounts SET authority_id = 'iss:yyy' WHERE authority_id = 'iss:xxx';

    NOTE: It should be strongly verified that the user/account is correct. Changing this without care is a security issue as now the "new" account has access to the system.

    Infrastructure Requirements

    This document describes the infrastructure required to deploy CiviForm into a new jurisdiction.

    CiviForm is a classic web-based client-server architecture which stores applicant information in a database. The application server typically runs in a Docker container, a type of virtualized environment which contains most of the pieces described below.

    The Subsystems

    Basic architecture

    Note that there usually is not direct traffic between the CiviForm server and identity providers (dotted lines). Rather, users authenticate by visiting CiviForm, which redirects their browser to an identity provider, which in turn redirects them back to CiviForm.

  • What are security or privacy requirements for these integrations? See "Working across jurisdictions" and "Security and privacy considerations" for more details.

  • CiviForm

    ✅

    ❌

    ❌

    Existing tool

    ❌

    ✅

    ✅

    CiviForm

    ✅

    ❌

    ❌

    Existing tool

    ✅

    ✅

    ✅

    CiviForm

    ✅

    ✅

    ❌

    Existing tool

    🟡

    ❌

    🟡

    CiviForm

    ✅

    ✅

    ❌

    Existing tool

    🟡

    🟡

    🟡

    Discovery, Eligiblity Screening, and Intake
    re-deploy
    re-deploying
    release notes
    access the database
    Server error example
    USDA Journey Map

    Load Balancer

    Software-defined load balancer to route incoming client traffic to an array of backends; required to ensure the software scales up gracefully with increased load.

    If running in a cloud-service, an example would be AWS ELB or Azure Load Balancer.

    If running on-prem, examples would be SeeSaw, nginx, HA Proxy, Kubernetes load balancer, etc.

    Database

    CiviForm uses the PostgreSQL database.

    • Only a single instance is necessary, with regular snapshot backups.

    • Estimated 2 vCPU, 8GB memory, 50GB storage.

    Application Servers

    These are the servers receiving & processing client requests.

    • Minimum 2 instances , each with 2 vCPU, 8GB memory

    File Storage

    File storage needs are for applicant-uploaded files and depend entirely upon the civic entity's configuration and usage. We recommend limiting applicant file upload size to 10MB per file.

    Email Sending Service

    For a cloud deployment, examples would be AWS SNS or Azure SendGrid.

    For a local deployment, one would need to interface with the government's own email systems.

    Authentication Systems

    Two systems are needed: one which is configured to authenticate applicants, and one configured to authenticate administrators. Both systems must be OIDC compliant, and the adminstrator-systems must have configurable claims.

    Why Cloud Deployment is Preferred

    CiviForm is designed to run reliably and with minimal ongoing effort in a cloud-native environment. This is accomplished through the use of standardized infrastructure-as-code tools that automatically provision and deploy the necessary infrastucture.

    The core application and database can be run on-premises with additional effort if desired, though service dependencies such as email, file storage, and monitoring are often easier to manage through a cloud provider. Deploying on-premises means these services would need to be separately developed, deployed, and maintained internally without full use of CiviForm's included deployment system. Such services include:

    • provisioning

    • deployment

    • monitoring

    • file storage and file system scaling

    • email notifications

    • database backups and recovery and storage scaling

    • application server scaling

    On-prem deployment:

    Pros

    • Total control of all infrastructure and data.

    • Can use existing pre-approved and familiar software and infrastructure.

    Cons

    • Hardware capex & opex becomes expensive at scale

    • Given the limited size and time-availability of civic IT departments, on-prem is much more work to scale up, and likely less reliable (more outages).

    • Requires building bespoke systems that are much more laborious for new contributors/maintainers to work with. In contrast, major cloud providers have extensive training and certification offerings making it straightforward to train existing personnel and identify qualified job applicants.

    Cloud deployment:

    Pros

    • Instant scalability (just "add" more capacity)

    • Likely more reliable (fewer outages)

    • Opex cost is likely less than on-prem machine maintenance

    • More efficient use of IT staff's time

    • Dramatically less technical effort put towards infrastructure, meaning more time can go towards other efforts.

    Cons

    • Requires careful audit to ensure cloud service and architecture is meeting government security & privacy requirements.

    • May require multiple levels of agency approval to deploy.

    What Cloud deployment looks like

    In general, a cloud provider refers to a business like AWS, Azure, or GCP.

    Similarly, a cloud service refers to a service within the provider (such as file storage or container orchestration.)

    From the IT department's point of view:

    • The CiviForm system is comprised of a set of resources (e.g. application servers, PostgreSQL database, file storage) will be running in a virtual private cloud (VPC).

      • A virtual private cloud ensures the different components of the CiviForm systems are only accessible by the entities that should have access. E.g. the database is only accessible from the application servers, the application servers are only accessible from the load balancer, etc

    • For CiviForm, we have designed the system's resources and deployment to be controlled in a set of text files – these are Terraform configuration files. IT staff has the freedom to modify these files and change how cloud resources deploy, how much disk/ram/cpu to give each, etc.

    • Terraform then deploys the resources to a commercial cloud provider – whether it be AWS, GCP, or Azure.

    • CiviForm's Java application servers run in a tool called Docker, all cloud providers understand (natively) how to run a Docker container in groups, using container orchestration services.

      • AWS has a container service called ECS; Azure has a container service called ACI. These services run the server code in a Docker container, but are using the native cloud app-services systems under the hood.

      • Under development, a local Docker instance contains a private PostgreSQL database within the same container as the app servers. In production, multiple Docker containers are deployed to the cloud, which then access a shared SQL database (e.g. RDS on AWS, or AzureSQL on Azure).

    Cloud providers also have:

    • ...their own load balancing systems needed by CiviForm – they will properly route and balance incoming requests to the containers.

    • ...file storage systems (e.g. to allocate to the DB and store resident-uploaded files)

    • ...email sending systems

    Costs of deploying into the Cloud:

    • Training: IT staff will need to learn basic proficiency with the cloud provider.

      • How to manage cloud accounts

      • How to monitor the health / traffic / resource consumption of their containers

      • How to modify the quantity of resources consumed

    • Operating Expense

      • Cloud providers will charge a monthly bill for resource consumption.

    Basic architecture diagram

    Map questions

    Map questions allow applicants to view and select locations on an interactive map. This section covers the detailed setup and configuration options for map questions.

    Setup requirements

    1. A publicly accessible HTTP endpoint that provides location data in the GeoJson format

    2. Valid data containing Features with:

      • Unique identifiers (the Feature ID)

      • Point geometry only (longitude and latitude coordinates)

      • Properties must include fields for:

        • Display name of the location

      When setting up the GeoJSON, you may use any name for the individual fields. Later, when configuring the map question, CiviForm Admins will be able to specify which GeoJSON property fields contain the required information.

    Sample GeoJSON

    Configuration options

    When creating a map question, admins must configure:

    1. GeoJSON Endpoint URL

    2. GeoJSON Key Mappings:

      • Name key: Specify which GeoJSON property contains the location's name (e.g., "facility_name", "location_title")

      • Address key: Specify which property contains the location's address (e.g., "street_address", "location")

    Admins can also configure:

    • Maximum selections: Limit how many locations an applicant can choose

    • Filters: based on specific GeoJSON property keys to help applicants find relevant locations

    • Tag: that displays on locations with specific property values

    For example, if you were using the

    You would:

    1. Select facility_name as the name key field

    2. Select location as the address key field

    3. Select more_info_link as the view more details URL field

    Adding a filter

    Filters help applicants narrow down location options based on specific criteria. When you add a filter, applicants will see a dropdown or checkbox interface to filter locations by the values in a specific GeoJSON property. Up to six filters can be added to each map question.

    To add a filter:

    1. Click Add filter when configuring the map question

    2. Select the Key that contains the filter values (e.g., "wheelchair_accessible", "service_type", "language_support")

    3. Enter a Display name for the filter

    How filters work for applicants:

    • CiviForm automatically detects all possible values for the specified property across all locations in the GeoJSON data

    • Applicants see these values as filter options in the interface

    Best practices:

    • Use property keys with a limited number of distinct values (e.g., boolean values, categories)

    • Avoid using properties with unique values for each location (e.g., phone numbers, specific addresses)

    • Ensure the property exists on all or most locations in your GeoJSON data

    Adding a tag

    A tag displays on locations with a specific property value. Optionally, an alert for that tag displays to applicants when they select a location with that specific property value. This is useful for notifying applicants about special conditions, requirements, or limitations.

    To add a tag:

    1. Click Add tag when configuring the map question

    2. Select the Key for CiviForm to monitor (e.g., "capacity", "status", "requires_appointment")

    3. Enter the Value that triggers the tag (e.g., "limited", "closed", "true")

    4. Enter a Display name that displays as the tag on a location

    How tags work for applicants:

    • When an applicant selects a location on the map, CiviForm checks if the tag condition is met

    • If the selected location has a property that matches the configured key-value pair, the alert message is displayed

    • The tag is informational and does not prevent applicants from selecting the location

    Best practices:

    • Keep alert messages clear and concise

    • Consider what actions you want applicants to take after seeing the alert

    • Test the alert with your actual GeoJSON data to ensure it triggers correctly

    Data storage and refresh settings

    CiviForm stores all the data provided by the GeoJSON endpoint (see ). When an applicant makes a selection, CiviForm stores:

    • The unique identifier of the selected location provided as the Feature ID in the GeoJSON data

    • The value of the configured name field at the time of selection

    Note: It is the admin's responsibility to maintain a record of which location corresponds to each Feature ID, as CiviForm only returns these two pieces of information.

    By default, the stored data won't be automatically updated. To enable automatic data refresh:

    1. Set durable_jobs.map_refresh=true in your application configuration

    2. Once enabled, CiviForm will ping the GeoJSON endpoint every 10 minutes to refresh the data. If the endpoint fails at any point, the data will not be updated and CiviForm will continue to use data from a previous successful call until it is able to successfully refresh the data.

    This automatic refresh is useful for locations with frequently changing properties (e.g., availability, capacity, or service hours).

    Validation options

    The map question supports:

    • Required vs optional selection

    • Maximum number of selections

    Accessibility considerations

    To ensure map questions are accessible to all users:

    • Ensure location names are clear

    • Include several filters so that applicants can narrow down the list of locations

    Troubleshooting

    GeoJSON endpoint failing

    Problem: CiviForm cannot fetch data from the GeoJSON endpoint.

    Possible causes and solutions:

    • Invalid GeoJSON format: Verify your GeoJSON data is valid using a validator like

    • Missing Feature IDs: Ensure every Feature in your GeoJSON has a unique id field

    • Incorrect geometry type: Map questions only support Point geometry. LineString, Polygon, and other geometry types will not display

    Key mapping not working

    Problem: Location names, addresses, or URLs not displaying correctly.

    Possible causes and solutions:

    • Incorrect key selection: Verify you've selected the correct property keys during map question configuration

    • Missing properties: Ensure all Features in your GeoJSON have the name, address, and URL properties

    • Null or empty values: Check that the properties contain actual values, not null or empty strings

    Filters not showing expected options

    Problem: Filter dropdowns are empty or missing expected values.

    Possible causes and solutions:

    • Incorrect key selection: Verify you've selected the correct property keys during map question configuration

    • Inconsistent property names: Ensure the property exists across locations in your GeoJSON data

    • Data refresh needed: If you recently updated your GeoJSON, wait for the next refresh cycle (every 10 minutes if automatic refresh is enabled)

    Tags not appearing on locations

    Problem: Configured tags don't display on locations.

    Possible causes and solutions:

    • Value mismatch: Verify the tag value exactly matches the property value in your GeoJSON (case-sensitive)

    Data not refreshing

    Problem: Updates to GeoJSON data don't appear in CiviForm.

    Possible causes and solutions:

    • Automatic refresh disabled: Verify durable_jobs.map_refresh=true is set in your application configuration

    • Endpoint failures: Check your endpoint logs for any errors during CiviForm's refresh attempts

    Selection data missing in exports

    Problem: Application exports don't show expected map question data.

    Explanation: CiviForm only stores the Feature ID and the name field value at the time of selection. To get complete location information, you'll need to:

    • Maintain a separate mapping of Feature IDs to full location details

    • Cross-reference the Feature IDs from exports with your GeoJSON data source

    GIS Service configuration

    You may have some programs that need to collect an applicant's address to offer services. Those programs may also want to verify that the address exists and matches a standard format, and may also want to verify that the address is in the area that's eligible for the program. For example, a program may only be for applicants living in a certain county. CiviForm uses the external Esri service for both these use cases. CiviForm is not currently compatible with other geolocation services. If you'd like to use another geolocation service, please reach out to the engineering team.

    Address Correction

    Programs may want to have an applicant's address corrected so that they can verify the address exists and have all addresses in a standard format. This needs to be configured both at the deployment level and at a question level.

    If you want to see what results address correction might provide, you can experiment with ArcGIS's world endpoint. Here's a sample query for 700 5th Ave, Seattle WA 98101. For your official deployment, you could choose to use this endpoint instead of defining your own, but you would still need to purchase an Esri subscription and create an Esri API token.

    Deployment-level configuration

    Before any specific program can use address correction, it must be enabled for your deployment as a whole.

    1. Set to true.

    2. Set to one or more URLs that CiviForm will use to call Esri’s . The service should have a GeocodeServer type. Example URL value: "https://gisdata.seattle.gov/cosgis/rest/services/locators/AddressPoints/GeocodeServer/findAddressCandidates"

    Make sure the URL ends in findAddressCandidates

    If you are using Esri's ArcGis Online service (arcgis.com), you need to also set a valid api token for . You can get a token via your arcgis.com account.

    1. Optional, but recommended. Set which forces the service calls to return spatial references using the specified wellknown id value for their coordinate system.

    Expected findAddressCandidates response format

    Civiform expects a response with the following fields:

    Notes on parsing:

    • If there the response does not include a value in SubAddr, CiviForm keeps the value the user entered.

    • If the value in RegionAbbr is not two characters, CiviForm checks the Region field for the two character state code. If it's also not two characters, CiviForm keeps the state code the user provided.

    Overriding the default wellKnownId

    The Esri API has the ability to return spatial reference data using different coordinate systems via a wellKnownId (a.k.a wkid). Details of that along with links to the long list of possible coordinate systems can be found on the .

    The default wellKnownId is 4326 - GPS which are traditional latitude and longitude value most often thought around of around coordinate systems. Custom hosted installations may set a different value as their default. For example, Seattle defaults to using wellKnownId 2926 - NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601_Feet .

    This works fine as long as calls to correct an address and calls to mapping layers for service area validation are all defaulting to the same wellKnownId. Such as calling both endpoints on the same hosted instance.

    Where it becomes a problem is if you want to start mixing calls to different installations.

    Example

    1. Call arcgis.com to correct address, returns coordinates using wellKnownId 4326

    2. Call Seattle's hosted instance for map query endpoints for service area validation using values from arcgis.com would result in not being eligible because the coordinates systems don't match

    By setting the ESRI_WELLKNOWN_ID_OVERRIDE we force both systems to use the same coordinate system.

    Existing data

    After we get the corrected address we save the x, y, and wkid as part of the address. Calls to map query endpoints already use the stored wkid to specify what the input spatial reference should be. Existing records will still work as is.

    If this override is added after CiviForm users have been using address correction and is different from the previously used default you will end up having new records stored in different format. If that is a concern the solution is to make sure the override value is the same as used before.

    This is only an issue if you change the find address endpoint at a later point in time to one with a different default. Such as using Seattle's version to using arcgis.com.

    If there is only a single host this will never be a problem since they'll both have the same defaults.

    Applying to questions

    Once those configuration variables are set up, address correction can be enabled or disabled on any address question using a toggle:

    When a user fills out an address question with address correction, CiviForm will use the Esri endpoint to fetch address suggestions. If a suggestion perfectly matches what the user inputted, the suggestion will automatically be used and the user will proceed with the application. Otherwise, the user will be presented with a screen asking them to choose the correct suggested address:

    Note that for each block in an application, there can only be one address question with address correction enabled. This is because it's complicated to chain multiple address correction pages together (both from a technical standpoint and from the perspective of an applicant). If multiple address questions need address correction, they can be on different blocks.

    Service Area Validation

    Service area validation checks whether an address is within a specific area. This can be used for visibility or eligibility conditions. For example, a user may only be eligible for a program if they live in a specific neighborhood.

    Service area validation requires that address correction must also be enabled for the question. CiviForm needs the address's latitude and longitude values from Esri to determine if the address is within a certain area, and we only get the latitude and longitude values from Esri's address correction information.

    Deployment-level configuration

    Step 1: Enable feature flag

    Set to true. Note that ESRI_ADDRESS_CORRECTION_ENABLED must also be set to true.

    Step 2: Configure service area map values

    Set the four ESRI_ADDRESS_SERVICE_AREA_VALIDATION_* configuration variables to contain the necessary information:

    • is the list of URL(s) that CiviForm will use to call Esri’s to determine if the address is within the area specified by the map query service. The map should be a MapService type.

      • Type: String[]

      • Example value: ["https://gisdata.yourcity.gov/server/rest/services/City_Limits/MapServer/1/query"]

    The configuration allows you to set up multiple service areas so that different questions can have different eligibility requirements. For example, maybe one program allows anyone in the county to apply while a different program only allows people in a certain zip code to apply. You can set up two service areas:

    One program can set their eligibility condition to use "Arkansas" and the other program can set their eligibility condition to use "Example Neighborhood".

    The arrays in each of these four variables should all be the same length. The values at index i should all correlate with each other. In the example above, all values at index 0 are for checking the county service area, and all values at index 1 are for checking the neighborhood service area.

    Put another way:

    • When checking that an address is in the service area labeled "Arkansas" in the admin UI, CiviForm will query arkansas-url and check the response for a field called STATE with a value of "AR".

    • When checking that an address is in the service area labeled "Example Neighborhood" in the admin UI, CiviForm will query neighborhood-url and check the response for a field called ZIPCODE with a value of "01234".

    Applying to questions

    Once those configuration variables are set up, service area validation can be enabled or disabled on any address question using eligibility or visibility conditions:

    Address correction must be enabled on the question before the eligibility or visibility conditions based on the service area can be set up.

    Other configuration

    - Integer

    The number of tries CiviForm will attempt requests to external Esri services.

    Manage questions

    Questions form the structure of a CiviForm program. When a CiviForm Admin creates a question for one of their forms, the question is saved in the global question bank. When programs reuse the same question, all Applicant data related to the question gets autofilled. This reduces duplicate data entry and ensures accuracy by using previously vetted information.

    Create a question

    Watch the video or follow the step-by-step guide below.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar.

    3. Click Create new question and select a question type. For more details on question types, go to .

    4. Enter the information for the question.

    5. Click Create. The new question appears in the list of questions.

    Tip: You might want to develop a naming convention for your questions. For example, address-residence, address-work, etc.

    Edit a question

    You can edit both unpublished and published questions. To edit published questions, you need a new version. For more details on versioning, go to

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar and select a question.

    3. Click Edit draft.

    4. Modify the question information fields.

    Archive a question

    If a question is no longer in use by any program, you can archive a question.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar and select a question.

    3. Click Archive.

    Restore an archived question

    When you restore an archived question, you can use it in your programs. You can restore an archived question up until the next version is published. For more details on versioning, go to

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar and select an archived question.

    3. Click Restore archived.

    Question type requirements

    All question types have the following configuration options:

    • Title (text shown to the user)

    • Description or help text (this is raw text, but if we detect a URL, we can format it as a hyperlink.)

    • Required or optional

    Each question may have zero, one, or more validation criteria.

    • For simplicity, if there are two or more criteria, it's assumed that they're joined with "AND" (all criteria must be met for the answer to be accepted)

    • The list of supported validation criteria are given under each question type's heading.

    Each validation criterion may be paired with an error message in case that criterion isn't met.

    Question types

    You can customize your program to include multiple different question types. The table below shows the supported question types, along with the expected data input.

    Screenshot 2023-04-04 at 10 47 48 AM

    Monitoring

    CiviForm supports server monitoring via metrics visualized in . These metrics are related to server status, things like latency and error rates, and do not contain sensitive data, such as who is applying to what programs.

    Enabling metrics export

    Exporting metrics from the server is optional, and must be enabled by setting the CIVIFORM_SERVER_METRICS_ENABLED environment variable to true. When enabled, the server exports metrics from the

    Screenshot 2023-04-04 at 10 57 08 AM
    Screenshot 2023-04-04 at 11 01 52 AM
    Screenshot 2023-04-04 at 11 06 31 AM
    Screenshot 2023-04-04 at 11 11 31 AM
    image
    image

    Physical address of the location

  • URL linking to more information about the location

  • View more details URL key: Specify which property contains the URL for more details (e.g., "more_info_link", "website")

  • Optionally add a filter for wheelchair_accessible
  • Optionally add a tag for locations where capacity equals "limited"

  • Optionally, write an alert message that will be displayed to applicants that select those locations

    Endpoint not accessible: Verify the GeoJSON endpoint URL is publicly accessible and returns a valid response
    GeoJSON
    Add filters
    Configure a tag
    sample GeoJSON feature
    sample GeoJSON
    geojsonlint.com
    Map question settings
    Map question filter setting
    Map question filters
    Map question tag setting
    Map question tag
    Map question alert
    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS is the list of labels that CiviForm admins will see when setting up eligibility or visibility conditions.
    • Type: String[]

    • Example values: ["Seattle"], ["Abc County", "Def County", "Ghi County"]

  • ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES is the list of attributes that should be checked in the response returned from the Esri service URL.

    Note that these attributes are custom for each Esri URL and you'll need to look at what fields are provided for your specific map to know what attribute to use. For example, Seattle's service area validation service specifies "CITYNAME" as an attribute.

    • Type: String[]

    • Example values: ["CITYNAME"], ["ZIPCODE"]

  • ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS is the list of values that the attribute should be equal to in order for the address to be considered within the service area.

    • Type: String[]

    • Example values:

      • If _ATTRIBUTES is set to ["CITYNAME"], then _IDS could be set to ["Seattle"] in order to require addresses be in the city of Seattle.

      • If _ATTRIBUTES is set to ["ZIPCODE"], then _IDS could be set to ["28202"] in order to require addresses be in the 28202 zip code.

  • ESRI_ADDRESS_CORRECTION_ENABLED
    ESRI_FIND_ADDRESS_CANDIDATES_URLS
    findAddressCandidates service
    ESRI_ARCGIS_API_TOKEN
    ESRI_WELLKNOWN_ID_OVERRIDE
    arcgis developer site
    link
    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED
    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS
    map query service
    ESRI_EXTERNAL_CALL_TRIES
    Image of address correction toggle enabled
    Image of address correction page applicants will see
    Image of validating that an address is in the Seattle service area as an eligibility condition
    {
      "type": "FeatureCollection",
      "features":
        [
          {
            "type": "Feature",
            "geometry": {
              "type": "Point",
              "coordinates": [-122.4194, 37.7749]
            },
            "properties": {
              "facility_name": "Main Community Center",
              "location": "123 Main St, San Francisco, CA",
              "more_info_link": "https://example.com/center",
              "wheelchair_accessible": true,
              "capacity": "limited"
            },
            "id": "main-community-center" # Feature ID
          },
          {
            ...
          },
          {
            ...
          }
        ]
    }
    
    {
      "spatialReference": {
        "wkid": 4326
      },
      "candidates": [
        {
          "address": "555 Example St, Sample Town, AR, 55555",
          "location": {
            "x": -100.00,
            "y": 100.00
          },
          "score": 99.53,
          "attributes": {
            "SubAddr": "",
            "Address": "555 Example St",
            "City": "Sample Town",
            "Region": "",
            "RegionAbbr": "AR",
            "Postal": "55555"
          }
        },
        {...},
        {...}
      ]
    }
    export ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS = ["arkansas-url", "neighborhood-url"]
    export ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS = ["Arkansas", "Example Neighborhood"]
    export ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES = ["STATE", "ZIPCODE"]
    export ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS = ["AR", "01234"]

    Click Update.

    Allows applicants to create a list of one type of entity. For example, household members, vehicles, jobs, etc. Enumerators do not store question data. Instead, the data is stored within the repeated questions within the enumerator. Enumerators also allow you to dynamically add multiple questions whenever needed, reducing program clutter. For example, you can create a repeater to ask the same questions for every member of an Applicant’s household. Enumerator questions must be the only question in an enumerator screen. For more details, go to

    File Upload

    Allows Applicants to upload files to support their application. For example, PDF files and images (PNG, JPG, GIF). File Upload questions must be the only question in a screen.

    ID

    Useful for requesting identification or account numbers. For example, a resident's utility account number. Only numeric numbers are allowed. The minimum and maximum length for this field can be defined in the question settings.

    Map

    Allows Applicants to select a location (point) on an interactive map or a checkbox list that corresponds with the map locations. Useful for helping Applicants understand where on the map the locations they are selecting are located. Admins must be able to provide an HTTP endpoint that returns location data (Point features only) with properties for display name, address, and details URL (field names are configurable). When an applicant selects a location, CiviForm will store the location's feature ID and display name at the time of selection with the applicant's submission. Admins can include a maximum number of selections for this question. For more details, go to .

    Name

    A full, legal name.

    Number

    Applicants can enter a numeric value. For example, annual household income. Numbers must be integers only with no decimals allowed. Users can increase or decrease the number using the arrow buttons within the field.

    Radio Button

    Suitable for a short list (<=7 items) of static items where the Applicant is required to select only one option. For example, simple yes/no questions or employment status. Tip: If you want Applicants to select multiple options in a question, use a Checkbox question instead.

    Static Text

    A free form field that includes the ability to fully format text using Markdown. See for more information.

    Text

    A free form field that can store letters, numbers, characters, or symbols.

    Phone

    Accepts two inputs from the user: the country, and the number. The number is a formatted input in the (xxx) xxx-xxxx format. Currently, it supports only US and Canadian numbers. The phone numbers are validated and stored as strings. When the admin views the entered number, they see it in the +1 xxx-xxx-xxxx format.

    Type

    Use case and expected data

    Address

    An Applicant’s address. For example, residential, work, mailing, school, etc.

    Currency

    Currency questions are formatted with a decimal point (.) as a separator between the dollars and cents. Useful for asking income and debt-related questions (e.g. wages, benefits received, loan amounts, etc).

    Checkbox

    Useful when Applicants need to check multiple items to answer the question fully. Tip: If you want Applicants to select only one option from a group of options, use a Dropdown or Radio Button question instead. Tip: If a Checkbox question is required, then Applicants must select at least one answer. For checkbox questions where an Applicant could have no answer, consider including a "None of these" option or making the checkbox question optional.

    Date

    Suitable for capturing dates. For example, date of birth, graduation date, employment start date.

    Dropdown

    Useful for long lists (>8 items) of static data where a single selection is required. For example, a daycare program restricted to certain daycare sites.

    Email

    An Applicant’s email address.

    Question types
    Manage versions for programs & questions.
    Manage versions for programs & questions.

    Enumerator

    /metrics
    HTTP route. While these metrics data are not sensitive, it is a good practice to prevent access to this route from the public internet (which is done by default when using the
    ).

    Viewing metrics

    AWS

    The CiviForm terraform deployment system for AWS deploys the monitoring stack automatically. After deployment, user access to the Grafana dashboard and configuration of the dashboard need to be done manually.

    Configure access

    AWS Managed Grafana uses AWS IAM Identity Center for access management.

    Note that this is a different service from AWS IAM. The accounts/user profiles in AWS IAM Identity Center are completely separate from accounts in AWS IAM.

    1. Login to the AWS console and navigate to the IAM Identity Center service

    2. In the left nav, click "Users"

    3. For each user you'd like to grant access to viewing metrics, click the "Add user" button and follow the workflow

    4. Follow instructions here for adding users to your Grafana workspace

    5. In AWS console for your Grafana workspace, grant permissions to the users you added for the workspace

    Configure dashboard

    Once you have an Identity Center user with permissions to administer your Grafana workspace, it's time to configure the workspace dashboard. From the Grafana workspace page in the AWS console, click the link under "Grafana workspace URL". After signing in this will take you to your Grafana workspace.

    To enable viewing metrics, add the Prometheus server as a data source for your Grafana workspace:

    1. In AWS console for your Grafana workspace, click on the 'Data sources' tab

    2. Click on the 'Configure in Grafana' link on the 'Amazon Managed Service for Prometheus' row

    3. Select the region where CiviForm is deployed

    4. Select the '[deployment name]-CiviForm_metrics' row

    5. Select 'add 1 data source'

    With Prometheus connected as a Grafana workspace, panels can now be created in Grafana that display metrics from the CiviForm server. There are many metrics available, and many ways to display them. You can get started with the some basic metrics by importing a pre-built CiviForm dashboard. This pre-built dashboard includes:

    • Requests per minute, split out by controller action

    • Requests per minute, split out by URL path pattern

    • Client errors (4XX status codes) per minute, split out by controller action and status code

    • Server errors per minute (500 status code), split out by controller action

    • 50th percentile 5-minute trailing average request latency, split out by controller action

    • 90th percentile 5-minute trailing average request latency, split out by controller action

    • 99th percentile 5-minute trailing average request latency, split out by controller action

    • Database query counts and latency

    • Email send counts and latency

    • Address correction / lookup counts and latency (if address correction is enabled)

    To import this pre-built dashboard:

    1. Click on the "Data Sources" tab and select the Prometheus data source

    2. Change the Name value to PROMETHEUS_DATA

    3. Hover over the "+" icon in the left nav

    4. Click the "Import" option

    5. Paste into the "Import via panel JSON"

    6. Click "Load"

    7. Fill in the details for the imported dashboard, selecting your CiviForm prometheus instance for the data source

    Additional AWS monitoring

    In addition to the server metrics provided by Prometheus, there are some additional places within AWS you can go to see metrics.

    CloudWatch

    Dashboards

    CloudWatch has some default dashboards that allow you to see graphs with metrics on different parts of the deployment. Not all of these are relevant, but these can be helpful in seeing CPU utilization in RDS (CiviForm's PostgreSQL database) and ECS (server hosting), as well as requests to the ALB (load balancer), metrics about S3 (file storage), etc.

    Alarms

    AWS alarms allow you to see when metrics for an AWS service reach a given threshold, and can trigger an action, such as autoscaling.

    Some alarms are configured by default through the CiviForm deployment system, including the following:

    • ECS:

      • High CPU alarm

        • Related variables: ECS_MAX_CPU_THRESHOLD, ECS_MAX_CPU_EVALUATION_PERIOD, ECS_MAX_CPU_PERIOD, ECS_SCALE_TARGET_MAX_CAPACITY

      • Low CPU alarm

        • Related variables: ECS_MIN_CPU_THRESHOLD, ECS_MIN_CPU_EVALUATION_PERIOD, ECS_MIN_CPU_PERIOD, ECS_SCALE_TARGET_MIN_CAPACITY

    • RDS:

      • High CPU alarm

        • Related variables: RDS_CREATE_HIGH_CPU_ALARM, RDS_MAX_CPU_UTILIZATION_THRESHOLD

    When the ECS alarms get triggered, an autoscaling policy is set up for a task to be added or removed.

    For the RDS alarms, the field RDS_ALARM_EMAIL can be set for an email to be sent to the specified email when an alert gets triggered.

    There are also the following alarms that can be enabled for RDS, but aren't created by default:

    • Low CPU credit alarm

      • Related variables: RDS_CREATE_LOW_CPU_CREDIT_ALARM, RDS_LOW_CPU_CREDIT_BALANCE_THRESHOLD

    • Low disk burst alarm

      • Related variables: RDS_CREATE_LOW_DISK_BURST_ALARM, RDS_DISK_BURST_BALANCE_LOW_THRESHOLD

    • High memory swap usage alarm

      • Related variables: RDS_CREATE_SWAP_ALARM, RDS_HIGH_SWAP_USAGE_THRESHOLD

    • Anomalous connection count alarm

      • Related variables: RDS_CREATE_ANOMALY_ALARM, RDS_ANOMALY_BANDWIDTH

    • Maximum transaction IDs too high alarm

      • Related variable: RDS_CREATE_TRANSACTION_ID_WRAPAROUND_ALARM, RDS_MAX_USED_TRANSACTION_IDS_HIGH_THRESHOLD

    These alarms can be enabled by setting the first related variable listed to true in the civiform_config.sh file of the forked civiform-deploy repository.

    For each of the RDS alarms, the variables RDS_ALARM_EVALUATION_PERIOD and RDS_ALARM_STATISTIC_PERIOD also apply.

    These alarms can be viewed through the AWS management console by clicking All alarms in the CloudWatch menu.

    The related variables can be added to the civiform_config.sh file of the forked civiform-deploy repository to customize the alarm settings or disable / enable certain alarms.

    If there are other alarms that you wish to add, please let us know.

    RDS database metrics

    If you navigate to RDS in the AWS Console and click Databases in the navigation menu, you will see your database. In clicking on the database, you can see some basic metrics, like the current CPU percentage and activity. Additional metrics, which are the same as those in CloudWatch can be seen in the Monitoring section, and you can click other tabs (Logs, Configuration, etc.) to understand more about the Database configuration.

    Database customization variables, including the one for the instance class and storage amount can be added to the civiform_config.sh file of the forked civiform-deploy repository to customize the configuration.

    ECS metrics

    If you navigate to Elastic Container Service in the AWS Console and click Clusters in the menu, you'll see the CiviForm cluster. When you click on the service, you can see health metrics (similar to those in CloudWatch).

    In the Configuration section of the service, you can see current Auto Scaling policies.

    By default, there is a high and low CPU auto-scaling policy, which adds or removes a task if the CPU is higher / lower than the alarm thresholds (mentioned above).

    You can change the task and memory sizes by updating the variables ECS_TASK_CPU and ECS_TASK_MEMORY in the civiform_config.sh file of the forked civiform-deploy repository.

    Prometheus
    Grafana
    CiviForm terraform deployment system
    image
    Translate program applications into languages beyond English.

    Terraform deploy system

    Terraform is an infrastructure-as-code tool that allows you to define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. CiviForm provides Terraform configuration files that allow you to deploy CiviForm on AWS. Knowledge of Terraform is not required to run them, but reading the high-level Terraform overview may be useful.

    More detailed information on our deploy system can be found in our developer docs.

    Setup

    Outside configuration

    You will need some values that are configured outside of CiviForm before you start the setup. Some of the steps are optional, meaning that you can bring up a staging environment and get the app working without them, but they will need to be completed for production setup.

    • (Optional) Admin auth client_id, client_secret, and discovery_uri. See

    • (Optional) Applicant auth client_id, client_secret, and discovery_uri. See setting up the

    • Domain name for your deployment. For example civiform.mycity.gov

    Steps to run

    1. Fork the repo to your organization via the GitHub webpage.

    2. Clone the repo onto the machine you are deploying from. Ideally, this would be a shared instance that multiple people can log onto.

    3. Find the version that you want to deploy on .

    Note: If you are running bin/doctor or another command for a config file other than civiform_config.sh, you can specify that with the config flag (i.e. bin/doctor --config=civiform_staging_config.sh)

    Deploy

    1. Find the version that you want to deploy on .

    2. Update the CIVIFORM_VERSION value in civiform_config.sh.

    3. Run bin/deploy.

    Rotating the application secret

    The Play Framework used by CiviForm utilizes an . This key is used for signing session cookies and CSRF tokens, among other things. While this secret is secured storely by the deployment system, it's a good idea to rotate it periodically in order to mitigate the risk of a leaked secret.

    IMPORTANT: When the secret is rotated, all user sessions will be invalidated. This means that any guest users in the middle of an application that have not submitted it yet will lose that application, and any logged in users or admins will get logged out. It is recommended that this rotation happen at a low traffic time of day. You may also want to give users a warning before it happens.

    To rotate the secret, run bin/run, and enter the rotate_app_secret command. This will redeploy CiviForm, changing the secret key to a new, random value.

    Additionally, you should add export RANDOM_PASSWORD_LENGTH=64 to your civiform_config.sh file. The secret length was originally only 16 characters, and when CiviForm moves to using version 2.9 or later of the Play Framework, 32 will be the minimum.

    Troubleshooting

    Terraform fails with error "Provider produced inconsistent final plan"

    This error can happen when running bin/setup for the first time. If you see it, re-run bin/setup. This is a known Terraform .

    Terraform fails with other errors

    The deploy command is idempotent, so if it fails, try running it again. The setup command can also be re-run, but it may fail to destroy resources if the resources Terraform uses to track created resources are corrupted. If the script is failing to destroy resources, try running bin/run destroy on its own. If this fails, you may need to manually delete resources in your cloud provider's console. Once all resources are cleaned up, run bin/run destroy_backend_state_resources to cleanup up the corrupted backend state resources and then try running bin/setup again.

    If changes were made upstream, you can change the code in the checkout env, but will need to commit PRs to fix in the main repo.

    No such file or directory

    If you see error like "no such file or directory"

    The scripts expect you to be in specific directories. You probably need to cd into the checkout directory or the top level directory. If you are running setup/deploy/revert, you will need to be in the top level directory. If you are running a script like db-connection, you need to be in the checkout directory.

    Terraform fails with Error acquiring the state lock

    This situation can happen when exiting deployment scripts using "Ctrl-C". Terraform acquires a lock every time you run ./bin/deploy or ./bin/setup, and releases the lock at the end of the script. This helps to prevent concurrent infrastructure changes. If the deploy process exited outside of Terraform, the lock remains and needs to be force removed in order to run deploy again. The end of the error message will contain the LOCK_ID. To unlock, re-run either bin/deploy or bin/setup with FORCE_UNLOCK_ID set like this:

    Alternatively, it can be done by manually calling terraform like this:

    (AWS) Notes on using CloudShell for deployment

    It is an option to use CloudShell for doing deployments, but you should be aware that installations aren't persisted (see (FAQs)[https://aws.amazon.com/cloudshell/faqs/]), so it may be easier to use the AWS CLI.

    If you do choose to use CloudShell, you likely will need to install Java and Terraform.

    Java can be installed with sudo yum install java and terraform can be installed by following the under Linux / Amazon Linux.

    Helpful resources

    Requesting AWS certificate

    Follow . After your certificate is ready and validated, copy the ARN from your console and put it into the SSL_CERTIFICATE_ARN variable in your civiform_config.sh

    ARN has format of arn:aws:acm::<user_id>:certificate/<identifier>

    AWS deployment setup options

    Before going through the AWS deployment, it is helpful to understand how you plan to manage various deployments, if you plan to create multiple instances of CiviForm (i.e. staging, prod, etc.).

    By default, each deployment will have its own prefix, which allows you to distinguish the different ones from each other, but is a way of keeping deployments more separate from each other.

    Some benefits of using AWS environments are:

    • There is more separation between environments, which makes it easier to remove resources without worrying about causing any issues to another deployment environment

    • It is easier to see cost breakdowns by deployment

    A drawback to be aware of is that you'll have to create profiles in the AWS CLI and switch between the different profiles when doing deployments or, if using CloudShell, you'll have to do this in separate CloudShell for each environment.

    Setting up Azure AD

    The setup script prompts you to set up Azure AD. There are a few additional steps.

    In Azure Portal:

    • Go to Azure Active Directory -> App registrations

    • Click the tab for "All applications"

    • Find your app (staging-dynamic-heron for CiviForm Azure Staging)

    Use the menu on the left:

    • Authentication: setup the Redirect URI to be what the app expects: https://<custom_hostname>/callback/AdClient.

    • You will also need an admin group which creates CiviForm admins

    • Token configuration: To allow for CiviForm admins, you need to have Azure AD return the groups claim. Add the security groups claim (you can verify the groups claim is being returned by decoding the base64 token from the token you get back from Azure AD on the website-- if you preserve the log in the Chrome Dev Tool window it should be from https://<custom_hostname>/callback/AdClient)

    Access the database for emergency repair

    The CiviForm deployment system provides a mechanism for temporary and secure direct access to the production database via the

    For details on how to access the database with pgadmin visit the page.

    High disk queue depth alarm

    • Related variables: RDS_CREATE_HIGH_QUEUE_DEPTH_ALARM, RDS_DISK_QUEUE_DEPTH_HIGH_THRESHOLD

  • Low disk space alarm

    • Related variables: RDS_CREATE_LOW_DISK_SPACE_ALARM, RDS_DISK_FREE_STORAGE_LOW_THRESHOLD

  • Low freeable memory alarm

    • Related variables: RDS_CREATE_LOW_MEMORY_ALARM, RDS_LOW_MEMORY_THRESHOLD

  • the JSON here
    Export program image
    Import program image
    Screen Shot 2022-08-15 at 5 18 55 PM
    Screen Shot 2022-08-15 at 5 23 27 PM
    Screen Shot 2022-08-15 at 5 21 53 PM
    Screen Shot 2022-08-15 at 5 26 42 PM
    (AWS) ARN of an SSL certificate for load balancer. See requesting AWS certificate
  • (AWS) Decision around where deployments will live. See AWS deployment setup options

  • Copy the
    into civiform_config.sh and fill out the missing values. You can get a sense of required values depending on your cloud provider by looking at
    configs.
  • Run bin/doctor and install the dependencies.

  • Run bin/setup. What to expect:

    • Takes up to 20 minutes to run. Make sure you have time to allow the script to run to completion to avoid errors.

    • Terraform brings up resources in the cloud (database, network, server, etc).

    • Asks confirmation a few times before creating resources, listing everything that will be created.

    • Safe to re-run the script if it fails (re-runs will take longer because resources must be destroyed before being re-created).

    • The configuration values in civiform_config.sh represent the desired state of your CiviForm deployment. The bin/setup and bin/deploy commands work to make your cloud environment match the desired state. If a command fails, your cloud environment may not match the desired state. These commands are safe to retry if they fail. If a command is persistently failing, you can work with our on-call engineer to resolve the issue. Our on-call engineer .

  • setting up Azure AD for an example
    Authentication Providers
    civiform-deploy
    Github
    Github
    application secret key
    bug
    installation commands
    official documentation
    AWS Organizations
    pgadmin
    Production Database Access
    Screen Shot 2022-08-10 at 3 50 39 PM
    civiform_config.example.sh
    staging-aws
    Using enumerator questions & screens in a program.
    GeoJSON
    Map questions
    Using Markdown
    image

    Using enumerator questions & screens in a program

    CiviForm contains the enumerator question type that offers CiviForm Admins a specialized way of structuring their data. Repeated questions can be created for enumerator questions, which allows admins to ask the same question for each repeated entity the applicant lists for the enumerator question.

    An enumerator screen allows you to create repeated screens with repeated questions in them. In an enumerator screen, the applicant provides a list of repeated entities (for example, household members). Applicants can view each repeated screen for each repeated entity declared in the enumerator screen.

    For example, if a program needs to gather name and date of birth information for each of an applicant's children. You can create an enumerator screen with an enumerator question to list the applicant's children, and a repeated screen with the repeated questions for the name and date of birth. You can choose to put both the name and date of birth repeated questions in the same repeated screen, or create two repeated screens with one question in each screen.

    Enumerators do not store question data. Instead, each repeated question of the enumerator stores the data. An Applicant's answers to enumerator questions are only used to help Applicants track their answers within the repeated questions.

    A screen can only contain an enumerator when it’s the only question on the screen. Repeated screens are created from enumerator screens. An enumerator screen can be a repeated screen of another enumerator. An enumerator screen's repeated screen appears below the enumerator screen and is indented in the tree. Repeated screens display a label showing the screen they were copied from. When adding repeated screens, the enumerator question in the enumerator screen isn’t copied to the repeated screens.

    ./db-connection: line 2: cloud/aws/bin/lib.sh: No such file or directory
    ./db-connection: line 21: out::error: command not found
    FORCE_UNLOCK_ID="$LOCK_ID" ./bin/deploy
    terraform -chdir=checkout/cloud/aws/templates/aws_oidc force-unlock $LOCK_ID
    Create new questions in the shared question bank.

    Create an enumerator question

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar.

    3. Click Create new question and select Enumerator.

    4. Enter the information for the question. See table below for the enumerator question fields, along with the expected data input:

    5. Click Create. The new question appears in the list of questions.

    Create a repeated question

    Any question type can be a repeated question, including the enumerator type.

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Questions on the navigation bar.

    3. Click Create new question and select the question type you want to use.

    4. Enter the information for the question. See table below for the repeated question fields, along with the expected data input:

    5. Click Create. The new repeated question appears in the list of questions.

    Add an enumerator question to an enumerator screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Select an existing screen with no other questions (since a screen can only contain an enumerator when it’s the only question in the screen) or click Add screen.

    5. Add an enumerator question to the screen by selecting it from the question bank. The question appears within the screen and the “Create repeated screen” button is visible.

    6. (Optional) To modify a screen’s name and description, click Edit name and description.

    Add a repeated question to a repeated screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Locate an enumerator screen.

    5. Click Create repeated screen. The screen appears at the bottom of the repeated screens list for the enumerator screen.

    6. Add a repeated question to the screen by selecting it from the question bank. The question bank shows only the questions you can add to a screen, so if there are no questions available that means you need to create repeated questions. The question then appears within the screen.

    7. (Optional) To modify a screen’s name and description, click Edit name and description.


    IMPORTANT: You can only remove an enumerator question if there are no repeated screens. Similarly, you cannot delete an enumerator screen if there are repeated screens.

    Remove an enumerator from a screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Find the enumerator question within a screen you want to remove and select it. The question is removed from the screen and it returns to the question bank. The “Create repeated screen” button is also removed.

    Remove a repeated screen

    1. Sign in to CiviForm as a CiviForm Admin.

    2. Click Programs on the navigation bar and select a program.

    3. Click Edit > Manage questions.

    4. Find the repeated screen you want to remove and click Delete screen. The screen is removed from the program.


    Example: Use Enumerator Question to Collect Household Information

    Suppose you have a section on a program application form where applicants need to provide information about their household members.

    List of Household Members

    Name

    Birth Date

    Relationship

    Employment Status

    Example valid values: Relationship: "Head of Household", "Spouse", "Child", "Parent" Employment Status: "Employed", "Unemployed", "Retired", "Student"


    Steps to Collect Household Information

    Step 1: Create an Enumerator Question

    1. Go to the Questions tab and click "Create new question".

    2. Select "Enumerator" as the question type.

    3. Fill in the details:

    Field

    Value

    Question text

    List all members of your household

    Question help text

    Add any helpful text for the applicant

    Administrative identifier

    household_members

    Question enumerator

    Set to does not repeat since this is the top-level enumerator

    Question settings - Repeated entity type

    Household member

    This is the logical description of the repeated entity or the name that will appear when applicants add entities to or remove entities from the enumerator question. For example, setting this field to 'household member' would show: “add household member”, “remove household member”, “name of household member”, etc, on subsequent screens.

    1. Click Create.


    Step 2: Create Repeated Questions

    Now, create the repeated questions for each piece of information you want to collect about each entity (in this case, household member). For this example, we'll create repeated questions for:

    Name:

    1. Create a new question of type "Name".

    2. Fill in the details:

      • Question text: What is $this's full legal name?. (The $this token refers to the household member listed by the applicant.)

      • Administrative identifier: household_member_name

      • Question enumerator: household_members (This is the Administrative identifier of the Enumerator Question created in the previous step.)

    3. Click Create.

    Birth Date:

    1. Create a new question of type "Date".

    2. Fill in the details:

      • Question text: What is $this's date of birth?

      • Administrative identifier: household_member_birthdate

      • Question enumerator: household_members

    3. Click Create.

      Tip: By asking for the date of birth and not age directly, we can calculate the age, and the benefit is that the value of age is only valid at a specific point of time and becomes stale as time goes on, whereas a person's date of birth stays valid. This also makes for a slightly shorter application for the applicants as opposed to asking both questions.

    Relationship:

    1. Create a new question of type "Dropdown".

    2. Fill in the details:

      • Question text: What is $this's relationship to the applicant?

      • Administrative identifier: household_member_relationship

      • Dropdown options: "Head of Household", "Spouse", "Child", "Parent"

      • Question enumerator: household_members

    3. Click Create.

    Employment Status:

    1. Create a new question of type "Radio Button".

    2. Fill in the details:

      • Question text: What is $this's employment status?

      • Administrative identifier: household_member_employment_status

      • Radio button options: "Employed", "Unemployed", "Retired", "Student"

      • Question enumerator: household_members

    3. Click Create.


    Step 3: Add Enumerator and Repeated Questions to Screens

    1. Go to the Programs tab and select the program you're working on.

    2. Click Edit.

    3. Create a new screen or select an existing screen with no other questions.

      • A screen can only have an enumerator question if it is the only question on the screen.

    4. Add the enumerator question (List all members of your household) to this screen from the question bank.

    5. Click Create repeated screen to create a repeated screen associated with the enumerator screen.

      • Screen name: Household member details

      • Screen description: "Please add each household member's name, birth date, relationship, and employment status."

    6. Click "Add question" to the repeated questions for name, age, relationship, and employment status to the repeated screen.


    Step 4: Configure and Publish

    1. Modify screen names and descriptions as needed.

    2. Save your changes.

    3. Publish your draft program to make it available to applicants.


    Now, when applicants fill out this program:

    1. They will first be asked to list all household members.

    2. For each member listed, they will be presented with repeated questions to provide:

      • Name

      • Date of birth

      • Relationship

      • Employment status

    This allows you to collect comprehensive household information in a structured manner.

    responds to new issues in the CiviForm issue tracker
    image
    image
    image
    image
    image

    Field

    Expected data

    Question text

    The text displayed to the Applicant.

    For nested enumerators, the “$this” token is required.

    Question help text

    The help text displayed to the Applicant.

    If the question help text field is used, the “$this” token may be used for nested enumerators.

    Question enumerator

    Can be set to “does not repeat” or to another enumerator when using nested enumerators.

    Question settings

    Entity type: The repeated entity type that’s being enumerated. This should be a singular noun, not plural. For example, “Household member”, not “Household members”.

    Minimum entity count: The minimum number of answers the applicant must provide.

    Maximum entity count: The maximum number of answers the applicant may provide.

    Field

    Expected data

    Question text

    Enter the “$this” token to refer to the name of the repeated entity the Applicant will provide. For example, “Monthly income for $this”, or “$this’s monthly income”. The token appears as highlighted in the preview pane.

    For nested repeated questions, you can use “$this.parent” to refer to a higher-level repeated entity. For example, if the top-level enumerator is household members and the current enumerator is household member jobs, “Monthly income for $this.parent from $this” would be something like “Monthly income for Theresa from Hooli”.

    Question help text

    (Optional) If the question help text field is used, the “$this” token may be used.

    Question enumerator

    Select the enumerator this question should be a repeated question for.

    image

    v2.41.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    v2.39.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v2.36.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.1.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v2.34.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.4.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.6.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.9.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.5.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.11.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    The hex code value of the color to use as the primary branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    The hex code value of the color to use as the primary-dark branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    FASTFORWARD_ENABLED

    Admin writeable

    When enabled, existing draft applications will automatically be updated to use the latest version of a program when a newer version has been published.

    • Type: bool

    BULK_STATUS_UPDATE_ENABLED

    Admin writeable

    When enabled, admins will be able to select many applications for status updates

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    The hex code value of the color to use as the primary branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    The hex code value of the color to use as the primary-dark branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    DISABLED_VISIBILITY_CONDITION_ENABLED

    Admin writeable

    Enables the feature that allows programs to be disabled from CiviForm

    • Type: bool

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    FASTFORWARD_ENABLED

    Admin writeable

    When enabled, existing draft applications will automatically be updated to use the latest version of a program when a newer version has been published.

    • Type: bool

    BULK_STATUS_UPDATE_ENABLED

    Admin writeable

    When enabled, admins will be able to select many applications for status updates

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin readable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin readable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin readable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin readable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin readable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex

    v3.7.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin readable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin readable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    v3.14.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin readable

    Enables admin validation settings for date questions.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    v2.35.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    The hex code value of the color to use as the primary branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    The hex code value of the color to use as the primary-dark branding color of the website. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    FASTFORWARD_ENABLED

    Admin writeable

    When enabled, existing draft applications will automatically be updated to use the latest version of a program when a newer version has been published.

    • Type: bool

    BULK_STATUS_UPDATE_ENABLED

    Admin writeable

    When enabled, admins will be able to select many applications for status updates

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    v2.40.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    v3.18.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin readable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin readable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    MAP_QUESTION_ENABLED

    Admin writeable

    Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    LOGIN_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.

    • Type: bool

    v3.13.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    v3.12.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    v2.38.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    v3.2.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.15.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.17.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.8.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.16.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.3.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    v3.0.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin readable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin readable

    Enables admin validation settings for date questions.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    LOGIN_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin readable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin readable

    Enables admin validation settings for date questions.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    LOGIN_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin readable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin readable

    Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin readable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin readable

    Enables admin validation settings for date questions.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    LOGIN_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

      • `` should match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    Enables filtering programs by category on the homepage

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex

    v3.19.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin readable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    DURABLE_JOBS_MAP_REFRESH

    Server setting

    A boolean specifying whether or not to refresh map data for the CiviForm instance.

    • Type: bool

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin readable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    REMOVE_DOWNLOAD_FOR_PROGRAM_ADMINS_ENABLED

    Admin writeable

    Remove the CSV/JSON/PDF download capability for Program Admins.

    • Type: bool

    MAP_QUESTION_ENABLED

    Admin writeable

    Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    EXPANDED_FORM_LOGIC_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.

    • Type: bool

    LOGIN_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.

    • Type: bool

    ENUMERATOR_IMPROVEMENTS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables improvements which make it easier for admins to work with enumerators.

    • Type: bool

    v3.10.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.

    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color.

    • Type: string

    • Validation regular expression: (^#(?:[0-9a-fA-F]{3}){1,2}$)|^$

    • Regular expression examples:

      • #f12345

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the .

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    . ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the .

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework .

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s .

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s . These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the . If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for .

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    SECRET_KEY

    Managed secret

    The is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the .

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    Enables suffix dropdown field in name question.

    • Type: bool

    DATE_VALIDATION_ENABLED

    Admin writeable

    Enables admin validation settings for date questions.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    PROGRAM_SLUG_URLS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.

    • Type: bool

    YES_NO_QUESTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.

    • Type: bool

    MAP_QUESTION_ENABLED

    Server setting

    (NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.

    • Type: bool

    SETTINGS_CACHE_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.

    • Type: bool

    TRANSLATION_MANAGEMENT_IMPROVEMENT_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enables translation management improvement phase one

    • Type: bool

    API_BRIDGE_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables changes to support API Bridge

    • Type: bool

    v2.37.0

    Branding

    Configuration options for CiviForm branding.

    CIVIC_ENTITY_SMALL_LOGO_URL

    Admin readable

    Small logo for the civic entity used on the login page. Required.
    • Type: string

    WHITELABEL_CIVIC_ENTITY_SHORT_NAME

    Admin writeable

    The short display name of the civic entity, will use 'TestCity' if not set. Required.

    • Type: string

    HIDE_CIVIC_ENTITY_NAME_IN_HEADER

    Admin writeable

    Whether the WHITELABEL_CIVIC_ENTITY_SHORT_NAME should be hidden in the CiviForm header. This may be desired if the government name is included in the logo. Since northstar hides the logo on smaller screens, this will only hide the name if the logo is showing.

    • Type: bool

    WHITELABEL_CIVIC_ENTITY_FULL_NAME

    Admin writeable

    The full display name of the civic entity, will use 'City of TestCity' if not set. Required.

    • Type: string

    CIVIC_ENTITY_PRODUCTION_URL

    Admin writeable

    The URL to the civic entity's production CiviForm site.

    • Type: string

    FAVICON_URL

    Admin readable

    The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.

    • Type: string

    THEME_COLOR_PRIMARY

    Admin writeable

    A primary color is the color displayed most prominently across your website. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    THEME_COLOR_PRIMARY_DARK

    Admin writeable

    A darker version of your primary color can be applied to your website for some purposes. Enter the hex code for this color. Not ready for production use.

    • Type: string

    • Validation regular expression: ^#(?:[0-9a-fA-F]{3}){1,2}$

    • Regular expression examples:

      • #f12345 should match.

      • #c13 should match.

      • cccccc should not match.

    External Services

    Configures connections to external services the CiviForm server relies on.

    Applicant Identity Provider

    Configuration options for the applicant identity provider.

    CIVIFORM_APPLICANT_IDP

    Admin readable

    What identity provider to use for applicants. Required.

    • Type: string

    • Allowed values:

      • idcs

      • login-radius

      • generic-oidc

      • login-gov

      • auth0

      • disabled

    APPLICANT_REGISTER_URI

    Admin readable

    URI to create a new account in the applicant identity provider.

    • Type: string

    APPLICANT_PORTAL_NAME

    Admin writeable

    The name of the portal that applicants log into, used in sentences like 'Log into your APPLICANT_PORTAL_NAME account.' Required.

    • Type: string

    Oracle Identity Cloud Service

    Configuration options for the idcs provider.

    IDCS_CLIENT_ID

    Managed secret

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with IDCS. A Civiform instance is always the client.

    • Type: string

    IDCS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server, specifically for IDCS OIDC systems. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    IDCS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    Login Radius

    Configuration options for the login-radius provider

    LOGIN_RADIUS_API_KEY

    Server setting

    The API key used to interact with LoginRadius.

    • Type: string

    LOGIN_RADIUS_METADATA_URI

    Server setting

    The base URL to construct SAML endpoints, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_SAML_APP_NAME

    Server setting

    The name for the app, based on the SAML2 spec.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_NAME

    Server setting

    Name of the SAML2 keystore, used to store digital certificates and private keys for SAML auth.

    • Type: string

    LOGIN_RADIUS_KEYSTORE_PASS

    Server setting

    The password used the protect the integrity of the SAML keystore file.

    • Type: string

    LOGIN_RADIUS_PRIVATE_KEY_PASS

    Server setting

    The password used to protect the private key of the SAML digital certificate.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    APPLICANT_OIDC_PROVIDER_LOGOUT

    Server setting

    Enables central logout for both admin and applicant auth providers (despite the name).

    • Type: bool

    APPLICANT_OIDC_OVERRIDE_LOGOUT_URL

    Server setting

    By default the 'end_session_endpoint' from the auth provider discovery metadata file is used as the logout endpoint. However for some integrations that standard flow might not work and we need to override logout URL.

    • Type: string

    APPLICANT_OIDC_POST_LOGOUT_REDIRECT_PARAM

    Server setting

    URL param used to pass the post logout redirect url in the logout request to the auth provider. It defaults to 'post_logout_redirect_uri' if this variable is unset. If this variable is set to the empty string, the post logout redirect url is not passed at all and instead it needs to be hardcoded on the the auth provider (otherwise the user won't be redirected back to civiform after logout).

    • Type: string

    APPLICANT_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as “Auth0” or “LoginRadius”.

    • Type: string

    APPLICANT_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    APPLICANT_OIDC_CLIENT_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    APPLICANT_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    APPLICANT_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    APPLICANT_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    APPLICANT_OIDC_LOCALE_ATTRIBUTE

    Server setting

    The locale of the user, such as “en-US”.

    • Type: string

    APPLICANT_OIDC_EMAIL_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s email address.

    • Type: string

    APPLICANT_OIDC_FIRST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s first name.

    • Type: string

    APPLICANT_OIDC_MIDDLE_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s middle name.

    • Type: string

    APPLICANT_OIDC_LAST_NAME_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s last name.

    • Type: string

    APPLICANT_OIDC_NAME_SUFFIX_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s name suffix.

    • Type: string

    APPLICANT_OIDC_PHONE_NUMBER_ATTRIBUTE

    Server setting

    The OIDC attribute name for the user’s phone number.

    • Type: string

    Login.gov

    Configuration options for the login-gov provider

    LOGIN_GOV_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with Login.gov. A Civiform instance is always the client.

    • Type: string

    LOGIN_GOV_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider, specifically for Login.gov.

    • Type: string

    LOGIN_GOV_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    LOGIN_GOV_ACR_VALUE

    Server setting

    Authentication Context Class Reference requests. ial/1 is for open registration, email only. ial/2 is for requiring identity verification.

    • Type: string

    • Allowed values:

      • http://idmanagement.gov/ns/assurance/ial/1

      • http://idmanagement.gov/ns/assurance/ial/2

    Administrator Identity Provider

    Configuration options for the administrator identity provider.

    CIVIFORM_ADMIN_IDP

    Admin readable

    What identity provider to use for admins.

    • Type: string

    • Allowed values:

      • adfs

      • generic-oidc-admin

    Active Directory Federation Services

    Configuration options for the ADFS provider.

    ADFS_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers, specifically communicating with ADFS. A Civiform instance is always the client.

    • Type: string

    ADFS_SECRET

    Managed secret

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADFS_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with the IDCS auth provider.

    • Type: string

    ADFS_ADMIN_GROUP

    Server setting

    The name of the admin group in Active Directory, typically used to tell if a user is a global admin.

    • Type: string

    ADFS_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides. Scopes should be separated by a space.

    • Type: string

    AD_GROUPS_ATTRIBUTE_NAME

    Server setting

    The attribute name for looking up the groups associated with a particular user.

    • Type: string

    OpenID Connect

    Configuration options for the generic-oidc provider.

    ADMIN_OIDC_PROVIDER_NAME

    Server setting

    The name of the OIDC (OpenID Connect) auth provider (server), such as 'Auth0' or 'Okta'.

    • Type: string

    ADMIN_OIDC_CLIENT_ID

    Server setting

    An opaque public identifier for apps that use OIDC (OpenID Connect) to request data from authorization servers. A Civiform instance is always the client.

    • Type: string

    ADMIN_OIDC_CLIENT_SECRET

    Server setting

    A secret known only to the client (Civiform) and authorization server. This secret essentially acts as the client’s “password” for accessing data from the auth server.

    • Type: string

    ADMIN_OIDC_DISCOVERY_URI

    Server setting

    A URL that returns a JSON listing of OIDC (OpenID Connect) data associated with a given auth provider.

    • Type: string

    ADMIN_OIDC_RESPONSE_MODE

    Server setting

    Informs the auth server of the desired auth processing flow, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_RESPONSE_TYPE

    Server setting

    Informs the auth server of the mechanism to be used for returning response params from the auth endpoint, based on the OpenID Connect spec.

    • Type: string

    ADMIN_OIDC_USE_CSRF

    Server setting

    OIDC client should provide CSRF protection.

    • Type: bool

    ADMIN_OIDC_ID_GROUPS_ATTRIBUTE_NAME

    Server setting

    Name of attribute that provides the groups associated with an account.

    • Type: string

    ADMIN_OIDC_ADMIN_GROUP_NAME

    Server setting

    Name of group that indicates an account is a global admin.

    • Type: string

    ADMIN_OIDC_ADDITIONAL_SCOPES

    Server setting

    Scopes the client (CiviForm) is requesting in addition to the standard scopes the OpenID Connect spec provides.

    • Type: string

    Database

    Configures the connection to the PostgreSQL database.

    DATABASE_APPLY_DESTRUCTIVE_CHANGES

    Server setting

    If enabled, playframework down evolutions are automatically applied on server start if needed.

    • Type: bool

    DATABASE_CONNECTION_POOL_SIZE

    Server setting

    Sets how many connections to the database are maintained.

    • Type: int

    DB_JDBC_STRING

    Server setting

    The database URL.

    • Type: string

    DB_USERNAME

    Managed secret

    The username used to connect to the database.

    • Type: string

    DB_PASSWORD

    Managed secret

    The password used to connect to the database.

    • Type: string

    Thread pools

    Configures the Play framework thread pools.

    AKKA_DEFAULT_EXECUTOR

    Server setting

    Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'

    • Type: string

    FORK_JOIN_PARALLELISM_MIN

    Server setting

    Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_MAX

    Server setting

    Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'

    • Type: int

    FORK_JOIN_PARALLELISM_FACTOR

    Server setting

    The parallelism factor is used to determine thread pool size for the 'fork-join-executor' using the following formula: ceil(available processors * factor). Resulting size is then bounded by the parallelism-min and parallelism-max values.

    • Type: int

    THREAD_POOL_EXECUTOR_FIXED_POOL_SIZE

    Server setting

    The size of the thread pool for the 'thread-pool-executor' type. If not defined, this will use the default core and max pool sizes.

    • Type: int

    AKKA_THROUGHPUT

    Server setting

    The number of messages that are processed in a batch before the thread is returned to the pool. Set to 1 for as fair as possible.

    • Type: int

    AWS_REGION

    Server setting

    Region where the AWS SES service exists. If STORAGE_SERVICE_NAME is set to 'aws', it is also the region where the AWS s3 service exists.

    • Type: string

    GCP_REGION

    Server setting

    The GCP Region. If STORAGE_SERVICE_NAME is set to 'gcp', it is also the region where the GCP s3 compatible service exists.

    • Type: string

    SENDER_EMAIL_ADDRESS

    Server setting

    The email address used for the 'from' email header for emails sent by CiviForm. Required.

    • Type: string

    EMAIL_PROVIDER

    Server setting

    The provider to use for sending emails.

    • Type: string

    • Allowed values:

      • aws-ses

      • graph-api

    GRAPH_API_EMAIL_ACCOUNT

    Server setting

    The email or account ID that graph API should use to send the email.

    • Type: string

    Application File Upload Storage

    Configuration options for the application file upload storage provider

    STORAGE_SERVICE_NAME

    Server setting

    What static file storage provider to use.

    • Type: string

    • Allowed values:

      • s3

      • aws-s3

      • azure-blob

      • gcp-s3

    AWS_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    AWS_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    AWS_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    AWS_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    AZURE_STORAGE_ACCOUNT_NAME

    Server setting

    The azure account name where the blob storage service exists.

    • Type: string

    AZURE_STORAGE_ACCOUNT_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_CONTAINER_NAME

    Server setting

    Azure blob storage container name to store public files in.

    • Type: string

    AZURE_STORAGE_ACCOUNT_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to Azure blob storage.

    • Type: string

    AZURE_STORAGE_ACCOUNT_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.

    • Type: string

    AZURE_LOCAL_CONNECTION_STRING

    Server setting

    Allows local Azurite emulator to be used for developer deployments.

    • Type: string

    GCP_S3_BUCKET_NAME

    Server setting

    s3 bucket to store files in.

    • Type: string

    GCP_S3_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of files uploaded to s3.

    • Type: string

    GCP_S3_PUBLIC_BUCKET_NAME

    Server setting

    s3 bucket to store publicly accessible files in.

    • Type: string

    GCP_S3_PUBLIC_FILE_LIMIT_MB

    Server setting

    The max size (in Mb) of publicly accessible files uploaded to s3.

    • Type: string

    ESRI Address Validation

    Configuration options for the ESRI GIS client and address validation/correction feature.

    Address Correction

    Address Correction Settings

    ESRI_ADDRESS_CORRECTION_ENABLED

    Admin writeable

    Enables the feature that allows address correction for address questions.

    • Type: bool

    ESRI_FIND_ADDRESS_CANDIDATES_URL

    Admin readable

    [Deprecated: Switch to ESRI_FIND_ADDRESS_CANDIDATES_URLS] The URL CiviForm will use to call Esri’s findAddressCandidates service.

    • Type: string

    ESRI_FIND_ADDRESS_CANDIDATES_URLS

    Admin readable

    The list of URLs CiviForm will use to call Esri’s findAddressCandidates service. These are used sequentially and not all of them may need to be used for every correction. If any results have a score of 90 or higher, lower priority urls will not be called.

    • Type: index-list

    Service Area Validation

    Service Area Validation Settings

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ENABLED

    Admin writeable

    Enables the feature that allows for service area validation of a corrected address. ESRI_ADDRESS_CORRECTION_ENABLED needs to be enabled.

    • Type: bool

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_LABELS

    Admin readable

    Human readable labels used to present the service area validation options in CiviForm’s admin UI.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_IDS

    Admin readable

    The value CiviForm uses to validate if an address is in a service area.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_URLS

    Admin readable

    The URL CiviForm will use to call Esri’s map query service for service area validation.

    • Type: index-list

    ESRI_ADDRESS_SERVICE_AREA_VALIDATION_ATTRIBUTES

    Admin readable

    The attribute CiviForm checks from the service area validation response to get the service area validation ID.

    • Type: index-list

    General ESRI Settings

    ESRI_EXTERNAL_CALL_TRIES

    Admin readable

    The number of tries CiviForm will attempt requests to external Esri services.

    • Type: int

    ESRI_WELLKNOWN_ID_OVERRIDE

    Admin readable

    Forces calls to Esri services to use the specified spatial reference wellKnownId value for the coordinate system. If not set the default configuration from the Esri server is used. Setting this may be needed if using the results of the findAddressCandidates service return spatial references in a format different from one or more of the map query service endpoints.

    • Type: int

    ESRI_ARCGIS_API_TOKEN

    Server setting

    A secret token value from Esri's arcgis.com online service created by your arcgis.com account for accessing the API.

    • Type: string

    Email Addresses

    Configuration options for CiviForm email usage.

    SUPPORT_EMAIL_ADDRESS

    Admin writeable

    This email address is listed in the footer for applicants to contact support. Required.

    • Type: string

    IT_EMAIL_ADDRESS

    Admin writeable

    This email address receives error notifications from CiviForm when things break.

    • Type: string

    STAGING_PROGRAM_ADMIN_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the program administrator's email address. Required.

    • Type: string

    STAGING_TI_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the trusted intermediary's email address. Required.

    • Type: string

    STAGING_APPLICANT_NOTIFICATION_MAILING_LIST

    Server setting

    If this is a staging deployment, the application notification email is sent to this email address instead of the applicant's email address. Required.

    • Type: string

    Custom Text

    Text specific to a civic entity.

    COMMON_INTAKE_MORE_RESOURCES_LINK_TEXT

    Admin writeable

    The text for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    COMMON_INTAKE_MORE_RESOURCES_LINK_HREF

    Admin writeable

    The HREF for a link on the Common Intake confirmation page that links to more resources. Shown when the applicant is not eligible for any programs in CiviForm.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    SECRET_KEY

    Managed secret

    The secret key is used to sign Play's session cookie. This must be changed for production.

    • Type: string

    BASE_URL

    Admin readable

    The URL of the CiviForm deployment. Must start with 'https://' or 'http://'. Required.

    • Type: string

    • Validation regular expression: ^(http://|https://).+

    • Regular expression examples:

      • http://my-civiform.org should match.

      • https://my-civiform.org should match.

      • my-civiform.org should not match.

    STAGING_HOSTNAME

    Server setting

    DNS name of the staging deployment. Must not start with 'https://' or 'http://'.

    • Type: string

    • Validation regular expression: ^(?!http://|https://).+

    • Regular expression examples:

      • my-civiform.org should match.

      • http://my-civiform.org should not match.

      • https://my-civiform.org should not match.

    CIVIFORM_SUPPORTED_LANGUAGES

    Server setting

    The full list of languages available to CiviForm. These are the language that admins can choose from when adding translations for programs and applications, as well as the default list that applicants can choose from when specifying their language preference. See CIVIFORM_APPLICANT_ENABLED_LANGUAGES for further control over languages available to applicants.

    • Type: index-list

    CIVIFORM_APPLICANT_ENABLED_LANGUAGES

    Server setting

    If populated, this filters the languages that are visible to the applicant to just those in the list. This allows program admins to develop languages support for programs and questions, but not let the applicant use a language that is not yet ready.

    • Type: index-list

    CIVIFORM_TIME_ZONE_ID

    Admin readable

    A Java time zone ID indicating the time zone for this CiviForm deployment. All times in the system will be calculated in this zone. Default value is 'America/Los_Angeles' Required.

    • Type: string

    CIVIFORM_IMAGE_TAG

    Admin readable

    The tag of the docker image this server is running inside. Is added as a HTML meta tag with name 'civiform-build-tag'.

    • Type: string

    CIVIFORM_VERSION

    Admin readable

    The release version of CiviForm. For example: v1.18.0.

    • Type: string

    ALLOWED_IP_ADDRESSES_FOR_LOGOUT

    Admin readable

    IP addresses that are allowed to logout a user through the /logoutAllSessions endpoint. If configured, this will normally be the IP address(es) of the authentication provider. If not specified, all IP addresses are allowed.

    • Type: index-list

    CLIENT_IP_TYPE

    Admin readable

    Where to find the IP address for incoming requests. Default is "DIRECT" where the IP address of the request is the originating IP address. If "FORWARDED" then request has been reverse proxied and the originating IP address is stored in the X-Forwarded-For header.

    • Type: string

    • Allowed values:

      • DIRECT

      • FORWARDED

    NUM_TRUSTED_PROXIES

    Admin readable

    The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.

    • Type: int

    FILE_UPLOAD_ALLOWED_FILE_TYPE_SPECIFIERS

    Admin readable

    Specifies the allowed file types that can be uploaded. Uses any valid file type specifiers. Multiple are separated by commas. Default: "image/*,.pdf"

    • Type: string

    Observability

    Configuration options for CiviForm observability features.

    CIVIFORM_SERVER_METRICS_ENABLED

    Admin readable

    If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.

    • Type: bool

    MEASUREMENT_ID

    Admin readable

    The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.

    • Type: string

    Data Export API

    Configuration options for the CiviForm API.

    CIVIFORM_API_SECRET_SALT

    Managed secret

    A cryptographic secret salt used for salting API keys before storing their hash values in the database. This value should be kept strictly secret. If one suspects the secret has been leaked or otherwise comprised it should be changed and all active API keys should be retired and reissued. Default value is 'changeme'.

    • Type: string

    CIVIFORM_API_KEYS_BAN_GLOBAL_SUBNET

    Server setting

    When true prevents the CiviForm admin from issuing API keys that allow callers from all IP addresses (i.e. a CIDR mask of /0).

    • Type: bool

    CIVIFORM_API_APPLICATIONS_LIST_MAX_PAGE_SIZE

    Admin readable

    An integer specifying the maximum number of entries returned in a page of results for the applications export API.

    • Type: int

    Durable Jobs

    Configuration options for the CiviForm Job Runner.

    DURABLE_JOBS_POLL_INTERVAL_SECONDS

    Server setting

    An integer specifying the polling interval in seconds for the durable job system. A smaller number here increases the polling frequency, which results in jobs running sooner when they are scheduled to be run immediately, at the cost of more pressure on the database. Default value is 5.

    • Type: int

    DURABLE_JOBS_JOB_TIMEOUT_MINUTES

    Server setting

    An integer specifying the timeout in minutes for durable jobs i.e. how long a single job is allowed to run before the system attempts to interrupt it. Default value is 30.

    • Type: int

    DURABLE_JOBS_THREAD_POOL_SIZE

    Server setting

    The number of server threads available for the durable job runner. More than a single thread will the server execute multiple jobs in parallel. Default value is 1.

    • Type: int

    Session Management

    Configuration options for session management

    MAXIMUM_SESSION_DURATION_MINUTES

    Admin readable

    The amount of time, in minutes, that a session lasts. The default is 600 minutes, or 10 hours. Note that there isn't yet messaging on the frontend to notify a user when their session is expired.

    • Type: int

    SESSION_INACTIVITY_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the session inactivity timeout a user receives a warning that their session will expire. Default is 5.

    • Type: int

    SESSION_DURATION_WARNING_THRESHOLD_MINUTES

    Admin readable

    How many minutes before the maximum session duration timeout a user receives a warning that their session will expire. Default is 10.

    • Type: int

    SESSION_INACTIVITY_TIMEOUT_MINUTES

    Admin readable

    The number of minutes of inactivity before a session times out. Default is 30.

    • Type: int

    Feature Flags

    Configuration options to enable or disable optional features.

    ALLOW_CIVIFORM_ADMIN_ACCESS_PROGRAMS

    Admin writeable

    If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.

    • Type: bool

    STAGING_ADD_NOINDEX_META_TAG

    Server setting

    If this is a staging deployment and this variable is set to true, a robots noindex metadata tag is added to the CiviForm pages. This causes the staging site to not be listed on search engines.

    • Type: bool

    STAGING_DISABLE_DEMO_MODE_LOGINS

    Admin writeable

    If this is a staging or demo deployment and this variable is set to true, the 'DEMO MODE. LOGIN AS:' buttons are not shown on the login page. Warning: if you turn on this flag, you will need to log in through the admin authenticator to get back to this settings page

    • Type: bool

    API_GENERATED_DOCS_ENABLED

    Admin writeable

    Enables the API docs tab on CiviForm.

    • Type: bool

    VERSION_CACHE_ENABLED

    Server setting

    Enables caching for versions and their associated data.

    • Type: bool

    PROGRAM_CACHE_ENABLED

    Server setting

    Enables caching for programs and their associated data.

    • Type: bool

    QUESTION_CACHE_ENABLED

    Server setting

    Enables caching for questions and their associated data.

    • Type: bool

    ADMIN_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to admin identity provider.

    • Type: bool

    APPLICANT_OIDC_ENHANCED_LOGOUT_ENABLED

    Admin readable

    Enables populating more fields in OIDC logout requests to applicant identity provider.

    • Type: bool

    SUGGEST_PROGRAMS_ON_APPLICATION_CONFIRMATION_PAGE

    Admin writeable

    Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.

    • Type: bool

    SHOW_NOT_PRODUCTION_BANNER_ENABLED

    Admin writeable

    Enabling this will add a banner to the site to tell applicants this is not Production and that they shouldn't submit real applications. Configure the CIVIC_ENTITY_PRODUCTION_URL setting to also include a link to your production site.

    • Type: bool

    CUSTOMIZED_ELIGIBILITY_MESSAGE_ENABLED

    Admin writeable

    Enables civiform admins to set up a customized eligibility message per screen.

    • Type: bool

    Experimental

    These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.

    NO_DUPLICATE_QUESTIONS_FOR_MIGRATION_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Ensures duplicate questions aren't created when migrating programs between deployed environments. Note: this should only be used on new environments, since existing programs will be modified if a program with the same question gets imported.

    • Type: bool

    PROGRAM_FILTERING_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage

    • Type: bool

    NAME_SUFFIX_DROPDOWN_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.

    • Type: bool

    SESSION_REPLAY_PROTECTION_ENABLED

    Admin readable

    (NOT FOR PRODUCTION USE) Enable session replay protection, so that a session cookie cannot be replayed if the user logs out

    • Type: bool

    NORTH_STAR_APPLICANT_UI

    Admin writeable

    (NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows

    • Type: bool

    SESSION_TIMEOUT_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.

    • Type: bool

    CUSTOM_THEME_COLORS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.

    • Type: bool

    EXTERNAL_PROGRAM_CARDS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.

    • Type: bool

    IMPORT_DUPLICATE_HANDLING_OPTIONS_ENABLED

    Admin writeable

    (NOT FOR PRODUCTION USE) Enable options for handling duplicate questions when importing/migrating programs: create a duplicate, use the existing question, or overwrite the existing question.

    • Type: bool

    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex
    should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • should match.
  • #c13 should match.

  • cccccc should not match.

  • `` should match.

  • generic-oidc

  • login-gov

  • auth0

  • disabled

  • azure-blob

  • gcp-s3

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • https://my-civiform.org should match.

  • my-civiform.org should not match.

  • should match.
  • http://my-civiform.org should not match.

  • https://my-civiform.org should not match.

  • favicon
    applicant identity provider
    idcs
    login-radius
    generic-oidc
    central logout
    login-gov
    Authentication Context Class Reference requests
    administrator identity provider
    ADFS
    generic-oidc
    playframework down evolutions
    thread pools
    default
    Azurite emulator
    findAddressCandidates service
    findAddressCandidates service
    map query service
    coordinate system
    CiviForm email usage
    secret key
    time zone ID
    file type specifiers
    CiviForm API
    secret salt
    robots noindex