Namespace SEBT.Portal.Core.AppSettings
Classes
- ActionRuleSettings
Rules for a single self-service action (e.g., address update or card replacement).
- AddressValidationDataSettings
Per-state address validation data loaded from
appsettings.{state}.json. Contains blocked address lists, street abbreviation mappings, and length constraints that vary by state. Empty defaults allow states without these constraints to run without additional configuration.
- AddressValidationPolicySettings
Per-state policy for address updates. Override in
appsettings.{state}.jsonas needed.
- CheckerFeaturesRateLimitSettings
Configuration settings for rate limiting the public enrollment checker features endpoint. Deliberately a separate policy from EnrollmentCheckRateLimitSettings: every open checker tab polls the features endpoint once a minute, so sharing the enrollment-check partition would let a few tabs behind one NAT (school computer lab, library) drain the per-IP budget that real enrollment checks need.
- CoLoadedCohortFilterSettings
Controls whether co-loaded Summer EBT cases are removed from the household payload for the MixedOrApplicantExcluded cohort. Classification (CoLoadedCohort) always runs for analytics.
- EnrollmentCheckRateLimitSettings
Configuration settings for enrollment check rate limiting.
- EnrollmentCheckerSettings
Configuration served to the standalone enrollment checker app at runtime via the public enrollment features endpoint. The checker is a statically-hosted frontend with no server of its own, so any setting that must change without a redeploy has to flow through this section.
Values can be overridden at runtime through the AWS AppConfig app-settings profile; consumers must read them via
IOptionsMonitor<T>so hot-reloaded values take effect without an app restart.
- FeatureFlags
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.
- IalRequirement
An IAL requirement that is either uniform (same level for all case types) or per-case-type (different levels depending on how cases were loaded).
- IdProofingEligibilitySettings
Optional gate before the Socure DocV path. When enabled (DC), users without a portal household record or with no cases and no applications are blocked from Socure — same rule as the dashboard empty state.
- IdProofingRequirementsSettings
Unified settings for all identity proofing requirements, keyed by resource+action (e.g. "address+view", "card+write"). See docs/config/ial/README.md for the configuration guide.
- IdProofingValiditySettings
Configures how long an ID proofing verification remains valid before the user must re-verify. Expiration is computed dynamically from
IdProofingCompletedAtplus this duration — no baked-in expiration dates are stored.
- IdentifierHasherSettings
Configuration for the identifier hasher. The secret key should be stored in configuration and/or secrets manager.
- IncomeEligibilitySettings
Income screening thresholds for the checker's not-enrolled result. Toggled by the EnableCheckerIncomeEligibility flag; this section carries the figures. They track federal poverty guidelines, which are reissued annually.
- IssuanceTypeRuleSettings
Rules for a specific issuance type within an action.
- JwtSettings
Configuration settings for JWT token generation.
- MaintenanceBannerSettings
Maintenance banner configuration for the enrollment checker. The on/off toggle is the EnableCheckerMaintenanceBanner feature flag; this section carries the banner copy itself.
- OidcStepUpSettings
OIDC client used for elevated verification (IAL1+ step-up). Public values only; secrets belong on the Next.js server. Binds to
Oidc:StepUpin configuration.
- OidcVerificationClaimSettings
Configures the OIDC claim names used by the external identity provider to convey ID verification level and date, under
Oidc:VerificationClaims. The primary names are required whenever OIDC is enabled; the fallbacks are optional.
- OpenTelemetrySettings
Represents the "Otel" section of appsettings.json, which configures OpenTelemetry exporters and options.
- OtpBypassSettings
Settings related to bypassing OTP validation for a specific email address in non-production environments. This is intended to facilitate SEBT's DAST scanning, but should be used with caution and should never be enabled in production or for any real user accounts.
- OtpRateLimitSettings
Configuration settings for OTP rate limiting.
- OutageScheduleSettings
Configurable schedule of outage windows. When the current time (interpreted in TimeZoneId) falls within any window, the portal force-enables the
outage_page_enabledfeature flag so the outage page appears automatically — no manual toggling required. Bind from appsettings.{State}.json or the AWS AppConfig AppSettings profile (the latter allows updating windows at runtime without a redeploy).Validated at startup: an unknown timezone, an unparseable window, a window that ends before it starts, or an unrecognized target all prevent the app from starting. A malformed schedule is a deploy failure, never a silently skipped window.
- OutageWindow
A single scheduled outage window. Start and End are local wall-clock date-times in the schedule's TimeZoneId (ISO-8601 with no offset, e.g. "2026-06-21T22:00:00"). The window is start-inclusive and end-exclusive.
- OutageWindowParsing
Parses the string-typed fields of an OutageWindow. Shared by the startup validator that rejects malformed schedules and by the evaluator that reads them at request time, so the two cannot disagree about which windows are well-formed.
- PiiEncryptionSettings
AES-256-GCM key material configuration for reversible PII column encryption (see ADR).
- SeedingSettings
Configuration for database seeding behavior.
- SelfServiceRulesSettings
Configuration for per-state self-service action rules. Controls which portal actions (address update, card replacement) are available based on the user's program type (issuance type) and card status.
Per-state overrides go in
appsettings.{State}.jsonunder theSelfServiceRulessection.DC configuration (allows SummerEbt users only): "SelfServiceRules": { "AddressUpdate": { "Enabled": true, "ByIssuanceType": { "SummerEbt": { "Enabled": true, "AllowedCardStatuses": ["Active", "Mailed"] } } } }
- SmartySettings
Configuration for Smarty US Street Address API.
- SocureDocvEgregiousReasonRejectionSettings
Configurable immediate rejection for known egregious Socure DocV reason codes (device tampering, liveness failure, etc.)
- SocureSettings
Configuration for the Socure identity verification integration. In non-Development environments, WebhookSecret is required at startup.
- StateHouseholdIdSettings
Configuration for preferred household ID types used to authorize guardians and link to household data. The first type that can be resolved from the user is used for lookup.
- WebhookRateLimitSettings
Configuration settings for Socure webhook endpoint rate limiting. Uses IP-based partitioning with a fixed window. TODO: Confirm appropriate thresholds with Socure and the team.
Interfaces
Enums
- OutageTarget
Surfaces an outage window can apply to. Window Target strings parse to these values. When querying outage state, pass the asking surface (Portal or EnrollmentChecker); Both is a window-level value meaning the window applies to every surface.