---
title: Configuration settings
summary: Configuration keys consumed by this library, retrieval methods, and runtime dependencies.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.MVC
reference_type: package
---

# Configuration settings

This library resolves 8 unique configuration keys across two retrieval mechanisms: the Environment API (`GetConfigSetting`, 3 keys) and `ConfigurationManager.AppSettings` (5 keys). No `GetSecureConfigSetting`/encrypted settings are used anywhere in this library, and no custom `ApplicationSettingsBase` properties beyond the generated "My.Settings" scaffold exist.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `AppGlobal.EnvironmentService.GetConfigSetting(String)` | `IEnvironmentService` (via `AppGlobal` static accessor) | `SAIF.Core.Services` (external, referenced via `AppGlobal`) | Called inline inside `clsContext.clsContextRepository` data-access methods and in `NavigationContext.vb`, passing an `EnvironmentConfigKeys` constant to resolve a SQL Server / Oracle connection key just before opening a connection. |
| `EnvironmentService.GetConfigSetting(String)` (unqualified) | `IEnvironmentService` (resolved through an inherited/shared accessor) | `SAIF.Core.Services` | Called once in `clsControllerBase.HandleErrors(Exception)` with a literal string key (not an `EnvironmentConfigKeys` constant) to fetch a support e-mail distribution list for error notifications. |
| `System.Configuration.ConfigurationManager.AppSettings.Item(key)` | `ConfigurationManager` | `System.Configuration` | Used for static, non-environment-varying `Web.config` `<appSettings>` values: error page override, trace/logging toggles, and a ViewState-in-session feature flag. |
| `ApplicationSettingsBase` (Settings Designer) | `MySettings` (`My Project\Settings.Designer.vb`) | `System.Configuration` | Auto-generated VB "My.Settings" typed settings class; no custom settings properties were added beyond the designer scaffold. |

## Environment API settings

Settings retrieved via `IEnvironmentService` (centralized environment configuration service).

| Setting key | Method | Data type | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- | --- |
| `EnvironmentConfigKeys.NetFrameworkSqlServer` | `GetConfigSetting` | String | Resolves the SQL Server connection for the `Context` table repository (catalog `NETFRAMEWORK`). | `clsContext.clsContextRepository` (`Delete`, `Retrieve` x2, `Save`) | SAIF.Presentation.Web.MVC\clsContext.vb |
| `EnvironmentConfigKeys.OracleDatabase` | `GetConfigSetting` | String | Resolves the Oracle connection for `clsMSOracleDataLayer` used by `NavigationContext` to retrieve menu/authorization data. | `NavigationContext.New(inUser)` | SAIF.Presentation.Web.MVC\NavigationContext.vb |
| `"policymanagement.supportemaillist"` (literal string key, not an `EnvironmentConfigKeys` constant) | `GetConfigSetting` | String | Recipient distribution list for error-notification e-mails. | `clsControllerBase.HandleErrors` | SAIF.Presentation.Web.MVC\clsControllerBase.vb |

All three calls use plain-text `GetConfigSetting`; no `GetSecureConfigSetting` calls exist anywhere in this library.

## AppSettings (Web.config)

Settings retrieved via `ConfigurationManager.AppSettings`. No `Web.config`/`App.config` exists inside this library itself (it is a class library, not a deployable application) — all keys below are expected to be supplied by the hosting web application's `Web.config` `<appSettings>` section at runtime (a transitive configuration dependency).

| Setting key | Default value | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- |
| `ErrorPageName` | None in config; code falls back to `http://saifonline/weberror/processerror.aspx` for internal `10.*.*.*` hosts, else `https://saifonline.saif.com/weberror/processerror.aspx` | Overrides the hard-coded internal/external error redirect URL. | `clsControllerBase.HandleErrors` | SAIF.Presentation.Web.MVC\clsControllerBase.vb |
| `TraceLogging` | None (guarded by `IsNothing` check; only applied if present) | Enables `clsLogTrace` diagnostic tracing. | `clsControllerBase.New` (constructor) | SAIF.Presentation.Web.MVC\clsControllerBase.vb |
| `PageTraceOn` | None (guarded by `IsNothing` check) | Enables page-level trace output. | `clsControllerBase.New` (constructor) | SAIF.Presentation.Web.MVC\clsControllerBase.vb |
| `TraceUser` | None (guarded by `IsNothing` check) | Restricts tracing to a specific user. | `clsControllerBase.New` (constructor) | SAIF.Presentation.Web.MVC\clsControllerBase.vb |
| `EXT_VIEWSTATE_SESSION` | `False` (parsed with `Boolean.TryParse`; defaults to `False` if missing/unparsable) | Boolean feature flag controlling whether ViewState is persisted server-side in Session for external users ([BR-MVC-007](business-rules.md#br-mvc-007-session-based-viewstate-for-externalflagged-users)). | `ViewPageBase.PageStatePersister` (property getter) | SAIF.Presentation.Web.MVC\ViewPageBase.aspx.vb |

## Database connection configuration

| Connection name | Provider | Retrieval method | Purpose | Source |
| --- | --- | --- | --- | --- |
| Context Repository connection (ad hoc `SqlConnection`, opened via `clsConnection.getConnection`) | SQL Server | `AppGlobal.EnvironmentService.GetConfigSetting(EnvironmentConfigKeys.NetFrameworkSqlServer)`, passed with fixed application/environment tokens `"APPM"` and `"NETFRAMEWORK"` to `clsConnection.getConnection` | Persists/retrieves cross-application MVC "context" hand-off values (claim ID, policy number, SAIF claim number, provider location sequence number) in the `Context` table, used when navigating a user session between SAIF applications. | SAIF.Presentation.Web.MVC\clsContext.vb |
| Oracle data-access connection (constructed via `clsMSOracleDataLayer`) | Oracle | `AppGlobal.EnvironmentService.GetConfigSetting(EnvironmentConfigKeys.OracleDatabase)` | Instantiates the Oracle data-access layer used by `NavigationContext` for navigation/menu-authorization data lookups; the actual connection string resolution/opening happens inside `clsMSOracleDataLayer` (external, `SAIF.Framework.Common`), not in this library. | SAIF.Presentation.Web.MVC\NavigationContext.vb |

Unlike the `DbConnectionManager.GetSqlConnectionString`/`GetOracleConnectionString` pattern used elsewhere in SAIF, this library resolves the SQL Server connection through a local helper, `clsConnection.getConnection(connectionKeyValue, "APPM", "NETFRAMEWORK", connection)`, which performs an equivalent role but is not `DbConnectionManager` itself. `clsConnection` is referenced but not defined within this library — it is a dependency from `SAIF.BOF.Framework`.

## Secure settings

None found. No calls to `GetSecureConfigSetting` or `SystemHashUtil.ComputeHash` exist anywhere in this library. All environment-service retrieval uses the plain-text `GetConfigSetting` method, and the SQL Server connection key resolved (`NetFrameworkSqlServer`) is passed to a local connection-opening helper rather than a secure-credential API.

## Transitive configuration (from dependencies)

| Setting key | Method | Source dependency | Dependency type | Purpose |
| --- | --- | --- | --- | --- |
| (Web.config `<appSettings>` section itself) | `AppSettings` | Hosting web application | Transitive/deployment | This library has no `Web.config`/`App.config` of its own; all five AppSettings keys above must be declared in the consuming application's `Web.config` for this library's controller/page base classes to function as intended. |

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `EnvironmentConfigKeys.NetFrameworkSqlServer` resolving to a reachable SQL Server instance | Environment service + network/DB availability | Runtime (any cross-application context save/retrieve) | Cross-application context hand-off (claim ID, policy number, etc.) fails; `clsContextRepository` methods wrap failures in an `ApplicationException`. |
| `EnvironmentConfigKeys.OracleDatabase` resolving to a reachable Oracle instance | Environment service + network/DB availability | Runtime (first request per session, to build `NavigationContext`) | Menu-driven page authorization ([BR-MVC-002](business-rules.md#br-mvc-002-menu-based-page-authorization)) cannot be evaluated, blocking the request pipeline for any controller derived from `clsControllerBase`. |
| Hosting application's `Web.config` `<appSettings>` section (`ErrorPageName`, `TraceLogging`, `PageTraceOn`, `TraceUser`, `EXT_VIEWSTATE_SESSION`) | Configuration file | Startup/request | Missing keys are tolerated via `IsNothing`/`TryParse` guards and fall back to hardcoded defaults (error page URLs) or disabled features (tracing, session ViewState). |

## Related documentation
- [Library index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

## Sources
- SAIF.Presentation.Web.MVC\clsContext.vb
- SAIF.Presentation.Web.MVC\NavigationContext.vb
- SAIF.Presentation.Web.MVC\clsControllerBase.vb
- SAIF.Presentation.Web.MVC\ViewPageBase.aspx.vb
- SAIF.Presentation.Web.MVC\My Project\Settings.Designer.vb
