---
title: SAIF.Framework.Core configuration settings
summary: Configuration keys consumed by this library, retrieval methods, and runtime dependencies.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Framework.Core
reference_type: package
---

# Configuration settings

`SAIF.Framework.Core` uses a small direct configuration surface — one Environment API key (`workCalendarServiceUrl`) and one typed `ApplicationSettingsBase` SOAP endpoint setting (`SAIF_Framework_Core_SAIFDates_SAIFDates`) — but its data-portal and environment helpers also rely on transitive configuration from `SAIF.Framework.Connection`, `SAIF.Framework.Security.EnvironmentApi`, and `SAIF.Framework.Security`. Three connection-configuration patterns and nine transitive bootstrap or dependency settings were confirmed from source.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `GetConfigSetting` | `EnvironmentServiceBase` (via `AppGlobal.EnvironmentService`) | `SAIF.Framework.Security` | `clsSmartDate` resolves `workCalendarServiceUrl` from the centralized Environment API before invoking the `SAIFDates` SOAP client. |
| `ApplicationSettingsBase` | `MySettings` | `SAIF.Framework.My` | The generated `SAIFDates` proxy seeds its default endpoint from `SAIF_Framework_Core_SAIFDates_SAIFDates`. |
| `Environment.GetEnvironmentVariable` | `EnvironmentServiceBase` | `SAIF.Framework.Security` | The Environment API dependency requires the `EnvironmentApiUrl` OS environment variable before any `AppGlobal.EnvironmentService` lookup succeeds. |
| `ConfigurationManager.AppSettings` | `EnvironmentServiceBase` | `SAIF.Framework.Security` | The Environment API dependency reads `ApplicationHost` and `EnvApiDeveloperSettingsOverride` for developer-machine host resolution and local settings overrides. |
| `getConnection` | `clsConnection` | `SAIF.Framework.Connection` | Oracle and SQL Server data portals delegate connection-string resolution to the `ConnectInfo` SOAP service wrapper. |

## Environment API settings

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

| Setting key | Method | Data type | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- | --- |
| `workCalendarServiceUrl` | `GetConfigSetting` | URL | Sets the `SAIFDates` SOAP client endpoint used by `clsSmartDate` work-calendar helpers. | `clsSmartDate` | `SAIF.Framework.Core\V1\SmartValues\clsSmartDate.vb` |

## AppSettings (Web.config)

Static settings declared in the project's generated settings class and configuration file.

| Setting key | Default value | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- |
| `SAIF_Framework_Core_SAIFDates_SAIFDates` | `http://saifonline/webservices/saifdates/saifdates.asmx` | Design-time/default endpoint for the generated `SAIFDates` SOAP reference. The client constructor reads this value before `clsSmartDate` overwrites `Url` with `workCalendarServiceUrl`. | `SAIFDates.SAIFDates` | `SAIF.Framework.Core\My Project\Settings.Designer.vb`; `SAIF.Framework.Core\Web References\SAIFDates\Reference.vb`; `SAIF.Framework.Core\app.config` |

## Database connection configuration

Connection strings and database provider settings consumed by this library.

| Connection name | Provider | Retrieval method | Purpose | Source |
| --- | --- | --- | --- | --- |
| Oracle data portal connection | `Oracle.ManagedDataAccess.Client` | `SAIF.Framework.Connection.clsConnection.getConnection(...)` | `MSOracleDataPortal` resolves an Oracle connection string through the shared `ConnectInfo` service and assigns it to `OracleConnection.ConnectionString`. | `SAIF.Framework.Core\V1\DataAccessLayer\MSOracle\MSOracleDataPortal.vb`; `SAIF.Framework.Connection\clsConnection.vb` |
| SQL Server data portal connection (SAIF Connection) | `System.Data.SqlClient` | `SAIF.Framework.Connection.clsConnection.getConnection(...)` | `SQLDataPortal` can resolve a SQL Server connection string through the shared `ConnectInfo` service when constructed with `inUseSAIFConnection = True`. | `SAIF.Framework.Core\V1\DataAccessLayer\SQLServer\SQLDataPortal.vb`; `SAIF.Framework.Connection\clsConnection.vb` |
| SQL Server data portal connection (direct credentials) | `System.Data.SqlClient` | Inline connection-string assembly from `clsDataAccess.clsEnvironment` | `SQLDataPortal` can also build a standard SQL Server connection string directly from caller-supplied `Server`, `Database`, `DBUser`, and `Password` values when `inUseSAIFConnection = False`. | `SAIF.Framework.Core\V1\DataAccessLayer\SQLServer\SQLDataPortal.vb`; `SAIF.Framework.Core\V1\DataAccessLayer\clsDataAccess.vb` |

## Secure settings

Settings that require decryption or credential retrieval.

None detected.

## Transitive configuration (from dependencies)

Settings required at runtime by referenced libraries or packages, not directly consumed by this library's code.

| Setting key | Method | Source dependency | Dependency type | Purpose |
| --- | --- | --- | --- | --- |
| `EnvironmentApiUrl` | Environment variable | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | Base URL for Environment API calls made by `AppGlobal.EnvironmentService`. |
| `checkforupdatedsettingsinseconds` | `Configurations.Settings[...]` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | Controls the Environment API refresh interval; `EnvironmentServiceBase` throws if the key is absent from loaded configuration. |
| `ApplicationHost` | `AppSettings` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | Developer-machine host override used when `EnvironmentServiceBase` resolves the application host. |
| `EnvApiDeveloperSettingsOverride` | `AppSettings` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | Optional path to a local JSON override file that `EnvironmentServiceBase` checks before returning an Environment API setting. |
| `ad.ldap.host` | `GetGlobalConfigSetting` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | LDAP host used when Environment API developer-machine detection instantiates `MachineSecurityService`. |
| `ad.ldap.internal.root` | `GetGlobalConfigSetting` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | LDAP root used with `MachineSecurityService` during developer-machine detection. |
| `ad.internal.domain` | `GetGlobalConfigSetting` | `SAIF.Framework.Security.EnvironmentApi` | ProjectReference | Active Directory domain used with `MachineSecurityService` during developer-machine detection. |
| `securityServiceUrl` | `GetConfigSetting` | `SAIF.Framework.Security` | ProjectReference | Security service endpoint used by `MachineSecurityService` to evaluate developer-machine group membership. |
| `SAIF_Framework_Connection_ConnectInfo_ConnectInfo` | `ApplicationSettingsBase` | `SAIF.Framework.Connection` | ProjectReference | Default `ConnectInfo` SOAP endpoint used to retrieve Oracle and SQL Server connection strings for core data portals. |

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `workCalendarServiceUrl` | Environment API setting | runtime | `clsSmartDate` cannot redirect the `SAIFDates` client to the configured work-calendar service; missing-key resolution throws from the Environment API dependency. |
| `EnvironmentApiUrl` | OS environment variable | runtime | Any `AppGlobal.EnvironmentService` call throws `MissingEnvironmentUrlVariableException` before environment, track, or setting data can be loaded. |
| `checkforupdatedsettingsinseconds` | Environment API setting | runtime | `EnvironmentServiceBase` throws `KeyNotFoundException` while refreshing configuration, preventing `GetApplicationEnvironment`, `GetApplicationTrack`, or `GetConfigSetting` from succeeding. |
| `SAIF_Framework_Core_SAIFDates_SAIFDates` | `applicationSettings` entry | runtime | The generated `SAIFDates` proxy falls back to this default endpoint on construction; an incorrect value points the client at the wrong service until the URL is overwritten. |
| `SAIF_Framework_Connection_ConnectInfo_ConnectInfo` | `applicationSettings` entry | runtime | Oracle and SAIF-managed SQL Server portal constructors cannot resolve the `ConnectInfo` service endpoint correctly, so connection-string acquisition fails. |
| `oracle.manageddataaccess.client` | config section registration | startup | Oracle managed-driver configuration cannot be loaded if the ODP.NET section registration is removed from `app.config`. |
| `Oracle.ManagedDataAccess.Client` provider factory | `DbProviderFactories` registration | startup | Oracle provider resolution can fail for code paths that rely on the managed ODP.NET provider registration. |
| `clsDataAccess.clsEnvironment` (`Server`, `Database`, `DBUser`, `Password`) | caller-supplied connection data | runtime | Direct SQL Server connection mode cannot assemble a usable connection string when the required environment fields are absent. |

## 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)
- [API reference](api/index.md)

<!-- Omit configuration.md — that is this page. -->

## Sources
- `SAIF.Framework.Core\app.config`
- `SAIF.Framework.Core\My Project\Settings.Designer.vb`
- `SAIF.Framework.Core\My Project\Settings.settings`
- `SAIF.Framework.Core\Web References\SAIFDates\Reference.vb`
- `SAIF.Framework.Core\V1\SmartValues\clsSmartDate.vb`
- `SAIF.Framework.Core\V1\DataAccessLayer\clsDataAccess.vb`
- `SAIF.Framework.Core\V1\DataAccessLayer\MSOracle\MSOracleDataPortal.vb`
- `SAIF.Framework.Core\V1\DataAccessLayer\SQLServer\SQLDataPortal.vb`
- `SAIF.Framework.Core\SAIF.BOF.Framework.Core.vbproj`
- `SAIF.Framework.Connection\clsConnection.vb`
- `SAIF.Framework.Connection\My Project\Settings.Designer.vb`
- `SAIF.Framework.Security\AppGlobal.vb`
- `SAIF.Framework.Security\Utilities\MachineSecurityService.vb`
- `SAIF.Framework.Security.EnvironmentApi\Core\Services\IEnvironmentService.cs`
- `SAIF.Framework.Security.EnvironmentApi\Exceptions\MissingEnvironmentUrlVariableException.cs`
- `SAIF.Framework.Security.EnvironmentApi\Services.Common\EnvironmentServiceBase.cs`
- `SAIF.Framework.Security.EnvironmentApi\Services.Common\WebEnvironmentService.cs`
- `SAIF.Framework.Security.EnvironmentApi\Services.Common\WindowsEnvironmentService.cs`
