---
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
reference_type: package
---

# Configuration settings

`SAIF.Presentation` has a single externalized configuration touchpoint: one Environment API key resolved through `IEnvironmentService` (accessed via `AppGlobal.EnvironmentService`), used to obtain the Oracle connection target for the preference store. No `App.config`/`Web.config`, `AppSettings`, secure/encrypted settings, or custom configuration sections exist in this library.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `GetConfigSetting(String)` | `IEnvironmentService` (accessed via `AppGlobal.EnvironmentService`) | `SAIF.Core.Services` (interface); accessed statically through `AppGlobal` from `SAIF.Framework.Security` | Called once, inline, as a constructor argument: `New clsMSOracleDataLayer(m_DBUserName, AppGlobal.EnvironmentService.GetConfigSetting(EnvironmentConfigKeys.OracleDatabase))` inside the private `Load()` method. The returned value is passed directly to the `clsMSOracleDataLayer` constructor; it is not cached in a field or exposed as a property. |

## Environment API settings

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

| Setting key | Method | Data type | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- | --- |
| `EnvironmentConfigKeys.OracleDatabase` | `GetConfigSetting` | String* | Resolves the Oracle connection target used to construct the `clsMSOracleDataLayer` that backs preference persistence | `clsPreferences` (private `Load()` method) | SAIF.Presentation\clsPreferences.vb |

The key is referenced via the `EnvironmentConfigKeys` constants class, not as a raw string literal; the literal key name is declared external to this library*. This is the only Environment API key consumed anywhere in `SAIF.Presentation`. The same key/pattern is also consumed independently by the sibling library `SAIF.Presentation.Web.MVC` (`NavigationContext.vb`), noted here for cross-reference only.

## AppSettings (Web.config)

None found. `clsPreferences.vb` contains no `ConfigurationManager.AppSettings` calls, no `AppSettings` indexer access, and no `<appSettings>`-sourced values. No `Web.config`/`App.config` exists in `SAIF.Presentation\`.

## Database connection configuration

| Connection name | Provider | Retrieval method | Purpose | Source |
| --- | --- | --- | --- | --- |
| `clsMSOracleDataLayer` constructed with database user `CLM` and the value returned by `GetConfigSetting(EnvironmentConfigKeys.OracleDatabase)` | Oracle | `EnvironmentConfigKeys.OracleDatabase` via `GetConfigSetting` | Establishes the Oracle data-access layer used to obtain `IDataPortalInfo`, which supplies the authenticated user context subsequently used to load/save user preferences via `PreferenceData` | SAIF.Presentation\clsPreferences.vb |

The Oracle DB user/schema is the hardcoded literal `"CLM"` — a compile-time constant, not an externalized configuration value. The connection string/target itself is resolved at runtime via the Environment API key above; `clsPreferences.vb` does not construct or store a raw ADO.NET/Oracle connection string. `clsMSOracleDataLayer` is an external type (defined in `SAIF.Framework.Common`); its internal connection-string handling is out of scope for this library**.

## Secure settings

None found. No calls to `GetSecureConfigSetting`, `SystemHashUtil.ComputeHash`, or references to `SystemType.WebApp`/`SystemType.Service` exist in `clsPreferences.vb` or elsewhere in `SAIF.Presentation\`.

## Transitive configuration (from dependencies)

| Setting key | Method | Source dependency | Dependency type | Purpose |
| --- | --- | --- | --- | --- |
| N/A | — | — | — | No transitive configuration keys were identified beyond the single key documented above; downstream persistence in `PreferenceData` (`SAIF.Framework.Preferences`) is out of scope for this library's analysis** |

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `EnvironmentConfigKeys.OracleDatabase` (via `AppGlobal.EnvironmentService`) | Environment API service | Construction of any `clsPreferences` instance (runtime, first access) | `Load()` fails when constructing `clsMSOracleDataLayer`, and the exception propagates uncaught to the caller, preventing preference loading entirely* |

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## 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)

## Sources
- SAIF.Presentation\clsPreferences.vb
