Configuration settings¶
SAIF.Data reads 3 configuration keys directly through IEnvironmentService (2 via GetConfigSetting, 1 secure via GetSecureConfigSetting) from Data/SAIF.Data/Clients/HttpClientBase.cs, and its AddDataClients registration pulls in 7 additional transitive keys from SAIF.Data.Guidewire; there is no <appSettings>, <connectionStrings>, or custom <configSections> element in Data/SAIF.Data/app.config (saif-data-config-analysis.md).
Configuration retrieval methods¶
| Method | Class / Interface | Namespace | Usage pattern |
|---|---|---|---|
GetConfigSetting(string key) |
IEnvironmentService |
SAIF.Core.Services (package SAIF.Framework.Core) |
Called lazily in SAIF.Data.Clients.HttpClientBase.InitializeClient() with the subclass's UrlKey to set HttpClient.BaseAddress |
GetConfigSetting(string key) (transitive base) |
IEnvironmentService via SAIF.Data.Guidewire.Clients.HttpClientBase |
SAIF.Core.Services |
CCClaimApiService derives from the Guidewire base, whose constructor reads UrlKey eagerly |
GetSecureConfigSetting(string key, string cryptoHash) |
IEnvironmentService |
SAIF.Core.Services |
Called in HttpClientBase.InitializeClient() with AuthKey when AuthKey is not blank; the value is split on \| into user name and password and wrapped in a NetworkCredential on an HttpClientHandler |
SystemHashUtil.ComputeHash(SystemType, string) / SystemHashUtil.Get(SystemType) |
SystemHashUtil |
SAIF.Services.Common (package SAIF.HashUtil) |
Produces the crypto hash for the secure read; ComputeHash is used when IDataClientConfiguration.SystemName is set, otherwise Get(SystemType) |
| Code-level options object | IDataClientConfiguration / DataClientConfiguration |
SAIF.Data.Guidewire.Clients |
Built by ContainerBuilderExtensions.AddDataClients(builder, SystemType, Action<IDataClientConfiguration>, systemName) and registered as a singleton; drives the system hash inputs and the Polly cache policy |
Not found in this library: ConfigurationManager.AppSettings, ConfigurationManager.ConnectionStrings, WebConfigurationManager, ApplicationSettingsBase, DbConnectionManager, EnvironmentConfigKeys, IsProduction.
Environment API settings¶
Settings retrieved via IEnvironmentService (centralized environment configuration service).
| Setting key | Method | Data type | Purpose | Consuming class | Source |
|---|---|---|---|---|---|
cc.medicalbillingapiurl |
GetConfigSetting |
string (URL) | Base URL for the Medical Billing API | MedicalBillingApiService (UrlKey), read by HttpClientBase.InitializeClient |
Data/SAIF.Data/Clients/MedicalBillingApiService.cs, Data/SAIF.Data/Clients/HttpClientBase.cs |
cc.ccclaimdataapiurl |
GetConfigSetting |
string (URL) | Base URL for the Guidewire CC claim data API | CCClaimApiService (UrlKey), read by SAIF.Data.Guidewire.Clients.HttpClientBase constructor |
Data/SAIF.Data/Queries/Claims/CCClaimApiService.cs, Data/SAIF.Data.Guidewire/Clients/HttpClientBase.cs |
CCClaimApiService.AuthKey returns string.Empty, so the Guidewire base skips the secure read and no Authorization header is added for the CC claim data API. MedicalBillingApiService reads its URL and credentials lazily on first use of Client, but its constructor touches Client to set a 10-minute timeout, so in practice both keys are read at construction time. The obsolete CCClaimApiService constructor accepts baseUrlOverride, documented as "Useful for localhost", but the Guidewire base's obsolete constructor never uses that argument — the URL always comes from cc.ccclaimdataapiurl; this is a latent defect for anyone relying on the override*. No key in this catalog is a constant from EnvironmentConfigKeys; all are string literals.
AppSettings (Web.config)¶
None. Data/SAIF.Data/app.config declares no <appSettings> section, and no compiled source in this library calls ConfigurationManager.AppSettings.
Database connection configuration¶
None. The library does not resolve any database connection; it defines NHibernate entities and LINQ query providers over IRepositoryFactory. The session factory and connection resolution belong to the host and to SAIF.Data.NHibernate/the SAIF.Framework.Data.NHibernate package*.
Secure settings¶
Settings that require decryption or credential retrieval.
| Setting key | Encryption method | Purpose | Consuming class | Source |
|---|---|---|---|---|
medicalbillingapi.creds |
SystemHashUtil.ComputeHash(SystemType, SystemName) when SystemName is set, else SystemHashUtil.Get(SystemType) |
HTTP Basic-style credential (user\|password) for the Medical Billing API |
MedicalBillingApiService (AuthKey), read by HttpClientBase.InitializeClient |
Data/SAIF.Data/Clients/HttpClientBase.cs, Data/SAIF.Data/Configuration/ContainerBuilderExtensions.cs |
The value is held in the environment-config service and is not present in the repository. The code expects the format user|password and indexes creds[0]/creds[1] without a length check, so a malformed value raises IndexOutOfRangeException at client initialization*.
Transitive configuration (from dependencies)¶
SAIF.Data.Configuration.ContainerBuilderExtensions.AddDataClients registers every Guidewire client from the SAIF.Data.Guidewire project reference. A host that calls AddDataClients must therefore provide these keys when the corresponding clients are resolved (saif-data-guidewire-config-analysis.md has full detail).
| Setting key | Method | Source dependency | Dependency type | Purpose |
|---|---|---|---|---|
cc.activitydata.api.url.v1 |
GetConfigSetting |
SAIF.Data.Guidewire | Project Reference | Base URL for ActivityDataApiClient |
cc.claimdata.api.url.v1 |
GetConfigSetting |
SAIF.Data.Guidewire | Project Reference | Base URL for ClaimDataApiClient (also injected into CCClaimApiService) |
cc.financial.api.url.v1 |
GetConfigSetting |
SAIF.Data.Guidewire | Project Reference | Base URL for FinancialDataApiClient |
ab.providerdata.api.url.v1 |
GetConfigSetting |
SAIF.Data.Guidewire | Project Reference | Base URL for ProviderDataApiClient |
cc.workerdata.api.url.v1 |
GetConfigSetting |
SAIF.Data.Guidewire | Project Reference | Base URL for WorkerDataApiClient |
cc.gwcreds |
GetSecureConfigSetting |
SAIF.Data.Guidewire | Project Reference | Secure Basic credential for Activity, Claim, Financial and Worker clients |
cc.providerdataapi.gwcreds |
GetSecureConfigSetting |
SAIF.Data.Guidewire | Project Reference | Secure Basic credential for ProviderDataApiClient |
The external packages SAIF.Framework.Core (the IEnvironmentService implementation) and SAIF.HashUtil may require their own host settings (for example the Environment API endpoint); those are not visible from this repository**.
Configuration dependencies¶
| Dependency | Type | Required at | Impact if missing |
|---|---|---|---|
IEnvironmentService (SAIF.Framework.Core) |
Injected service | Startup/construction | CCClaimApiService's Guidewire base constructor fails to resolve BaseAddress at DI resolution time* |
medicalbillingapi.creds secure setting |
Environment config value | First access of MedicalBillingApiService.Client (construction, in practice) |
InitializeClient() cannot build the credential, so the client throws or fails to authenticate* |
IDataClientConfiguration |
Code-level options object | Construction (via AddDataClients) |
Client falls back to code defaults (UseCache=true, CachePolicyKey="data-client-cache-policy", MaxCacheDuration=30s) if a custom configuration is not supplied |
7 transitive SAIF.Data.Guidewire keys |
Environment config values | Resolution of the corresponding Guidewire client | The affected client fails to resolve its base URL or credential; see saif-data-guidewire-config-analysis.md |
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Operations and processes
- Business rules
- Security and authorization
- Database tables
- SQL catalog
- API reference
Sources¶
Data/SAIF.Data/app.configData/SAIF.Data/packages.configData/SAIF.Data/Clients/HttpClientBase.csData/SAIF.Data/Clients/MedicalBillingApiService.csData/SAIF.Data/Queries/Claims/CCClaimApiService.csData/SAIF.Data/Configuration/ContainerBuilderExtensions.csData/SAIF.Data.Guidewire/Clients/HttpClientBase.csData/SAIF.Data.Guidewire/Clients/DataClientConfiguration.csData/SAIF.Data.Guidewire/Clients/IDataClientConfiguration.csData/SAIF.Data.Guidewire/Clients/ActivityDataApiClient.csData/SAIF.Data.Guidewire/Clients/ClaimDataApiClient.csData/SAIF.Data.Guidewire/Clients/FinancialDataApiClient.csData/SAIF.Data.Guidewire/Clients/ProviderDataApiClient.csData/SAIF.Data.Guidewire/Clients/WorkerDataApiClient.csServices/SAIF.Services.WebApi/EnvironmentApi/App_Data/environments.xml