Configuration settings¶
All runtime-variable configuration in SAIF.Services.Printing flows through the SAIF Environment API
(EnvironmentServiceBase). There is no ConfigurationManager.AppSettings usage, no DbConnectionManager
usage, no GetSecureConfigSetting usage, and no <appSettings> section in either config file. Four unique
Environment API keys and two boolean flags are consumed; the only local configuration artifacts are design-time
typed applicationSettings (web-reference URLs, unconditionally overwritten at runtime) and the ODP.NET
managed-driver provider registration.
Configuration retrieval methods¶
| Method | Class / Interface | Namespace | Usage pattern |
|---|---|---|---|
GetConfigSetting(key As String) As String |
EnvironmentServiceBase |
SAIF.Framework.Security / Environment API |
Called with a string literal key. Two shapes: read once in the constructor and cached in a field (clsPrint.New(envSvc), clsRSPrint.New(envSvc)); or read live on every property access (clsPrint.IDMPath). |
IsProduction As Boolean |
EnvironmentServiceBase |
SAIF.Framework.Security / Environment API |
Read once in clsPrint.New(envSvc) to derive the Environment label (BR-PRT-002) |
IsWeb As Boolean |
EnvironmentServiceBase |
SAIF.Framework.Security / Environment API |
Read in ReportBase.Render to choose the security platform (BR-PRT-009) |
AppGlobal.EnvironmentService (static ambient accessor) |
AppGlobal |
SAIF.Framework.Security (SAIF.BOF.Framework package) |
Service-locator fallback used by every parameterless constructor to obtain the environment service, delegated to the parameterised constructor |
ApplicationSettingsBase typed settings (My.Settings) |
SAIF.Services.Printing.My.MySettings |
SAIF.Services.Printing.My |
Auto-generated Application-scoped WebServiceUrl settings backing the two ASMX web references; consumed only as design-time proxy defaults — both values are overwritten at runtime |
ConfigurationManager.AppSettings |
— | System.Configuration |
Not used — zero matches across all .vb files |
GetSecureConfigSetting / SystemHashUtil.ComputeHash |
— | — | Not used — zero matches |
DbConnectionManager / EnvironmentConfigKeys |
— | — | Not used — zero matches; this library performs no direct data access |
Environment API settings¶
Settings retrieved via EnvironmentServiceBase (the SAIF Environment API). Concrete runtime values are not
visible in this repository — they live in the external Environment API store, keyed by application/environment.**
| Setting key | Method | Data type | Purpose | Consuming class | Source |
|---|---|---|---|---|---|
documentGeneratorServiceUrl |
GetConfigSetting |
String |
xPression clsGenerate ASMX endpoint URL, assigned to m_Xpresso.Url |
clsPrint |
SAIF.Services.Printing/clsPrint.vb |
documentMSMQPath |
GetConfigSetting |
String |
MSMQ queue path, cached in m_MessagePath, used to lazily construct the transactional System.Messaging.MessageQueue for deferred/composite distribution |
clsPrint |
SAIF.Services.Printing/clsPrint.vb |
idmFilePath |
GetConfigSetting |
String |
Imaging (IDM) drop location; re-read from the Environment API on every IDMPath access (not cached), then copied into CompositeRequestClass.IDMPath |
clsPrint |
SAIF.Services.Printing/clsPrint.vb |
sqlReportingServiceUrl |
GetConfigSetting |
String |
SSRS ReportExecution2005 ASMX endpoint URL, assigned to m_RS.Url |
clsRSPrint |
SAIF.Services.Printing/clsRSPrint.vb |
IsProduction (flag) |
IsProduction property |
Boolean |
Sets Environment to "Prod" else "Dev" (BR-PRT-002) |
clsPrint |
SAIF.Services.Printing/clsPrint.vb |
IsWeb (flag) |
IsWeb property |
Boolean |
Selects clsSecurityPrincipal.Platform.Web else .Windows (BR-PRT-009) |
ReportBase |
SAIF.Services.Printing/Reporting/ReportBase.vb |
Total: 4 unique Environment API keys, all plain-text, all String-typed (no generic GetConfigSetting<T> usage), plus 2 boolean behavior flags.
AppSettings (Web.config)¶
None. No <appSettings> section exists in app.config or Web.config, and no
ConfigurationManager.AppSettings, AppSettings.Get(, or AppSettings[ reference exists in any .vb file in
the project.
Database connection configuration¶
None. No connection strings, no <connectionStrings> section, and no DbConnectionManager calls or
ADO.NET/ODP.NET code exist in this library.
| Connection name | Provider | Retrieval method | Purpose | Source |
|---|---|---|---|---|
| — | ODP.NET, Managed Driver (invariant Oracle.ManagedDataAccess.Client) |
Provider factory registration only | Registered in DbProviderFactories to satisfy the hosting application/BOF framework runtime; no connection is opened by this library.* |
SAIF.Services.Printing/app.config, SAIF.Services.Printing/Web.config |
Secure settings¶
None. No GetSecureConfigSetting call, no SystemHashUtil.ComputeHash, and no SystemType.WebApp /
SystemType.Service reference exists anywhere in the library. Credentials for the xPression and SSRS calls are
not configuration-sourced — they are carried by the ambient Windows/Web identity via clsSecurityPrincipal and
the ASMX proxies' default credentials.*
Transitive configuration (from dependencies)¶
| Setting key | Method | Source dependency | Dependency type | Purpose |
|---|---|---|---|---|
| Environment API endpoint / application identity | EnvironmentServiceBase resolution |
SAIF.BOF.Framework | NuGet | Resolved by the framework from host configuration not visible in this repository; the hosting application must have AppGlobal.EnvironmentService initialised before any parameterless constructor of clsPrint, clsRSPrint, or ReportBase runs.* |
oracle.manageddataaccess.client section + DbProviderFactories entry |
Config-file section merge | Oracle.ManagedDataAccess (NuGet) | NuGet | Required section declaration/registration for the referenced provider; not exercised by this library's code |
Configuration dependencies¶
| Dependency | Type | Required at | Impact if missing |
|---|---|---|---|
4 Environment API keys (documentGeneratorServiceUrl, documentMSMQPath, idmFilePath, sqlReportingServiceUrl) |
Environment API settings | Construction / property access | Affected constructor throws or the property yields a null endpoint |
AppGlobal.EnvironmentService |
Ambient static service | Startup, before any parameterless constructor of clsPrint, clsRSPrint, or ReportBase |
Parameterless constructors fail to resolve an environment service |
MSMQ queue at documentMSMQPath |
Runtime resource | Asynchronous distributeDocument |
Send fails; the queue must exist and be transactional |
Path at idmFilePath |
Runtime resource | Every IDMPath access |
Imaging drop location must be writable by the process identity; a mid-process configuration change takes effect immediately for IDMPath but not for the cached URLs or the Environment label |
oracle.manageddataaccess.client + DbProviderFactories registration |
Config-file section | Host merge | Already present in the shipped app.config/Web.config; must be merged into the host's config if not already present |
Custom configuration sections¶
| Section name | Handler type | Declared in | Purpose |
|---|---|---|---|
oracle.manageddataaccess.client |
OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.21.1 |
app.config, Web.config | ODP.NET Managed Driver configuration section; declared but empty in both files |
applicationSettings/SAIF.Services.Printing.My.MySettings |
System.Configuration.ClientSettingsSection |
app.config | Backs the generated My.Settings typed accessors for the two ASMX web-reference URLs |
applicationSettings/SAIF.MySettings |
System.Configuration.ClientSettingsSection |
app.config | Legacy section holding SAIFPrint_xpresso_clsGenerate; no generated designer class in this project maps to it — vestigial carry-over from a predecessor assembly named SAIFPrint* |
applicationSettings/SAIF.My.MySettings |
System.Configuration.ClientSettingsSection |
app.config | Declared in <configSections> but has no corresponding body and no consuming designer class — dead declaration |
Testability injectability notes¶
clsPrint.New(envSvc)isPublic— the environment service can be substituted.clsRSPrint.New(envSvc)isPrivate— the environment service cannot be substituted from outside; only the ambientAppGlobal.EnvironmentServicepath is reachable.ReportBase.xPrintconstructs itsclsPrintwith the parameterless constructor, so a report's injected environment service is not propagated to the printer it uses.*
Related documentation¶
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.
Sources¶
SAIF.Services.Printing/app.configSAIF.Services.Printing/Web.configSAIF.Services.Printing/My Project/Settings.Designer.vbSAIF.Services.Printing/My Project/Settings.settings- SAIF.Services.Printing/clsPrint.vb
- SAIF.Services.Printing/clsRSPrint.vb
- SAIF.Services.Printing/Reporting/ReportBase.vb
- SAIF.Services.Printing/app.config
- SAIF.Services.Printing/Web.config
- SAIF.Services.Printing/My Project/Settings.Designer.vb