Skip to content

Dependencies

DBConnectionAPI references two internal SAIF packages, SAIF.NetCore.ServiceExtensions and SAIF.NetCore.NHibernate, and one external package, Swashbuckle.AspNetCore. It has no project references. At run time it reaches the SAIF Environment API through the internal service-extensions package, and it opens short-lived database sessions to caller-named Oracle and SQL Server databases to probe composed connection strings.

Internal dependencies

Dependency Reference Type Project path Usage
SAIF.NetCore.ServiceExtensions† 10.2026.26267.1 NuGet Package — CoreAPIStartup base class, ConfigureOpenTelemetry, SecurityApiAuthorize, IEnvironmentClient, ISystemHashService, ISaifLogService, IIdentityServiceAccessor and HttpStatusCodeException
SAIF.NetCore.NHibernate† 10.2026.26267.1 NuGet Package — AddNhibernateServices<Startup>() and IUnitOfWorkFactory, used to open units of work for Oracle and SQL Server connectivity probes

External dependencies

Dependency Version Usage
Microsoft.AspNetCore.App (framework reference through Microsoft.NET.Sdk.Web) net10.0 ASP.NET Core hosting, routing, MVC and dependency injection
Swashbuckle.AspNetCore 6.4.0 OpenAPI document generation and Swagger UI

Transitive dependencies

NuGet packages that this service does not reference directly but that are pulled in by its direct dependencies. Versions are taken from the resolved restore graph. The package types the service calls (for example IEnvironmentClient and ISaifLogService) are listed under the direct dependency that exposes them, not here.

Dependency Version Source (direct dependency) Usage
SAIF.NetCore.AuthService 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Authentication and authorization support behind SecurityApiAuthorize*
SAIF.NetCore.DBConnectionClient 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Client for this API's own contract; registered by the base class but not resolved by this API†
SAIF.NetCore.EnvironmentClient 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Environment API client behind IEnvironmentClient*
SAIF.NetCore.ErrorHandler 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Error-handling middleware that handles HttpStatusCodeException*
SAIF.NetCore.HttpClients 10.2026.26267.1 SAIF.NetCore.ServiceExtensions HTTP client infrastructure for the package clients*
SAIF.NetCore.Logging 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Logging behind ISaifLogService*
SAIF.NetCore.OIDC 10.2026.26267.1 SAIF.NetCore.ServiceExtensions OpenID Connect authentication support*
SAIF.NetCore.PingableService 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Health-check support*
SAIF.NetCore.SystemHash 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Hash service behind ISystemHashService*
SAIF.NetCore.ServiceContracts 10.2026.26267.1 SAIF.NetCore.ServiceExtensions Shared service contracts used by the other SAIF.NetCore packages*
Microsoft.AspNetCore.Authentication.Negotiate 10.0.12 SAIF.NetCore.ServiceExtensions Negotiate (Windows) authentication*
Microsoft.AspNetCore.Mvc.NewtonsoftJson 10.0.12 SAIF.NetCore.ServiceExtensions Newtonsoft.Json formatters for MVC*
OpenTelemetry.Extensions.Hosting 1.9.0 SAIF.NetCore.ServiceExtensions OpenTelemetry host integration for ConfigureOpenTelemetry*
OpenTelemetry.Exporter.OpenTelemetryProtocol 1.9.0 SAIF.NetCore.ServiceExtensions OTLP telemetry exporter*
OpenTelemetry.Instrumentation.AspNetCore 1.9.0 SAIF.NetCore.ServiceExtensions Request instrumentation*
OpenTelemetry.Instrumentation.Http 1.9.0 SAIF.NetCore.ServiceExtensions Outbound HTTP instrumentation*
OpenTelemetry.Instrumentation.Runtime 1.9.0 SAIF.NetCore.ServiceExtensions Runtime metrics*
Microsoft.AspNetCore.Authentication.JwtBearer 6.0.11 SAIF.NetCore.ServiceExtensions (via SAIF.NetCore.AuthService) JWT bearer authentication†
Okta.AspNetCore 3.5.0 SAIF.NetCore.ServiceExtensions (via SAIF.NetCore.OIDC) Okta OpenID Connect middleware†
Microsoft.Extensions.DependencyInjection 8.0.0 SAIF.NetCore.ServiceExtensions Dependency injection container extensions†; not shown in the local restore graph**
FluentNHibernate 3.0.1 SAIF.NetCore.NHibernate Fluent mapping and session-factory configuration†
Oracle.ManagedDataAccess.Core 3.21.90 SAIF.NetCore.NHibernate Oracle data provider used for the Oracle connectivity probe†
Npgsql 4.1.5 SAIF.NetCore.NHibernate PostgreSQL data provider†
System.Data.SqlClient 4.8.5 SAIF.NetCore.NHibernate SQL Server data provider used for the SQL Server connectivity probe†
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0 SAIF.NetCore.NHibernate Dependency injection abstractions†
Microsoft.Extensions.Options 6.0.0 SAIF.NetCore.NHibernate Options pattern support†
SAIF.NetCore.ServiceContracts 10.2026.26267.1 SAIF.NetCore.NHibernate Shared service contracts, also pulled in through SAIF.NetCore.ServiceExtensions†
Swashbuckle.AspNetCore.Swagger 6.4.0 Swashbuckle.AspNetCore OpenAPI document generation*
Swashbuckle.AspNetCore.SwaggerGen 6.4.0 Swashbuckle.AspNetCore Swagger generator*
Swashbuckle.AspNetCore.SwaggerUI 6.4.0 Swashbuckle.AspNetCore Swagger UI*
Microsoft.Extensions.ApiDescription.Server 6.0.5 Swashbuckle.AspNetCore Build-time OpenAPI document support*

Package versions for SAIF.NetCore.NHibernate come from the Legends CLI documentation, because version 10.2026.26267.1 could not be restored from the configured feeds when this page was checked.† |

API dependencies

Endpoint Method Called from Base URL config key Source library Reached via Usage
/v2/tracks/{applicationName}/value GET ConnectionManager..ctor (DBConnectionAPI/DBConnectionAPI/Services/ConnectionManager.cs line 28); AdminController..ctor (DBConnectionAPI/DBConnectionAPI/Controllers/AdminController.cs line 25); Startup.ConfigureServices (DBConnectionAPI/DBConnectionAPI/Startup.cs line 21); Startup.Startup (DBConnectionAPI/DBConnectionAPI/Startup.cs line 17) Not visible in source (configured inside the package)** SAIF.NetCore.ServiceExtensions 10.2026.26267.1 (NuGet package) — BaseEnvironmentClient.GetHostsByTrack SAIF.NetCore.ServiceExtensions: IEnvironmentClient singleton resolve → SAIF.NetCore.ServiceExtensions: BaseEnvironmentClient.Setup. Also CoreAPIStartup.ConfigureServices and CoreAPIStartup.EnableSecureEnvironmentClient<T> → RegisterSecureEnvironmentClient → BaseEnvironmentClient.Setup Resolves the Environment API hosts for the application track when the secure environment client is created†
/v2/secureSetting/{applicationName}/{track}/[{section}/]{configKey}/value GET ConnectionManager.RetrieveConnection (DBConnectionAPI/DBConnectionAPI/Services/ConnectionManager.cs line 145); AdminController.GetConnectionInfo (DBConnectionAPI/DBConnectionAPI/Controllers/AdminController.cs line 51) Not visible in source (configured inside the package)** SAIF.NetCore.ServiceExtensions 10.2026.26267.1 (NuGet package) — SecureEnvironmentClient.RetrieveSecureSetting SAIF.NetCore.ServiceExtensions: IEnvironmentClient.GetSecureSetting → SAIF.NetCore.ServiceExtensions: SecureEnvironmentClient.RetrieveSecureSetting Retrieves the per-user credential secure setting in group dbconnectionapi†
/v2/settings/{applicationName}/{applicationHost}/[{section}/]value GET ConnectionManager.GetSqlTemplate, ConnectionManager.GetPostgreSqlTemplate, ConnectionManager.GetOracleTemplate (DBConnectionAPI/DBConnectionAPI/Services/ConnectionManager.cs lines 121, 126, 131) Not visible in source (configured inside the package)** SAIF.NetCore.ServiceExtensions 10.2026.26267.1 (NuGet package) — BaseEnvironmentClient.GetSettingValue SAIF.NetCore.ServiceExtensions: IEnvironmentClient.GetSettingValue → SAIF.NetCore.ServiceExtensions: BaseEnvironmentClient.LoadSettings Loads the connection-string templates for each database type†
/settings/lastRefreshed GET ConnectionManager.RetrieveConnection (DBConnectionAPI/DBConnectionAPI/Services/ConnectionManager.cs line 141) Not visible in source (configured inside the package)** SAIF.NetCore.ServiceExtensions 10.2026.26267.1 (NuGet package) — BaseEnvironmentClient.CheckForUpdates SAIF.NetCore.ServiceExtensions: IEnvironmentClient.HasSetting → SAIF.NetCore.ServiceExtensions: BaseEnvironmentClient.CheckForUpdates Checks whether the settings cache needs refreshing when testing that the credential secure setting exists†

Database connections

Database Pool code Access method Resolved by Usage
Oracle (caller-named) Not applicable NHibernate IUnitOfWorkFactory via AddNhibernateServices<Startup>() Connection string composed by ConnectionManager from IEnvironmentClient template and secure setting (no IDBConnectionClient call) Connectivity probe SELECT 1 FROM DUAL on a cache miss
SQL Server (caller-named) Not applicable NHibernate IUnitOfWorkFactory via AddNhibernateServices<Startup>() Same composition chain Connectivity probe SELECT 1 on a cache miss

PostgreSQL strings are composed and returned but never probed, so no PostgreSQL connection is opened. The API connects to no database for its own data; see Configuration for the setting keys involved.

Dependency risks and notes

  • Both internal packages are pinned at 10.2026.26267.1 while the feed carries 10.2026.26279.1.
  • Swashbuckle.AspNetCore 6.4.0 is an older package on a net10.0 target framework.
  • The service calls no downstream API through AddHttpClient, so no retry or resilience policy is configured locally; resilience of the Environment API calls is not visible in source.**
  • Possible Environment API or security-service calls made by SecurityApiAuthorize (which delegates to ISecurityClient) are not proven reachable because the package documentation does not describe the outbound call; the entry is therefore not listed under API dependencies.†
  • The database probes retry up to four attempts with blocking waits of 2, 3 and 5 seconds, which can hold a request thread for about 10 seconds on a cache miss.
  • Every distinct composed connection string that is probed leaves one NHibernate session factory in memory for the life of the process.†

Note: Statements marked with † are derived from dependency library documentation via the Legends CLI. Statements marked with * were inferred from the resolved restore graph or package naming. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • DBConnectionAPI/DBConnectionAPI/DBConnectionAPI.csproj
  • DBConnectionAPI/DBConnectionAPI/Startup.cs
  • DBConnectionAPI/DBConnectionAPI/Program.cs
  • DBConnectionAPI/DBConnectionAPI/Services/ConnectionManager.cs
  • DBConnectionAPI/DBConnectionAPI/Controllers/AdminController.cs
  • DBConnectionAPI/DBConnectionAPI/Controllers/ConnectionsController.cs