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...
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...
Loading...
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
Below are good docs to start learning about 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.
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).
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.
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.

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:
Navigate to the programs page by clicking Programs in the navigation bar.
Click the Download Demographic Data (CSV) button.
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.
Click the Download Demographic Data (CSV) to begin the export.
You will see the CSV file downloaded onto your computer.
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.
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 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:
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
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":
CiviForm Admin need to go to Programs list and click "Manage Program Admins" on "Solar program". Then add [email protected] as admin.
Alice needs to log in to CiviForm using "Admin login" flow. Logging in using applicant flow won't work.
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
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
By default, CiviForm sends Program Admins an email every time an application is submitted to a program they manage.
To change this:
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
Click Edit for the program you would like to edit notification settings for.
Under Email Notifications, select or unselect Send Program Admins an email notification every time an application is submitted.
Save and publish the program.
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.
Housing
Transportation
Sign in to CiviForm as a CiviForm admin.
On the Program List Page, find the program that needs categories.
Click the 3-dots menu to the right.
Select Edit.
Click Edit program details.
Scroll to the section that says "Tag this program with 1 or more categories to make it easier to find".
Select one or more of the category checkboxes.
Scroll to the bottom of the page and click Save.
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.
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.
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.
Tip: To retrieve a list of all programs, click Download Exported Data (CSV) at the bottom of the Programs page.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
Click Create new program.
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.
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 .
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
Click
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).
Sign in to CiviForm as a Program Admin.
Click Applications for the program you want to review. You’re presented with a paginated list of applications.
Locate the form you want to analyze and click View.
Sign in to CiviForm as a Program Admin.
Click Applications for the program you want to review. You’re presented with a paginated list of applications.
Under Applications for other versions, locate the version number you want to examine.
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.
Sign in to CiviForm as a Program Admin.
Click Applications for the program you want to review. You’re presented with a paginated list of applications.
Locate the form you want and click View.
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.
Watch the video below or follow the step-by-step guide to learn how to manage Program Admins in CiviForm.
Navigate to the programs page by clicking Programs in the nav bar.
Locate the program you'd like to manage Program Admins for in the list of programs.
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.
Click Manage Program Admins.
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.
You can also remove someone as a Program Admin from this screen by clicking on the Delete button.
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 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:
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.
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 .
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.
Watch the video or follow the step-by-step guide below.
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
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.
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.
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:
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
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.
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.
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 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.
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.
Any details are fine, the challenges do not need to be technology-related.
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:
"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.
CiviForm provides administrators with metadata about programs and applications, enabling actionable insights that can improve residents' experience in accessing programs.
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.
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:
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.
Locate the form you want to analyze and click View.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select the program for which you would like to add statuses.
Click the three dots on the right side of a draft program.
Click Manage Statuses.
Click Create a New Status.
Enter your status name and (optional) any email text you would like the applicant to receive upon the status change.
Repeat steps 5-6 for all statuses you would like to create.
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:
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and find the program you are interested in.
Click Edit on the right side of the program.
Click Programs on the navigation bar to return to the programs page, where you will now see a Draft version of your program.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select the program for which you would like to modify a status.
Click the three dots on the right side of the program.
Click Manage Statuses.
Click Edit or Delete.
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.
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
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
For example, if you are a city, residents may still want to find and access county or state 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?
For example: Is there a specific focus on reducing burdens for residents, expanding access to specific programs, or supporting specific populations?
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?
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.
Here are key sources for accessing reporting information in CiviForm.
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.
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.
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.
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.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
Locate the program you'd like to update.
Click on the three dots to open the dropdown menu for that program.
Click Edit to create a draft version of the program.
Modify the program information fields, edit questions, etc. Note: You can’t edit the internal Program Name field.
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar and select a question.
Click Edit to create a draft version of the question.
Modify the question information fields.
Click Update.
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.
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.
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.
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.
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.
The CiviForm admin creates API keys in the admin UI. To create a new key:
Login as a CiviForm admin
Click 'API keys' in the top nav
Click 'New API key'
Follow the on-page instructions for creating a key
Click 'Create'
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.
"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).
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.
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.
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 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.
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.
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.
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.
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.
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).
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.
(Optional) To modify a screen’s name and description, click Edit name and description.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program you created.
Click Edit.
Modify the program information fields.
Click Save.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
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.
If you have more than one screen in your program, you can organize the screens within the screen tree.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
To reorder the list, select the screen you want to move and click the up or down arrow.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
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.
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.
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.
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.
Instead of publishing all programs and questions at the same time, you can also publish just a single draft program.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
Locate the draft program you'd like to publish.
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.
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.
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!
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 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 (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])
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.
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.
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.
An authentication provider for administrators (including client_id, client_secret, and discovery_uri details).
An authentication provider for applicants (including client_id, client_secret, and discovery_uri details).
Two domain names for your deployment (one for a staging environment, and one for the production environment).
Government logo images for branding
A support email address to display on the site
An understanding of which of your via CiviForm's API.
SSL certificates for domain names and/or load balancers.
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 (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:



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.
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.
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.
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.
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.
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.
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.
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.
Sign in to CiviForm as a CiviForm admin.
Click Programs on the navigation bar.
Click Create a new program.
Fill out all of the program details and check the Set program as pre-screener
Sign in to CiviForm as a CiviForm admin.
Click Programs on the navigation bar.
Click Edit for the program you would like to set as the pre-screener.
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.
Sign in to CiviForm as a CiviForm admin or Program admin.
Click Programs on the navigation bar.
The pre-screener will be labeled. If no program has the pre-screener label, there is no pre-screener currently set.
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
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.
Sign in to CiviForm as a Trusted Intermediary. This will take you to your dashboard.
Click the button on the right side of the page that says Add new client.
Fill in the new client form and click Save.
Now you can either click Start an application or Back to client list.
Sign in to CiviForm as a Trusted Intermediary. This will take you to your dashboard.
Here you will see a list of all your clients. You can search for your client by name or date of birth.
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.
Find the program you want to apply to and click
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.
Sign in to CiviForm as a CiviForm Admin.
Click Intermediaries on the navigation bar.
Enter information for the group (Note: The group name should be unique).
Click Create. The new group appears in the list of groups.
Note: Once the Trusted Intermediary Group field is set, it cannot be edited.
Sign in to CiviForm as a CiviForm Admin.
Click Intermediaries on the navigation bar and select a Trusted Intermediary Group.
Click Edit.
Enter the work email address of the staff member you wish to add.
Sign in to CiviForm as a CiviForm Admin.
Click Intermediaries on the navigation bar.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Intermediaries on the navigation bar.
Select a Trusted Intermediary Group and click Edit.
Select a Trusted Intermediary and click Delete
Note: Deleting a Trusted Intermediary doesn’t remove the program applications submitted by the group member.
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.
At a high level, most authentication setups will involve:
Some setup through the authentication provider's website
Adding configuration values into the config.sh file of the deployment
Updating AWS Secrets Manager with the client ID and secret values
Okta and generic OIDC: follow steps
Azure AD and ADFS : follow steps
Generic OIDC: follow steps
Auth0: follow steps
Google Identity: follow steps
Login.gov: follow steps
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 ()
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.
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.
To detect the public IP of a host running a web browser, visit https://checkip.amazonaws.com.
Run ./bin/run
When prompted for a command to run, enter pgadmin
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'.
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.
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
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.
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:
Sign in to CiviForm as a CiviForm admin.
Select Settings on the navgiation bar.
Enable EXTERNAL_PROGRAM_CARDS_ENABLED.
Sign in to CiviForm as a CiviForm admin.
Click Programs on the navigation bar.
Click Create a new program.
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.
Sign in to CiviForm as a CiviForm admin.
Click Programs on the navigation bar.
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.
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
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.
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.
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
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.
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:
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:
Set the Field data type.
Set the Operator value.
Enter the Value.
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.
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.
Click Edit existing visibility condition.
Follow steps in "Add a visibility condition" for configuring the condition.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Select a screen with a visibility condition and click Edit visibility condition.
Click Remove condition visibility condition.
Click Return to edit screen #.
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.
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.
Login Radius: follow steps here
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 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.
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.
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.
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.
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.
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.
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.
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.





Add questions to the pre-screener as normal.
Check the Set program as pre-screener checkbox.

Click Add. The new staff member appears in the list of groups.
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
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.
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.
You can see the task configuration by clicking on the Task definition tab, finding the latest revision, and opening the JSON tab.
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.
Implement: Work with program administrators to create a better experience for applicants and staff.
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.
Impact measurement and reporting
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.
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.
For simplicity, we recommend having a single email address for staging and use it in all the variables listed above.
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.
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.
If you wish to use a no-reply address with no ability to receive emails, there are two options:
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.
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.
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:
Open the CiviForm site as an applicant and send email to the technical support email address provided in the footer.
Create a program with a status that has email content.
Apply as an applicant.
Program Admin and applicant (and TI if present) should receive the email.
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.
Check the ECS logs
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
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.
Click the three dots button on the right-hand side.
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar and select an unpublished question.
Click Manage draft translations.
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.
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.
Follow the instructions to .
Right click the postgres database and choose Backup.
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.
When complete, in the top menu bar, click Tools -> Storage Manager.
Choose the file you just created, then click the download button.
Save this file in a secure location.
If your backup file is larger than 50MB, go to File -> Preferences -> Storage -> Options and change the maximum file upload size appropriately.
In the top menu bar, click Tools -> Storage Manager.
Click the Options button and choose Upload, then upload your backup file.
Right click the postgres database and choose Restore.
Under Filename, choose the file you just uploaded. In the Query Options tab, select Clean before restore. Then click Restore.
Inspect the tables under postgres -> Schemas -> Tables to verify the data was restored properly.
dumpdb and restoredb commandsThis 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.
From your clone of the civiform-deploy repo, run bin/run.
Enter the dumpdb command and follow the prompts.
From your clone of the civiform-deploy repo, run bin/run.
Enter the restoredb command and follow the prompts.
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.
Any details are fine, the challenges do not need to be technology-related.
Include websites, community organizations, or other channels.
Include websites, electronic forms, paper forms, community organizations, program offices, or other channels.
For example, from program staff, call centers, community organizations, social workers, or others.
Share a link to the form or application, or share the questions directly here.
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):
Resident discovers program through local community group
Resident fills out application X via website at www.example.com with help from local staff member (30 minutes)
Resident comes into program office to drop off paper form (30 minutes)
Paper form is prepared for processing by program staff in X group (once daily)
Processing (X days total):
Program staff is assigned an application to process (once daily)
Program staff begins processing application within X days after submission
Program staff from group A enters information into computer system Y
Program staff cross-references data in systems Y and Z
Delivery (X days total):
Approved application is marked for delivery in system A (once per application manually, 10 minutes)
Data is exported from system A to system B for fulfillment (once daily for all applications automatically)
Benefits are delivered through mail (X days)
(feel free to adjust these section categories or use your own)
Discovery and application (X minutes total):
...
...
...
Processing (X days total):
...
...
...
Delivery (X days total):
...
...
...
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.
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.
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 add an eligibility condition for and click Edit eligibility condition.
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.
For each question in your condition:
Set the Field data type.
Set the Operator value.
Enter the Value.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
Click Edit for the program you would like to edit a condition for.
Select a screen you wish to edit an eligibility condition for and click
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Select a screen with an eligibility condition and click Edit eligibility condition.
Click
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.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar.
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.
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.
This guide assumes there has already been an initial setup of the system as outlined in the .
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.
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.
Verify that deployment tool is correctly setup by running run bin/doctor --config=NEWCONFIGFILE
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.
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.
Go to AWS Route53
Go to Hosted zones
Click the Hosted zone name link for the site you just restored
Select the A
Verify you can log in as an admin and an applicant
Check Cloudwatch for errors
The newly restored environment is now up and running.
Remove the POSTGRES_RESTORE_SNAPSHOT_IDENTIFIER from the config file.
Going forward with new deployments you will continue to use this new file.
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.
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:
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.
Each program on the program dashboard page has a menu item that says “Export program”.
Click this to be taken to the program export page for that program.
From there you will have the option to download or copy a json representation of the program.
Program export works for programs that are in draft or active mode. Either way they will be imported as drafts into the new environment.
Look for the “Import existing program” link on the program dashboard page.
Click this link to be taken to the program import page and follow the instructions there to import a program.
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
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.
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.
Click Edit existing eligibility condition.
Follow steps in "Add an eligibility condition" for configuring the condition.
Click Return to edit screen #.
The eligibility condition is removed from both the Eligibility Condition page and to the screen.
Click Settings.
Click on the toggle to set eligibility to the desired behavior.
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.
Look for "Engine version" to get the value for POSTGRESQL_VERSION.
Wait as setup runs
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









Click Manage translations in the dropdown menu.
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.
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.
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.
"pre-screener" setting on a program
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.
Expand each heading below to learn more about features for applicants.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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?
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.
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.
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.
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.
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.
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.
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
🟡
🟡
🟡









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.
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.
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.
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.
A publicly accessible HTTP endpoint that provides location data in the GeoJson format
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.
When creating a map question, admins must configure:
GeoJSON Endpoint URL
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:
Select facility_name as the name key field
Select location as the address key field
Select more_info_link as the view more details URL field
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:
Click Add filter when configuring the map question
Select the Key that contains the filter values (e.g., "wheelchair_accessible", "service_type", "language_support")
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
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:
Click Add tag when configuring the map question
Select the Key for CiviForm to monitor (e.g., "capacity", "status", "requires_appointment")
Enter the Value that triggers the tag (e.g., "limited", "closed", "true")
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
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:
Set durable_jobs.map_refresh=true in your application configuration
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).
The map question supports:
Required vs optional selection
Maximum number of selections
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
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
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
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)
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)
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
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
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.
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.
Before any specific program can use address correction, it must be enabled for your deployment as a whole.
Set to true.
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"
Optional, but recommended. Set which forces the service calls to return spatial references using the specified wellknown id value for their coordinate system.
findAddressCandidates response formatCiviform 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.
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.
Call arcgis.com to correct address, returns coordinates using wellKnownId 4326
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.
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.
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 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.
Set to true. Note that ESRI_ADDRESS_CORRECTION_ENABLED must also be set to true.
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".
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.
- Integer
The number of tries CiviForm will attempt requests to external Esri services.
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.
Watch the video or follow the step-by-step guide below.
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar.
Click Create new question and select a question type. For more details on question types, go to .
Enter the information for the question.
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.
You can edit both unpublished and published questions. To edit published questions, you need a new version. For more details on versioning, go to
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar and select a question.
Click Edit draft.
Modify the question information fields.
If a question is no longer in use by any program, you can archive a question.
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar and select a question.
Click Archive.
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
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar and select an archived question.
Click Restore archived.
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.
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.

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.
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




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")
wheelchair_accessibleOptionally add a tag for locations where capacity equals "limited"
Optionally, write an alert message that will be displayed to applicants that select those locations






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.



{
"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.
An Applicant’s email address.
Enumerator
/metricsThe 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.
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.
Login to the AWS console and navigate to the IAM Identity Center service
In the left nav, click "Users"
For each user you'd like to grant access to viewing metrics, click the "Add user" button and follow the workflow
Follow instructions here for adding users to your Grafana workspace
In AWS console for your Grafana workspace, grant permissions to the users you added for the workspace
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:
In AWS console for your Grafana workspace, click on the 'Data sources' tab
Click on the 'Configure in Grafana' link on the 'Amazon Managed Service for Prometheus' row
Select the region where CiviForm is deployed
Select the '[deployment name]-CiviForm_metrics' row
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:
Click on the "Data Sources" tab and select the Prometheus data source
Change the Name value to PROMETHEUS_DATA
Hover over the "+" icon in the left nav
Click the "Import" option
Paste into the "Import via panel JSON"
Click "Load"
Fill in the details for the imported dashboard, selecting your CiviForm prometheus instance for the data source
In addition to the server metrics provided by Prometheus, there are some additional places within AWS you can go to see metrics.
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.
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.
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.
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.


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.
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
Fork the repo to your organization via the GitHub webpage.
Clone the repo onto the machine you are deploying from. Ideally, this would be a shared instance that multiple people can log onto.
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)
Find the version that you want to deploy on .
Update the CIVIFORM_VERSION value in civiform_config.sh.
Run bin/deploy.
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.
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 .
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.
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.
Error acquiring the state lockThis 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:
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.
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>
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.
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)
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







(AWS) Decision around where deployments will live. See AWS deployment setup options
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 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 .

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 foundFORCE_UNLOCK_ID="$LOCK_ID" ./bin/deployterraform -chdir=checkout/cloud/aws/templates/aws_oidc force-unlock $LOCK_IDSign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar.
Click Create new question and select Enumerator.
Enter the information for the question. See table below for the enumerator question fields, along with the expected data input:
Click Create. The new question appears in the list of questions.
Any question type can be a repeated question, including the enumerator type.
Sign in to CiviForm as a CiviForm Admin.
Click Questions on the navigation bar.
Click Create new question and select the question type you want to use.
Enter the information for the question. See table below for the repeated question fields, along with the expected data input:
Click Create. The new repeated question appears in the list of questions.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
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.
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.
(Optional) To modify a screen’s name and description, click Edit name and description.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
Locate an enumerator screen.
Click Create repeated screen. The screen appears at the bottom of the repeated screens list for the enumerator screen.
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.
(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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
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.
Sign in to CiviForm as a CiviForm Admin.
Click Programs on the navigation bar and select a program.
Click Edit > Manage questions.
Find the repeated screen you want to remove and click Delete screen. The screen is removed from the program.
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"
Step 1: Create an Enumerator Question
Go to the Questions tab and click "Create new question".
Select "Enumerator" as the question type.
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.
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:
Create a new question of type "Name".
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.)
Click Create.
Birth Date:
Create a new question of type "Date".
Fill in the details:
Question text: What is $this's date of birth?
Administrative identifier: household_member_birthdate
Question enumerator: household_members
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:
Create a new question of type "Dropdown".
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
Click Create.
Employment Status:
Create a new question of type "Radio Button".
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
Click Create.
Step 3: Add Enumerator and Repeated Questions to Screens
Go to the Programs tab and select the program you're working on.
Click Edit.
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.
Add the enumerator question (List all members of your household) to this screen from the question bank.
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."
Click "Add question" to the repeated questions for name, age, relationship, and employment status to the repeated screen.
Step 4: Configure and Publish
Modify screen names and descriptions as needed.
Save your changes.
Publish your draft program to make it available to applicants.
Now, when applicants fill out this program:
They will first be asked to list all household members.
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.


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.



Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
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
Admin writeable
When enabled, admins will be able to select many applications for status updates
Type: bool
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
Enables the feature that allows programs to be disabled from CiviForm
Type: bool
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
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
Admin writeable
When enabled, admins will be able to select many applications for status updates
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
Admin writeable
(NOT FOR PRODUCTION USE) Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin readable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin readable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin readable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin readable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables admin validation settings for date questions.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin readable
Enables admin validation settings for date questions.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
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
Admin writeable
When enabled, admins will be able to select many applications for status updates
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
Admin writeable
(NOT FOR PRODUCTION USE) Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin readable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin readable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
Admin writeable
Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin readable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin readable
Enables admin validation settings for date questions.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin readable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin readable
Enables admin validation settings for date questions.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin readable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
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
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin readable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin readable
Enables admin validation settings for date questions.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enables filtering programs by category on the homepage
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
#c13 should match.
cccccc should not match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin readable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Server setting
A boolean specifying whether or not to refresh map data for the CiviForm instance.
Type: bool
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin readable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Remove the CSV/JSON/PDF download capability for Program Admins.
Type: bool
Admin writeable
Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new visibility/eligibility condition editing UI and expanded logic capabilities for admin.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables new dropdown for login that has both applicant and admin login.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables improvements which make it easier for admins to work with enumerators.
Type: bool
Configuration options for CiviForm branding.
Admin readable
Small logo for the civic entity used on the login page. Required.
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel image, in GIF, PNG, or ICO format.
Type: string
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
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
Configures connections to external services the CiviForm server relies on.
Configuration options for the .
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the .
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework .
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for .
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when there is an internal server error or a durable job fails.
Type: string
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
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
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
Text specific to a civic entity.
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
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
Managed secret
The is used to sign Play's session cookie. This must be changed for production.
Type: string
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
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
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
Admin readable
Specifies the allowed file types that can be uploaded. Uses any valid . Multiple are separated by commas. Default: "image/*,.pdf"
Type: string
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the .
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
Admin writeable
Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
Enables suffix dropdown field in name question.
Type: bool
Admin writeable
Enables admin validation settings for date questions.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Use program slugs instead of program IDs in URLs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables being able to add a new yes/no question.
Type: bool
Server setting
(NOT FOR PRODUCTION USE) Enable allowing CiviForm admins to add a map question to their programs.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables reading settings from the cache instead of directly from the database.
Type: bool
Admin readable
(NOT FOR PRODUCTION USE) Enables translation management improvement phase one
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables changes to support API Bridge
Type: bool
Type: string
Admin writeable
The short display name of the civic entity, will use 'TestCity' if not set. Required.
Type: string
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
Admin writeable
The full display name of the civic entity, will use 'City of TestCity' if not set. Required.
Type: string
Admin writeable
The URL to the civic entity's production CiviForm site.
Type: string
Admin readable
The URL of a 32x32 or 16x16 pixel favicon image, in GIF, PNG, or ICO format.
Type: string
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.
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.
Configures connections to external services the CiviForm server relies on.
Configuration options for the applicant identity provider.
Admin readable
What identity provider to use for applicants. Required.
Type: string
Allowed values:
idcs
login-radius
generic-oidc
login-gov
auth0
disabled
Admin readable
URI to create a new account in the applicant identity provider.
Type: string
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
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
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
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
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
Configuration options for the administrator identity provider.
Admin readable
What identity provider to use for admins.
Type: string
Allowed values:
adfs
generic-oidc-admin
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
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
Configures the connection to the PostgreSQL database.
Server setting
If enabled, playframework down evolutions are automatically applied on server start if needed.
Type: bool
Server setting
Sets how many connections to the database are maintained.
Type: int
Server setting
The database URL.
Type: string
Managed secret
The username used to connect to the database.
Type: string
Managed secret
The password used to connect to the database.
Type: string
Configures the Play framework thread pools.
Server setting
Determines which kind of ExecutorService to use for the default dispatcher. The default is 'fork-join-executor'
Type: string
Server setting
Min number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
Server setting
Max number of threads to cap factor-based parallelism number to for the 'fork-join-executor'
Type: int
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
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
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
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
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
Server setting
The email address used for the 'from' email header for emails sent by CiviForm. Required.
Type: string
Server setting
The provider to use for sending emails.
Type: string
Allowed values:
aws-ses
graph-api
Server setting
The email or account ID that graph API should use to send the email.
Type: string
Configuration options for the application file upload storage provider
Server setting
What static file storage provider to use.
Type: string
Allowed values:
s3
aws-s3
azure-blob
gcp-s3
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Server setting
The azure account name where the blob storage service exists.
Type: string
Server setting
Azure blob storage container name to store files in.
Type: string
Server setting
Azure blob storage container name to store public files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to Azure blob storage.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to Azure blob storage.
Type: string
Server setting
Allows local Azurite emulator to be used for developer deployments.
Type: string
Server setting
s3 bucket to store files in.
Type: string
Server setting
The max size (in Mb) of files uploaded to s3.
Type: string
Server setting
s3 bucket to store publicly accessible files in.
Type: string
Server setting
The max size (in Mb) of publicly accessible files uploaded to s3.
Type: string
Configuration options for the ESRI GIS client and address validation/correction feature.
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 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
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
Configuration options for CiviForm email usage.
Admin writeable
This email address is listed in the footer for applicants to contact support. Required.
Type: string
Admin writeable
This email address receives error notifications from CiviForm when things break.
Type: string
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
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
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
Text specific to a civic entity.
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
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.
Managed secret
The secret key is used to sign Play's session cookie. This must be changed for production.
Type: string
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.
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.
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
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
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
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
Admin readable
The release version of CiviForm. For example: v1.18.0.
Type: string
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
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
Admin readable
The count of reverse proxies between the internet and the server. In typical deployments, this value is 1.
Type: int
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
Configuration options for CiviForm observability features.
Admin readable
If enabled, allows server Prometheus metrics to be retrieved via the '/metrics' URL path. If disabled, '/metrics' returns a 404.
Type: bool
Admin readable
The Google Analytics tracking ID. If set, Google Analytics JavaScript scripts are added to the CiviForm pages.
Type: string
Configuration options for the CiviForm API.
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
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
Admin readable
An integer specifying the maximum number of entries returned in a page of results for the applications export API.
Type: int
Configuration options for the CiviForm Job Runner.
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
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
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
Configuration options for session management
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
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
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
Admin readable
The number of minutes of inactivity before a session times out. Default is 30.
Type: int
Configuration options to enable or disable optional features.
Admin writeable
If enabled, CiviForm Admins are able to see all applications for all programs. Is disabled by default.
Type: bool
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
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
Admin writeable
Enables the API docs tab on CiviForm.
Type: bool
Server setting
Enables caching for versions and their associated data.
Type: bool
Server setting
Enables caching for programs and their associated data.
Type: bool
Server setting
Enables caching for questions and their associated data.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to admin identity provider.
Type: bool
Admin readable
Enables populating more fields in OIDC logout requests to applicant identity provider.
Type: bool
Admin writeable
Upsell: Add programs cards to the confirmation screen that an applicant sees after finishing an application.
Type: bool
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
Admin writeable
Enables civiform admins to set up a customized eligibility message per screen.
Type: bool
These are NOT READY FOR PRODUCTION USE. Use these configuration options to enable or disable in-development features.
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables filtering programs by category on the homepage
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enables suffix dropdown field in name question.
Type: bool
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
Admin writeable
(NOT FOR PRODUCTION USE) Enables showing new UI with an updated user experience in Applicant flows
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable session timeout based on inactivity and maximum duration.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable using custom theme colors on North Star applicant UI.
Type: bool
Admin writeable
(NOT FOR PRODUCTION USE) Enable showing external program cards on North Star applicant UI.
Type: bool
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
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.
#c13 should match.
cccccc should not match.
`` should match.
#c13 should match.
cccccc should not match.
`` should match.
generic-oidc
login-gov
auth0
disabled
azure-blob
gcp-s3
https://my-civiform.org should match.
my-civiform.org should not match.
https://my-civiform.org should match.
my-civiform.org should not match.
http://my-civiform.org should not match.
https://my-civiform.org should not match.