Table of Contents

Class FeatureFlags

Namespace
SEBT.Portal.Core.AppSettings
Assembly
SEBT.Portal.Core.dll

Constants for feature flag names used across the portal. Names must contain only alphanumeric characters and underscores to satisfy both the FeatureFlagQueryService validator and AWS AppConfig naming requirements.

public static class FeatureFlags
Inheritance
object
FeatureFlags

Fields

BypassOtp

When enabled, OTP validation may be bypassed for the DAST scanner account in non-production environments. See OtpBypassSettings. Never enable in production. Not included in the public feature-flag map.

public const string BypassOtp = "bypass_otp"

Field Value

string

CheckerOutagePageEnabled

When enabled, the standalone enrollment checker app shows a sitewide outage page instead of normal routes. Manual counterpart to OutageSchedule windows targeting EnrollmentChecker: with no such windows configured, this flag is the authority (for unscheduled emergencies); when windows targeting the checker exist, the schedule wins and this flag is ignored. Toggle at runtime via AWS AppConfig; the checker polls the enrollment features endpoint, so no checker redeploy is required.

public const string CheckerOutagePageEnabled = "checker_outage_page_enabled"

Field Value

string

DeferEbtCardDataLoading

When enabled (CO), the dashboard may request household data without CBMS FIS card details first, then load card fields in a follow-up request. Defaults to false.

public const string DeferEbtCardDataLoading = "defer_ebt_card_data_loading"

Field Value

string

EnableApply

When enabled, applications are open: the portal and the enrollment checker may show apply links. Both also need an apply destination configured; off hides the apply UI regardless. Unset reads as disabled, so applications stay closed unless a state opens them.

public const string EnableApply = "enable_apply"

Field Value

string

EnableCheckerIncomeEligibility

When enabled, the enrollment checker offers income screening on its not-enrolled result. Thresholds come from EnrollmentChecker:IncomeEligibility (see IncomeEligibilitySettings). Disabling withdraws the tool rather than screening against stale figures.

public const string EnableCheckerIncomeEligibility = "enable_checker_income_eligibility"

Field Value

string

EnableCheckerMaintenanceBanner

When enabled, the standalone enrollment checker app shows a maintenance banner. Banner copy comes from the EnrollmentChecker:MaintenanceBanner:Message per-language map (see MaintenanceBannerSettings); the checker selects the active language's copy client-side. Toggle at runtime via AWS AppConfig; the checker polls the enrollment features endpoint, so no checker redeploy is required.

public const string EnableCheckerMaintenanceBanner = "enable_checker_maintenance_banner"

Field Value

string

EnableEnrollment

When enabled, the season is still enrolling. Off switches the enrollment checker to past-tense copy ("was your student enrolled?") and drops every apply path. Wider than EnableApply, which covers only the application window inside a season — a state can pause applications while it keeps enrolling. Set true in the base appsettings so an unset flag cannot close a state's season.

public const string EnableEnrollment = "enable_enrollment"

Field Value

string

EnableHouseholdAnalyticsIdentifiers

When enabled, household data responses include hashed application and case identifiers so analytics events can be joined to state data without exposing raw IDs. Defaults to false.

public const string EnableHouseholdAnalyticsIdentifiers = "enable_household_analytics_identifiers"

Field Value

string

EnrollmentCheckRequiresAtLeastOneExactMatchedField

When enabled, the portal drops enrollment check candidates (Match/PossibleMatch) where neither the date of birth nor the full name (first + last) exactly matches what was submitted. Defaults to true for CO via appsettings.co.json.

public const string EnrollmentCheckRequiresAtLeastOneExactMatchedField = "enrollment_check_requires_at_least_one_exact_matched_field"

Field Value

string

OutagePageEnabled

When enabled, the portal shows a sitewide outage page instead of normal routes. State partners can toggle via appsettings.{State}.json or AWS AppConfig.

public const string OutagePageEnabled = "outage_page_enabled"

Field Value

string

TestErrorEndpointsEnabled

When enabled, the diagnostic test-error endpoints under /api/test-error are active. Disabled by default; enable in Development or staging via appsettings.Development.json or AWS AppConfig. Never enable in production. Not included in the public feature-flag map.

public const string TestErrorEndpointsEnabled = "test_error_endpoints_enabled"

Field Value

string

UseConfigurableStateBackend

When enabled, household lookup, card replacement, address update, enrollment check, and state-backend health go through ConfigurableStateBackend instead of the MEF state plugins. Defaults to false (plugins remain the live path). Requires StateBackend:ConfigPath to point at a valid YAML bundle; enabling the flag without that path fails the request. Toggle at runtime via AWS AppConfig. This is a backend dark-launch switch, not a UI flag.

public const string UseConfigurableStateBackend = "use_configurable_state_backend"

Field Value

string

UseMockCbmsResponses

When enabled outside Production, the Colorado connector returns mock CBMS responses and does not require CBMS credentials. Ignored when ASPNETCORE_ENVIRONMENT is Production, matching the host default. Takes effect on the next request. The connector reads FeatureManagement:use_mock_cbms_responses.

public const string UseMockCbmsResponses = "use_mock_cbms_responses"

Field Value

string

UseMockHouseholdData

When enabled outside Production, household reads and writes use MockHouseholdRepository instead of the state connector. Ignored when the host is Production. Takes effect on the next request.

public const string UseMockHouseholdData = "use_mock_household_data"

Field Value

string